Limitazione delle identità per dominio

Resource Manager fornisce un vincolo di limitazione del dominio che può essere utilizzato nei criteri dell'organizzazione per limitare la condivisione delle risorse in base al dominio o alle risorse dell'organizzazione. Questo vincolo consente di limitare l'insieme di identità che può essere utilizzato nei criteri di Identity and Access Management.

I criteri dell'organizzazione possono utilizzare questo vincolo per limitare la condivisione delle risorse alle identità che appartengono a una determinata risorsa dell'organizzazione. In alternativa, puoi specificare un insieme di uno o più domini e possono essere concesse eccezioni a livello di singola cartella o progetto. Per ulteriori informazioni sull'aggiunta di eccezioni, consulta Eseguire l'override del criterio dell'organizzazione per un progetto.

Il vincolo di limitazione di dominio non è retroattivo. Una volta impostata una limitazione di dominio, questa limitazione si applica alle modifiche ai criteri IAM apportate da quel momento in poi e non a eventuali modifiche precedenti. Il vincolo di limitazione di dominio verrà applicato a qualsiasi modifica ai criteri IAM, incluse quelle apportate da un agente di servizio in risposta a un'altra azione. Ad esempio, se disponi di un servizio automatizzato che importa set di dati BigQuery, un agente di servizio BigQuery modificherà i criteri IAM sul set di dati appena creato. Questa azione viene limitata dal vincolo di limitazione dei domini e bloccata.

Ad esempio, si considerano due organizzazioni correlate: examplepetstore.com e altostrat.com. Hai concesso a un'identità examplepetstore.com un ruolo IAM in altostrat.com. In seguito, hai deciso di limitare le identità per dominio e hai implementato un criterio dell'organizzazione con il vincolo per la limitazione dei domini in altostrat.com. In questo caso, i ruoli examplepetstore.com esistenti non avrebbero perso l'accesso ad altostrat.com da questo punto.

Il vincolo di limitazione del dominio si basa sul vincolo dell'elenco iam.allowedPolicyMemberDomains.

Quando questo vincolo è impostato su una risorsa dell'organizzazione Google Cloud, interessa tutte le identità padre di tale risorsa dell'organizzazione. Quando questo vincolo è impostato su un dominio Google Workspace, influirà su tutte le identità che si trovano all'interno di quel dominio. Sono inclusi gli account utente gestiti nella console Google Workspace e non all'interno della console Google Cloud.

Impostazione del criterio dell'organizzazione

Il vincolo di limitazione di dominio è un tipo di vincolo dell'elenco. Puoi aggiungere e rimuovere gli ID cliente Google Workspace e gli ID risorsa organizzazione Google Cloud dall'elenco allowed_values di un vincolo di limitazione di dominio. Il vincolo di limitazione di dominio non supporta i valori di negazione e non è possibile salvare un criterio dell'organizzazione con ID nell'elenco denied_values.

Tutti i domini associati a un account Google Workspace o a una risorsa dell'organizzazione elencati in allowed_values saranno consentiti dal criterio dell'organizzazione. Tutti gli altri domini saranno rifiutati dal criterio dell'organizzazione.

Puoi rendere condizionale un criterio dell'organizzazione per applicare il vincolo di limitazione di dominio a qualsiasi risorsa inclusa nell'elenco delle risorse supportate. ad esempio bucket Cloud Storage, set di dati BigQuery o VM di Compute Engine.

Devi disporre dell'autorizzazione per modificare i criteri dell'organizzazione per impostare questo vincolo. Ad esempio, il ruolo orgpolicy.policyAdmin ha l'autorizzazione per impostare vincoli dei criteri dell'organizzazione. Il ruolo resourcemanager.organizationAdmin ha l'autorizzazione per aggiungere un utente come amministratore dei criteri dell'organizzazione. Per saperne di più sulla gestione dei criteri a livello di organizzazione, consulta la pagina Utilizzo dei vincoli.

Console

Per impostare un criterio dell'organizzazione che includa un vincolo di limitazione del dominio:

  1. Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.

    Vai a Criteri dell'organizzazione

  2. Dal selettore dei progetti, scegli la risorsa dell'organizzazione per la quale vuoi impostare il criterio dell'organizzazione.

  3. Nella pagina Criteri dell'organizzazione, seleziona Condivisione limitata del dominio dall'elenco dei vincoli.

  4. Nella pagina Dettagli norme, fai clic su Gestisci norme.

  5. In Si applica a, seleziona Sostituisci criterio della risorsa principale.

  6. Fai clic su Aggiungi una regola.

  7. In Valori delle norme, seleziona Personalizzato. Nota: il vincolo di limitazione di dominio non supporta Nega tutto.

  8. In Tipo di criterio, seleziona Consenti. Nota: il vincolo di limitazione di dominio non supporta i valori Nega.

  9. In Valori personalizzati, inserisci nel campo un ID risorsa organizzazione o un ID cliente Google Workspace.

  10. Se vuoi aggiungere più ID, fai clic su Nuovo valore del criterio per creare un campo aggiuntivo.

  11. Fai clic su Fine.

  12. Facoltativamente, per rendere condizionale il vincolo di limitazione del dominio a un tag, fai clic su Aggiungi condizione.

    1. Nel campo Titolo, inserisci un nome per la condizione.

    2. Nel campo Descrizione, inserisci una descrizione per la condizione. La descrizione fornisce contesto sui tag richiesti e sull'impatto che hanno sulle risorse.

    3. Puoi utilizzare il Generatore di condizioni per creare una condizione che richiede un determinato tag per applicare il vincolo.

      1. Nel menu a discesa Tipo di condizione nella scheda Generatore di condizioni, seleziona Tag.

      2. Seleziona l'operatore per la tua condizione. Per associare un intero tag, utilizza l'operatore matches. Per associare una chiave tag e un valore tag, utilizza l'operatore corrisponde a ID.

      3. Se hai selezionato l'operatore matches, inserisci il nome del tag con spazio dei nomi. Se hai selezionato l'operatore corrisponde all'ID, inserisci gli ID chiave e valore.

      4. Puoi creare più condizioni facendo clic su Aggiungi. Se aggiungi un'altra condizione, puoi impostare la logica condizionale in modo che le richieda tutte selezionando And. Puoi impostare la logica condizionale in modo che richieda che solo una delle condizioni sia vera attivando/disattivando Or.

      5. Puoi eliminare un'espressione facendo clic sulla grande X a destra dei campi della condizione.

      6. Dopo aver modificato le condizioni, fai clic su Salva.

  13. Per applicare il criterio, fai clic su Imposta criterio.

gcloud

I criteri possono essere impostati tramite Google Cloud CLI. Per creare un criterio che includa il vincolo di limitazione di dominio, esegui questo comando:

Per impostare un criterio dell'organizzazione che includa il vincolo di limitazione del dominio, esegui questo comando:

gcloud org-policies set-policy POLICY_PATH

Dove POLICY_PATH è il percorso completo del file YAML dei criteri dell'organizzazione, che dovrebbe avere il seguente aspetto:

name: organizations/ORGANIZATION_ID/policies/iam.allowedPolicyMemberDomains
    spec:
      rules:
      - condition: // This condition applies to the values block.
          expression: "resource.matchTag('ORGANIZATION_ID/environment', 'dev')"
        values:
          allowedValues:
          - PRINCIPAL_SET
      - values:
          allowedValues:
          - PRINCIPAL_SET

Sostituisci quanto segue:

  • ORGANIZATION_ID con l'ID della risorsa dell'organizzazione su cui impostare il criterio.
  • PRINCIPAL_SET per gli identificatori delle entità di Cloud Identity che vuoi consentire, incluso l'ID risorsa dell'organizzazione. Ad esempio, is:principalSet://iam.googleapis.com/organizations/01234567890123.

    Gli ID cliente Google Workspace devono essere utilizzati per tutte le altre identità che vuoi consentire. Ad esempio, is:C03g5e3bc.

Solo le identità appartenenti all'ID risorsa dell'organizzazione o al dominio Google Workspace dell'elenco di allowed_values saranno consentite per i criteri IAM una volta applicato questo criterio dell'organizzazione. Gli utenti e i gruppi umani di Google Workspace devono essere elementi secondari di quella risorsa dell'organizzazione o di una parte del dominio Google Workspace e gli account di servizio IAM devono essere secondari di una risorsa dell'organizzazione associata al dominio Google Workspace specificato.

Ad esempio, se hai creato un criterio dell'organizzazione solo con l'ID cliente di Google Workspace della tua azienda, solo le entità di quel dominio potrebbero essere aggiunte al criterio IAM da quel momento in poi.

Per saperne di più sull'utilizzo dei vincoli nei criteri dell'organizzazione, consulta [Using Constraints/resource-manager/docs/organization-policy/using-constraints#list-constraint).

Esempio di messaggio di errore

Se il vincolo dell'organizzazione relativo alla limitazione di dominio viene violato cercando di aggiungere un'entità non inclusa nell'elenco allowed_values, l'operazione non andrà a buon fine e verrà visualizzato un messaggio di errore.

Console

Screenshot della console

gcloud

ERROR: (gcloud.projects.set-iam-policy) FAILED_PRECONDITION:
One or more users named in the policy do not belong to a permitted customer.

Recupero di un ID risorsa dell'organizzazione

Puoi ottenere l'ID risorsa della tua organizzazione utilizzando la console Google Cloud, gcloud CLI o l'API Cloud Resource Manager.

console

Per ottenere l'ID risorsa dell'organizzazione utilizzando la console Google Cloud:

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Dal selettore dei progetti nella parte superiore della pagina, seleziona la risorsa della tua organizzazione.
  3. Sul lato destro, fai clic su Altro e poi su Impostazioni.

La pagina Impostazioni mostra l'ID risorsa dell'organizzazione.

gcloud

Per trovare l'ID risorsa dell'organizzazione, esegui questo comando:

gcloud organizations list

Questo comando elenca tutte le risorse dell'organizzazione a cui appartieni e i relativi ID risorsa organizzazione.

API

Per trovare l'ID risorsa dell'organizzazione utilizzando l'API Cloud Resource Manager, utilizza il metodo organizations.search(), includendo una query per il tuo dominio. Ad esempio:

GET http://cloudresourcemanager.googleapis.com/v3/organizations:search{query=domain:altostrat.com}

La risposta contiene i metadati della risorsa dell'organizzazione che appartiene a altostrat.com, tra cui l'ID risorsa dell'organizzazione.

Dopo aver ottenuto l'ID risorsa dell'organizzazione, devi utilizzare l'identificatore corretto per l'insieme di entità appartenenti all'organizzazione. Ad esempio:

principalSet://iam.googleapis.com/organizations/01234567890123

Per ulteriori informazioni sugli identificatori delle entità IAM, consulta Identificatori delle entità.

Recupero di un ID cliente Google Workspace

L'ID cliente Google Workspace utilizzato dal vincolo di limitazione di dominio può essere ottenuto in due modi:

gcloud

Il comando gcloudorganization list può essere utilizzato per visualizzare tutte le organizzazioni per cui disponi dell'autorizzazione resourcemanager.organizations.get:

gcloud organizations list

Questo comando restituisce DISPLAY_NAME, ID (ID organizzazione) e DIRECTORY_CUSTOMER_ID. L'ID cliente Google Workspace è DIRECTORY_CUSTOMER_ID.

API

L'API Google Workspace Directory può essere utilizzata per recuperare un ID cliente Google Workspace.

Dopo aver eseguito l'accesso come amministratore di Google Workspace, puoi consultare la documentazione relativa al metodo API Customers: get e fare clic su Esegui. Dopo l'autorizzazione, la risposta mostrerà il tuo ID cliente.

In alternativa, puoi utilizzare un client API:

  1. Ottieni un token di accesso OAuth per l'ambito http://www.googleapis.com/auth/admin.directory.customer.readonly.
  2. Esegui questo comando per eseguire una query sull'API Directory di Google Workspace:

    curl -# -X GET "http://www.googleapis.com/admin/directory/v1/customers/customerKey" \
    -H "Authorization: Bearer $access_token" -H "Content-Type: application/json"
    

Questo comando restituisce una risposta in formato JSON che include le informazioni del cliente. L'ID cliente Google Workspace è id.

Limitazione dei sottodomini

Se consenti a una risorsa dell'organizzazione di Google Cloud in un vincolo di limitazione del dominio, l'accesso viene consentito a tutte le risorse associate alla risorsa dell'organizzazione e viene bloccato l'accesso a tutte le altre.

Se consenti un ID cliente Google Workspace in un vincolo di limitazione del dominio, l'accesso verrà limitato a tutti i domini associati a quell'ID cliente Google Workspace e l'accesso verrà bloccato a tutti gli altri. Ogni account Google Workspace ha esattamente un dominio principale e zero o più domini secondari. Tutti i domini associati all'ID cliente Google Workspace saranno soggetti a questo vincolo.

L'applicazione del vincolo di limitazione del dominio su una risorsa controlla il dominio principale e tutti i domini secondari che possono accedere a quella risorsa e ai relativi discendenti nella gerarchia delle risorse.

Per esempi di combinazioni comuni di dominio e sottodominio di Google Workspace, consulta la tabella seguente:

Dominio principale Sottodominio Vincolo di limitazione del dominio [email protected] è consentito?
altostrat.com nessuno Consenti: altostrat.com No
altostrat.com sub.altostrat.com Consenti: altostrat.com
altostrat.com sub.altostrat.com Consenti: sub.altostrat.com
sub.altostrat.com altostrat.com Consenti: sub.altostrat.com
sub.altostrat.com nessuno Consenti: sub.altostrat.com

Per differenziare l'accesso da vincolo di limitazione di dominio tra due domini, ogni dominio deve essere associato a un account Google Workspace diverso. Ogni account Google Workspace è associato a un nodo organizzazione e può avere i propri criteri dell'organizzazione applicati. In questo modo puoi associare altostrat.com a un account Google Workspace e sub.altostrat.com a un altro account per controllo dell'accesso più granulare. Per ulteriori informazioni, consulta Gestione di più organizzazioni.

Risoluzione dei problemi noti

I criteri dell'organizzazione non sono retroattivi. Se devi forzare una modifica alla gerarchia delle risorse che violerebbe un vincolo applicato, puoi disabilitare il criterio dell'organizzazione, apportare la modifica e poi abilitare di nuovo il criterio dell'organizzazione.

Le seguenti sezioni descrivono i problemi noti relativi ai servizi che possono verificarsi quando viene applicato questo vincolo.

Collegare Google Analytics 360 a BigQuery

Se tenti di collegare Google Analytics 360 a BigQuery a cui è applicato il vincolo di limitazione di dominio, l'azione non va a buon fine e viene mostrato il messaggio di errore One or more users named in the policy do not belong to a permitted customer, anche se l'account di servizio [email protected] è già aggiunto come Editor a livello di progetto, direttamente o utilizzando Google Gruppi.

Per collegare Google Analytics 360 a BigQuery:

  1. Disabilita il criterio dell'organizzazione contenente il vincolo di limitazione dei domini.

  2. Esegui la procedura di collegamento in Google Analytics 360.

  3. Applica di nuovo il vincolo di limitazione di dominio.

Condivisione di dati pubblici

Alcuni prodotti Google Cloud, come BigQuery, Cloud Functions, Cloud Run, Cloud Storage e Pub/Sub, supportano la condivisione dei dati pubblici. L'applicazione del vincolo di condivisione limitata per i domini in un criterio dell'organizzazione impedirà la condivisione dei dati pubblici.

Per condividere pubblicamente i dati, disabilita temporaneamente il vincolo di condivisione limitata del dominio per la risorsa del progetto in cui si trovano i dati che vuoi condividere. Dopo aver condiviso pubblicamente la risorsa, puoi riabilitare il vincolo di condivisione limitata per i domini.

Sink di log BigQuery per un account di fatturazione

L'account di servizio utilizzato dal sink di log BigQuery per gli account di fatturazione (formato: b*@*.iam.gserviceaccount.com) viene considerato come esterno e bloccato dal vincolo di condivisione limitata per i domini in un criterio dell'organizzazione. Per concedere a questo account di servizio un ruolo in un set di dati BigQuery in un progetto a cui è applicato il vincolo di limitazione di dominio:

  1. Disabilita il criterio dell'organizzazione contenente il vincolo di limitazione dei domini.

  2. Concedi all'account di servizio corrispondente (formato: b*@*.iam.gserviceaccount.com) il ruolo BigQuery indicato durante il processo di creazione del sink.

  3. Applica di nuovo il vincolo di limitazione di dominio.

Account di servizio di esportazione della fatturazione Cloud

È probabile che l'abilitazione dell'esportazione della fatturazione in un bucket con questo vincolo abilitato non vada a buon fine. Non utilizzare questo vincolo sui bucket utilizzati per l'esportazione della fatturazione.

L'indirizzo email dell'account di servizio per l'esportazione della fatturazione Cloud è: 509219875288-kscf0cheafmf4f6tp1auij5me8qakbin@developer.gserviceaccount.com

Abilita il logging degli accessi allo spazio di archiviazione

Se abilitato, il vincolo di limitazione dei domini bloccherà qualsiasi dominio non specificamente consentito nel criterio dell'organizzazione. Ciò impedirà anche di concedere l'accesso agli account di servizio Google. Per configurare il logging degli accessi all'archiviazione su un bucket Cloud Storage in cui è applicato il vincolo di limitazione di dominio, segui questi passaggi:

  1. Disabilita il criterio dell'organizzazione contenente il vincolo di limitazione dei domini.

  2. Concedi a [email protected] WRITE l'accesso al bucket.

  3. Applica di nuovo il vincolo di limitazione di dominio.

Abilita API Firebase

Se abilitato, il vincolo di limitazione del dominio bloccherà gli account di servizio non consentiti nel criterio dell'organizzazione. Ciò rende impossibile abilitare l'API Firebase, che richiede account di servizio esterni durante il processo di abilitazione dell'API. Una volta abilitata l'API, puoi applicare in modo sicuro il vincolo di limitazione del dominio senza interferire con la funzione dell'API Firebase. Per abilitare l'API Firebase:

  1. Disabilita il criterio dell'organizzazione contenente il vincolo di limitazione dei domini.

  2. Attivare l'API Firebase Management.

  3. Applica di nuovo il vincolo di limitazione di dominio.

Gruppi Google

È sempre possibile concedere ruoli ai gruppi Google creati all'interno di un dominio consentito nel criterio IAM quando il vincolo di limitazione del dominio viene applicato, anche se il gruppo contiene membri esterni a quel dominio.

Per garantire che gli amministratori dei progetti non possano bypassare il vincolo di limitazione del dominio, l'amministratore di Google Workspace deve assicurarsi che i proprietari dei gruppi non possano consentire membri esterni al dominio nel riquadro dell'amministratore di Google Workspace.

Forzare l'accesso all'account

Se devi forzare l'accesso all'account per un progetto che viola le restrizioni di dominio:

  1. Rimuovi il criterio dell'organizzazione contenente il vincolo di limitazione dei domini.

  2. Concedere l'accesso all'account al progetto.

  3. Implementa di nuovo il criterio dell'organizzazione con il vincolo di limitazione dei domini.

In alternativa, puoi concedere l'accesso a un gruppo Google contenente gli account di servizio pertinenti:

  1. Crea un gruppo Google all'interno del dominio consentito.

  2. Utilizza il pannello dell'amministratore di Google Workspace per disattivare la limitazione dei domini per quel gruppo.

  3. Aggiungi l'account di servizio al gruppo.

  4. Concedi l'accesso al gruppo Google nel criterio IAM.

Utilizzare Pub/Sub come endpoint per un'app Google Chat.

Quando stai cercando di concedere i diritti di pubblicazione sul tuo argomento all'account di servizio dell'API Google Chat, potresti essere bloccato se è abilitato il vincolo di condivisione limitata del dominio. Segui la procedura per forzare l'accesso all'account.