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 è possibile utilizzare 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 puoi concedere eccezioni in base alle singole cartelle o al singolo progetto. Per ulteriori informazioni sull'aggiunta di eccezioni, consulta Sostituire il criterio dell'organizzazione per un progetto.

Il vincolo di limitazione dei domini 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 del 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 hai un servizio automatizzato che importa i set di dati BigQuery, un agente di servizio BigQuery applicherà le modifiche al criterio IAM sul set di dati appena creato. Questa azione verrebbe limitata dal vincolo di limitazione del dominio e bloccata.

Considera ad esempio 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à in base al dominio e di implementare un criterio dell'organizzazione con il vincolo di limitazione del dominio in altostrat.com. In questo caso, le identità di examplepetstore.com esistenti non perderebbero l'accesso al dominio altostrat.com.

Il vincolo di limitazione dei domini si basa sul vincolo dell'elenco iam.allowedPolicyMemberDomains.

Quando questo vincolo viene impostato su una risorsa dell'organizzazione Google Cloud, influisce su tutte le identità associate alla risorsa dell'organizzazione in questione. Quando questo vincolo viene impostato su un dominio Google Workspace, influisce su tutte le identità contenute al suo interno. 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 dei domini è un tipo di vincolo dell'elenco. Gli ID cliente di Google Workspace e gli ID risorsa dell'organizzazione di Google Cloud possono essere aggiunti e rimossi dall'elenco allowed_values di un vincolo di limitazione dei domini. Il vincolo di limitazione dei domini non supporta il rifiuto dei valori 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 negati dal criterio dell'organizzazione.

Puoi impostare un criterio dell'organizzazione che applica il vincolo di limitazione dei domini 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 dei criteri dell'organizzazione. Consulta la pagina Utilizzo dei 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 di dominio, segui questi passaggi:

  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 su cui vuoi impostare il criterio dell'organizzazione.

  3. Nella pagina Criteri dell'organizzazione, seleziona Condivisione limitata per il 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 padre.

  6. Fai clic su Aggiungi una regola.

  7. In Valori criterio, 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 del dominio non supporta i valori Nega.

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

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

  11. Fai clic su Fine.

  12. Facoltativamente, per rendere condizionale il vincolo di limitazione di 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 della condizione. La descrizione fornisce il contesto sui tag obbligatori e sul loro impatto sulle risorse.

    3. Puoi utilizzare il generatore di condizioni per creare una condizione che richiede un determinato tag affinché il vincolo abbia effetto.

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

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

      3. Se hai selezionato l'operatore corrisponde, 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 attivando AND. Puoi impostare la logica condizionale in modo che richieda che solo una delle condizioni sia true attivando/disattivando OR.

      5. Per eliminare un'espressione, fai clic sulla X grande 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 del dominio, esegui questo comando:

Per impostare un criterio dell'organizzazione che includa il vincolo di limitazione dei domini, 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 questo criterio.
  • PRINCIPAL_SET per gli identificatori entità Cloud Identity che vuoi consentire, tra cui l'ID risorsa dell'organizzazione. Ad esempio, is:principalSet://iam.googleapis.com/organizations/01234567890123.

    Devi utilizzare gli ID cliente Google Workspace per tutte le altre identità che vuoi consentire. Ad esempio, is:C03g5e3bc.

Dopo l'applicazione di questo criterio dell'organizzazione, saranno consentite solo le identità che appartengono all'ID risorsa dell'organizzazione o al dominio Google Workspace nell'elenco allowed_values. Gli utenti e i gruppi umani di Google Workspace devono essere elementi secondari della risorsa dell'organizzazione o di parte di quel dominio Google Workspace, mentre 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 solo le entità di quel dominio potrebbero essere aggiunte al criterio IAM.

Per ulteriori informazioni sull'utilizzo dei vincoli nei criteri dell'organizzazione, vedi [Utilizzo di Constraints/resource-manager/docs/organization-policy/using-constraints#list-constraint).

Esempio di messaggio di errore

Se si verifica una violazione del vincolo dell'organizzazione relativa alla limitazione di dominio tentando 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, 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 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 dell'organizzazione.

API

Per trovare l'ID risorsa della tua organizzazione utilizzando l'API Cloud Resource Manager, utilizza il metodo organizations.search(), inclusa 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 organizzazione appartenente a altostrat.com, che include l'ID risorsa dell'organizzazione.

Dopo aver ottenuto l'ID risorsa dell'organizzazione, devi utilizzare l'identificatore corretto per il set di entità che gli appartengono. Ad esempio:

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

Per saperne di più sugli identificatori entità IAM, consulta Identificatori entità.

Recupero di un ID cliente Google Workspace

Puoi ottenere l'ID cliente di Google Workspace utilizzato dal vincolo di limitazione dei domini in due modi:

gcloud

Puoi utilizzare il comando gcloud organizations list per visualizzare tutte le organizzazioni per le quali disponi dell'autorizzazione resourcemanager.organizations.get:

gcloud organizations list

Questo comando restituirà DISPLAY_NAME, ID (ID organizzazione) e DIRECTORY_CUSTOMER_ID. L'ID cliente di 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 sul 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 https://www.googleapis.com/auth/admin.directory.customer.readonly.
  2. Esegui questo comando per eseguire una query sull'API Google Workspace Directory:

    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 in formato JSON che include le informazioni del cliente. L'ID cliente di Google Workspace è id.

Limitazione dei sottodomini

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

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

L'applicazione del vincolo di limitazione dei domini su una risorsa consente di controllare 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 di Google Workspace, consulta la tabella seguente:

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 differenziare l'accesso ai vincoli 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. 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 ulteriori informazioni, 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 violi un vincolo applicato, puoi disabilitare il criterio dell'organizzazione, apportare la modifica e poi riattivare il criterio dell'organizzazione.

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

Collegamento di Google Analytics 360 a BigQuery

Se tenti di collegare Google Analytics 360 a BigQuery dove è applicato il vincolo di limitazione dei domini, l'azione non riesce e appare 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à stato aggiunto come Editor a livello di progetto, direttamente o tramite 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 del 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 di BigQuery per gli account di fatturazione (formato: b*@*.iam.gserviceaccount.com) viene considerato esterno e bloccato dal vincolo di condivisione limitata del dominio in un criterio dell'organizzazione. Per concedere a questo account di servizio un ruolo su un set di dati BigQuery in un progetto a cui è applicato il vincolo di limitazione dei domini:

  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 del dominio.

Account di servizio di esportazione della fatturazione Cloud

L'abilitazione dell'esportazione della fatturazione in un bucket con questo vincolo potrebbe non riuscire. Non utilizzare questo vincolo sui 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 limitazione dei domini bloccherà qualsiasi dominio non consentito specificamente nel criterio dell'organizzazione. In questo modo non sarà possibile concedere anche l'accesso agli account di servizio Google. Per configurare il logging degli accessi allo spazio di archiviazione su un bucket Cloud Storage a cui è applicato il vincolo di limitazione del dominio, segui questi passaggi:

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

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

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

Abilita API Firebase

Se abilitato, il vincolo di limitazione del dominio bloccherà gli account di servizio non consentiti nel criterio dell'organizzazione. In questo modo non è possibile 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 dei domini senza interferire con la funzione dell'API Firebase. Per attivare l'API Firebase:

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

  2. Attiva l'API Firebase Management.

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

Gruppi Google

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

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

Forzare l'accesso all'account

Se devi forzare l'accesso all'account per un progetto che viola le restrizioni relative ai domini:

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

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

  3. Implementare il criterio dell'organizzazione nuovamente 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 riquadro di amministratore di Google Workspace per disattivare la limitazione di dominio 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 tenti di concedere i diritti di pubblicazione per il tuo argomento all'account di servizio dell'API Google Chat, il tuo account potrebbe essere bloccato se è abilitato il vincolo di Condivisione del dominio limitata. Segui la procedura per forzare l'accesso all'account.