Limitazione delle identità per dominio

Resource Manager fornisce un vincolo di limitazione del dominio utilizzabile nei criteri dell'organizzazione per limitare la condivisione delle risorse in base al dominio o alla risorsa dell'organizzazione. Questo vincolo consente di limitare l'insieme di identità che possono essere utilizzate 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 le eccezioni possono essere concesse in base alla cartella o al progetto. Per ulteriori informazioni sull'aggiunta di eccezioni, consulta Ignorare le norme dell'organizzazione per un progetto.

Il vincolo di limitazione del dominio non è retroattivo. Una volta impostata una restrizione del dominio, questa limitazione verrà applicata alle modifiche ai criteri IAM apportate da quel momento in poi e non a quelle precedenti. La limitazione del dominio si applica a qualsiasi modifica del criterio IAM, incluse le modifiche apportate da un agente di servizio in risposta a un'altra azione. Ad esempio, se hai un servizio automatico che importa set di dati BigQuery, un agente di servizio BigQuery apporterà modifiche alle norme IAM nel set di dati appena creato. Questa azione sarebbe limitata dal vincolo di limitazione del dominio e bloccata.

Ad esempio, prendi in considerazione due organizzazioni correlate: examplepetstore.com e altostrat.com. Hai concesso a un'identità examplepetstore.com un ruolo IAM in altostrat.com. In un secondo momento, hai deciso di limitare le identità per dominio e hai implementato un criterio dell'organizzazione con il vincolo di limitazione del dominio in altostrat.com. In questo caso, le identità examplepetstore.com esistenti non perderebbero l'accesso in altostrat.com. Da quel punto in poi, potresti concedere i ruoli IAM solo alle identità del dominio altostrat.com.

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

Quando questo vincolo è impostato su una risorsa organizzazione Google Cloud, influisce su tutte le identità che hanno come organizzazione principale la risorsa organizzazione. Quando questo vincolo viene impostato su un dominio Google Workspace, interessa tutte le identità al suo interno. Sono inclusi gli account utente gestiti nella console Google Workspace e non nella console Google Cloud.

Impostazione del criterio dell'organizzazione

Il vincolo di limitazione del dominio è un tipo di vincolo di elenco. Gli ID cliente Google Workspace e gli ID risorsa organizzazione Google Cloud possono essere aggiunti e rimossi dall'elenco allowed_values di un vincolo di limitazione del dominio. Il vincolo di limitazione del dominio non supporta i valori di rifiuto 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 nel file allowed_values saranno consentiti dalle norme dell'organizzazione. Tutti gli altri domini verranno rifiutati dai criteri dell'organizzazione.

Puoi creare un criterio dell'organizzazione che applichi il vincolo di limitazione del dominio in base a qualsiasi risorsa inclusa nell'elenco delle risorse supportate. Ad esempio, bucket Cloud Storage, set di dati BigQuery o VM Compute Engine.

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

Console

Per impostare un criterio dell'organizzazione che includa un vincolo di limitazione del dominio, procedi come segue:

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

    Vai a Criteri dell'organizzazione

  2. Dal selettore di progetti, seleziona la risorsa dell'organizzazione su cui vuoi impostare il criterio dell'organizzazione.

  3. Nella pagina Criteri organizzazione, seleziona Condivisione con restrizioni per dominio dall'elenco dei vincoli.

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

  5. In Applicabile a, seleziona Ignora il criterio della risorsa padre.

  6. Fai clic su Aggiungi una regola.

  7. In Valori criterio, seleziona Personalizzato. Nota: il vincolo di limitazione del dominio non supporta Nega tutti.

  8. In Tipo di criterio, seleziona Consenti. Nota: la limitazione del dominio non supporta i valori Deny.

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

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

  11. Fai clic su Fine.

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

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

    2. Nel campo Descrizione, assegna una descrizione alla condizione. La descrizione fornisce il contesto sui tag richiesti e sul loro impatto sulle risorse.

    3. Puoi utilizzare lo Strumento per la creazione di condizioni per creare una condizione che richiede un determinato tag per l'applicazione del vincolo.

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

      2. Seleziona l'operatore per la condizione. Per trovare una corrispondenza con un intero tag, utilizza l'operatore matches. Per associare una chiave e un valore del tag, utilizza l'operatore corrisponde all'ID.

      3. Se hai selezionato l'operatore corrisponde, inserisci il valore nome con spazio dei nomi del tag. Se hai selezionato l'operatore corrisponde a 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 richieda tutte le condizioni attivando/disattivando E. Puoi impostare la logica condizionale in modo che richieda che solo una delle condizioni sia vera attivando/disattivando l'opzione O.

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

      6. Al termine della modifica delle 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 la limitazione del dominio, esegui il seguente comando:

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

gcloud org-policies set-policy POLICY_PATH

dove POLICY_PATH è il percorso completo del file YAML delle norme dell'organizzazione, che deve 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 questo criterio.
  • PRINCIPAL_SET per gli identificatori principali 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.

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

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

Per scoprire di più sull'utilizzo dei vincoli nei criteri dell'organizzazione, consulta Utilizzare i vincoli.

Esempio di messaggio di errore

Quando il vincolo dell'organizzazione di limitazione del dominio viene violato tentando di aggiungere un principale non incluso 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 dell'organizzazione utilizzando la console Google Cloud, gCloud CLI o l'API Cloud Resource Manager.

console

Per recuperare l'ID della risorsa dell'organizzazione utilizzando la console Google Cloud, segui questi passaggi:

  1. Vai alla console Google Cloud:

    Vai alla console Google Cloud

  2. Dal selettore di 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 il seguente comando:

gcloud organizations list

Questo comando elenca tutte le risorse dell'organizzazione a cui appartieni e i relativi ID risorsa dell'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 https://cloudresourcemanager.googleapis.com/v3/organizations:search{query=domain:altostrat.com}

La risposta contiene i metadati della risorsa dell'organizzazione appartenente a altostrat.com, inclusi l'ID della risorsa dell'organizzazione.

Dopo aver ottenuto l'ID risorsa dell'organizzazione, devi utilizzare l'identificatore corretto per l'insieme di principali che vi appartengono. Ad esempio:

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

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

Recuperare un ID cliente Google Workspace

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

gcloud

Il comando gcloud organizations list può essere utilizzato per visualizzare tutte le organizzazioni per le quali disponi dell'autorizzazioneresourcemanager.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 Directory di Google Workspace può essere utilizzata per recuperare un ID cliente Google Workspace.

Dopo aver eseguito l'accesso come amministratore di Google Workspace, puoi visitare la documentazione del metodo dell'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 https://www.googleapis.com/auth/admin.directory.customer.readonly.
  2. Esegui il seguente comando per eseguire una query sull'API Directory di Google Workspace:

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

Questo comando restituirà una risposta JSON contenente le informazioni del cliente. L'ID cliente Google Workspace è id.

Limitare i sottodomini

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

Se consenti un ID cliente Google Workspace in una limitazione del dominio, viene limitato l'accesso a tutti i domini associati a quell'ID cliente Google Workspace e viene bloccato l'accesso 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 al vincolo.

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

Per esempi di combinazioni comuni di domini e sottodomini Google Workspace, consulta la tabella di seguito:

Dominio principale Sottodominio Vincolo di limitazione del dominio user@sub.altostrat.com è 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 distinguere l'accesso con limitazioni del dominio tra due domini, ogni dominio deve essere associato a un account Google Workspace diverso. Ogni account Google Workspace è associato a un nodo dell'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 per controllo dell'accesso più granulare. Per saperne di più, consulta Gestire 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 disattivare il criterio dell'organizzazione, apportare la modifica e riattivare il criterio dell'organizzazione.

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

Collegamento di Google Analytics 360 a BigQuery

Se provi a collegare Google Analytics 360 a BigQuery dove è applicata la limitazione del dominio, l'azione non va a buon fine con 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 analytics-processing-dev@system.gserviceaccount.com è già aggiunto come Editor a livello di progetto, direttamente o utilizzando Google Gruppi.

Per collegare Google Analytics 360 a BigQuery:

  1. Disattiva il criterio dell'organizzazione contenente il vincolo di limitazione del dominio.

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

  3. Applica nuovamente il vincolo di limitazione del dominio.

Condivisione di dati pubblici

Alcuni prodotti Google Cloud, come BigQuery, le funzioni Cloud Run, Cloud Run, Cloud Storage e Pub/Sub, supportano la condivisione di 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 i dati pubblicamente, disattiva temporaneamente il vincolo di condivisione limitata per i domini per la risorsa Progetto in cui si trovano i dati che vuoi condividere. Dopo aver condiviso la risorsa pubblicamente, puoi riattivare il vincolo di condivisione limitata per i domini.

Un sink di log BigQuery per un account di fatturazione

L'account di servizio utilizzato dall'sink di log BigQuery per gli account di fatturazione (formato: b*@*.iam.gserviceaccount.com) viene trattato come esterno e bloccato dal vincolo di condivisione con restrizioni del dominio in un criterio dell'organizzazione. Per concedere a questo account di servizio un ruolo in un set di dati BigQuery di un progetto in cui è applicata la limitazione del dominio:

  1. Disattiva il criterio dell'organizzazione contenente il vincolo di limitazione del dominio.

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

  3. Applica nuovamente il vincolo di limitazione del dominio.

Account di servizio di esportazione della fatturazione Cloud

L'attivazione dell'esportazione della fatturazione in un bucket con questo vincolo abilitato probabilmente non andrà a buon fine. Non utilizzare questa limitazione per i bucket utilizzati per l'esportazione della fatturazione.

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

Abilita il logging degli accessi allo spazio di archiviazione

Se abilitato, il vincolo di restrizione dei domini bloccherà qualsiasi dominio non consentito specificamente nel criterio dell'organizzazione. In questo modo verrà impedita anche la concessione dell'accesso agli account di servizio Google. Per configurare la registrazione degli accessi allo spazio di archiviazione in un bucket Cloud Storage in cui è applicata la limitazione del dominio, segui questi passaggi:

  1. Disattiva il criterio dell'organizzazione contenente il vincolo di limitazione del dominio.

  2. Concedi a cloud-storage-analytics@google.com WRITE l'accesso al bucket.

  3. Applica nuovamente il vincolo di limitazione del dominio.

Assegnare i ruoli di agente di servizio

I ruoli agente di servizio vengono concessi solo agli account di servizio. Se devi concedere questo tipo di ruolo, svolgi i seguenti passaggi:

  1. Disattiva il criterio dell'organizzazione contenente il vincolo di limitazione del dominio.

  2. Concedi il ruolo agente di servizio.

  3. Applica nuovamente il vincolo di limitazione del dominio.

Abilita l'API Firebase

Se abilitato, il vincolo di limitazione del dominio bloccherà gli account di servizio non consentiti nel criterio dell'organizzazione. Ciò rende impossibile attivare l'API Firebase, che richiede account di servizio esterni durante la procedura di attivazione dell'API. Una volta attivata l'API, puoi applicare in sicurezza il vincolo di limitazione del dominio senza interferire con la funzionalità dell'API Firebase. Per attivare l'API Firebase:

  1. Disattiva il criterio dell'organizzazione contenente il vincolo di limitazione del dominio.

  2. Abilita l'API Firebase Management.

  3. Applica nuovamente il vincolo di limitazione del dominio.

Gruppi Google

Se nella tua organizzazione è applicato il vincolo di limitazione del dominio, potresti non essere in grado di concedere ruoli ai gruppi Google appena creati, anche se appartengono a un dominio consentito. Questo perché la propagazione completa di un gruppo in Google Cloud può richiedere fino a 24 ore. Se non riesci a concedere un ruolo a un gruppo Google appena creato, attendi 24 ore e riprova.

Inoltre, quando valuta se un gruppo appartiene a un dominio consentito, IAM valuta solo il dominio del gruppo. Non valuta i domini di nessuno dei membri del gruppo. Di conseguenza, gli amministratori dei progetti possonoaggirare la limitazione di dominio aggiungendo membri esterni ai gruppi Google e poi concedendo i ruoli a questi gruppi Google.

Per assicurarsi che gli amministratori del progetto non possano aggirare il vincolo di limitazione del dominio, l'amministratore di Google Workspace deve assicurarsi che i proprietari di gruppi non possano autorizzare membri esterni al dominio nel pannello dell'amministratore di Google Workspace.

Forzare l'accesso all'account

Se devi forzare l'accesso all'account per un progetto in violazione delle limitazioni del dominio:

  1. Rimuovi il criterio dell'organizzazione contenente il vincolo di limitazione del dominio.

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

  3. Implementa di nuovo il criterio dell'organizzazione con il vincolo di restrizione 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 di amministratore di Google Workspace per disattivare la limitazione del dominio per quel gruppo.

  3. Aggiungi l'account di servizio al gruppo.

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

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

Quando provi a concedere i diritti di pubblicazione per il tuo argomento all'account di servizio dell'API Google Chat, potresti essere bloccato se il vincolo di condivisione del dominio con limitazioni è attivato. Segui la procedura per forzare l'accesso all'account.