Creare e applicare i criteri di confine dell'accesso dell'entità

I criteri di Principal Access Boundary (PAB) ti consentono di limitare le risorse a cui un insieme di entità può accedere. Questa pagina spiega come creare e applicare le policy di Principal Access Boundary.

Prima di iniziare

  • Configurare l'autenticazione.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

      Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init

    Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

  • Leggi la panoramica dei criteri di Principal Access Boundary.

Ruoli richiesti per creare criteri di confine dell'accesso dell'entità

Per ottenere l'autorizzazione necessaria per creare criteri di limiti di accesso all'entità, chiedi all'amministratore di concederti il ruolo IAM Amministratore di limiti di accesso all'entità (roles/iam.principalAccessBoundaryAdmin) nella tua organizzazione. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene l'autorizzazione iam.principalaccessboundarypolicies.create necessaria per creare criteri di limiti di accesso all'entità.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Ruoli richiesti per applicare i criteri di Principal Access Boundary

Le autorizzazioni necessarie per applicare un criterio di confine dell'accesso dell'entità dipendono dall'insieme di entità a cui vuoi applicare il criterio.

Per ottenere le autorizzazioni necessarie per applicare i criteri dei limiti di accesso all'entità, chiedi all'amministratore di concederti i seguenti ruoli IAM:

  • Utente di confine dell'accesso dell'entità (roles/iam.principalAccessBoundaryUser) dell'organizzazione
  • Applica i criteri di confine di accesso dei principali ai pool di federazione delle identità per la forza lavoro: Amministratore pool di forza lavoro IAM (roles/iam.workforcePoolAdmin) nel pool di federazione delle identità per la forza lavoro di destinazione
  • Applica i criteri di confine di accesso dei principali ai pool di federazione delle identità per il carico di lavoro: Amministratore pool Workload Identity IAM (roles/iam.workloadIdentityPoolAdmin) nel progetto proprietario del pool di federazione delle identità per la forza lavoro di destinazione
  • Applica i criteri di confine di accesso dei principali a un dominio Google Workspace: Amministratore IAM del pool di Workspace (roles/iam.workspacePoolAdmin) nell'organizzazione
  • Applica i criteri di confine di accesso delle entità al set di entità di un progetto: Amministratore IAM del progetto (roles/resourcemanager.projectIamAdmin) nel progetto
  • Applica i criteri di Principal Access Boundary all'insieme di entità di una cartella: Amministratore IAM cartella (roles/resourcemanager.folderIamAdmin) nella cartella
  • Applica i criteri di confine di accesso delle entità al set di entità di un'organizzazione: Amministratore dell'organizzazione (roles/resourcemanager.organizationAdmin) nell'organizzazione

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.

Questi ruoli predefiniti contengono le autorizzazioni necessarie per applicare i criteri di Principal Access Boundary. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:

Autorizzazioni obbligatorie

Per applicare le policy di Principal Access Boundary sono necessarie le seguenti autorizzazioni:

  • iam.principalaccessboundarypolicies.bind sull'organizzazione
  • Applica i criteri di confine di accesso dei principali ai pool della federazione delle identità della forza lavoro: iam.workforcePools.createPolicyBinding nel pool della federazione delle identità della forza lavoro di destinazione
  • Applica i criteri di confine di accesso dei principali ai pool di federazione delle identità della forza lavoro: iam.workloadIdentityPools.createPolicyBinding nel progetto proprietario del pool di federazione delle identità della forza lavoro di destinazione
  • Applica i criteri di Principal Access Boundary a un dominio Google Workspace: iam.workspacePools.createPolicyBinding nell'organizzazione
  • Applica i criteri di confine dell'accesso dell'entità al set di entità di un progetto: resourcemanager.projects.createPolicyBinding nel progetto
  • Applica i criteri di confine dell'accesso dell'entità all'insieme di entità di una cartella: resourcemanager.folders.createPolicyBinding sulla cartella
  • Applica i criteri di confine di accesso delle entità al set di entità di un'organizzazione: resourcemanager.organizations.createPolicyBinding nell'organizzazione

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Crea un criterio di confine dell'accesso dell'entità

Puoi creare un criterio di confine di accesso dei principali utilizzando la console Google Cloud, la gcloud CLI o l'API REST IAM.

Console

  1. Nella console Google Cloud, vai alla pagina Regole di confine di accesso principale.

    Vai ai criteri di Principal Access Boundary

  2. Seleziona l'organizzazione per cui vuoi creare i criteri di confine dell'accesso dell'entità.

  3. Fai clic su Crea criterio.

  4. Aggiungi regole di Principal Access Boundary al criterio:

    1. Fai clic su Aggiungi regola di confine.
    2. Nel campo Descrizione, aggiungi una descrizione della regola del criterio di confine di accesso principale. La descrizione può contenere un massimo di 256 caratteri.
    3. Nella sezione Risorse, inserisci tutte le risorse di Resource Manager (progetti, cartelle e organizzazioni) a cui vuoi che gli entità possano accedere. Qualsiasi entità soggetta a questo criterio è idonea ad accedere a queste risorse.

      Ogni criterio di limite di accesso all'entità può fare riferimento a un massimo di 500 risorse in tutte le regole della stessa.

    4. Fai clic su Fine.

    5. Per aggiungere altre regole delle norme, ripeti questi passaggi. Ogni criterio di Principal Access Boundary può avere fino a 500 regole.

  5. Nella sezione Nome criterio, inserisci un nome per il criterio. Il nome può contenere un massimo di 63 caratteri.

  6. Nell'elenco Versione applicazione, seleziona la versione di applicazione per il regolamento. La versione del criterio di limite di accesso all'entità determina per quali autorizzazioni IAM applica il criterio di limite di accesso all'entità.

    Per saperne di più sulle versioni di applicazione, consulta Versioni di applicazione di Principal Access Boundary.

  7. Fai clic su Crea.

gcloud

Il comando gcloud beta iam principal-access-boundary-policies create crea un criterio di confine dell'accesso dell'entità.

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • ORG_ID: l'ID dell'organizzazione in cui vuoi creare il criterio di Principal Access Boundary. Gli ID organizzazione sono numerici, ad esempio 123456789012.
  • PAB_POLICY_ID: un ID univoco per il criterio di Principal Access Boundary, ad esempio example-policy. :
  • DISPLAY_NAME: facoltativo. Una descrizione in formato leggibile da parte dell'utente del criterio di confine dell'accesso dell'entità, ad esempio Example policy. Il nome visualizzato può contenere un massimo di 63 caratteri.
  • FILE_PATH: il percorso di un file JSON contenente i dettagli della regola del criterio di confine di accesso principale. Questo file deve avere il seguente formato:

    {
      "description": DESCRIPTION,
      "resources": [
        RESOURCES
      ],
      "effect": ALLOW
    }
        

    Sostituisci i seguenti valori:

    • DESCRIPTION: facoltativo. La descrizione della regola del criterio di Principal Access Boundary. La descrizione può contenere un massimo di 256 caratteri.
    • RESOURCES: un elenco di risorse Resource Manager (progetti, cartelle e organizzazioni) a cui vuoi che le entità possano accedere. Qualsiasi entità soggetta a questo criterio è idonea ad accedere a queste risorse.

      Ogni criterio di limite di accesso all'entità può fare riferimento a un massimo di 500 risorse in tutte le regole del criterio.

  • ENFORCEMENT_VERSION: la versione dei criteri di Principal Access Boundary che IAM utilizza per l'applicazione del criterio. La versione di applicazione determina per quali autorizzazioni IAM viene applicato il criterio di limite di accesso all'entità.

    I valori accettati sono 1 e latest.

    Per saperne di più sulle versioni di applicazione, consulta Versioni di applicazione di Principal Access Boundary.

Esegui il seguente comando:

Linux, macOS o Cloud Shell

gcloud beta iam principal-access-boundary-policies create PAB_POLICY_ID \
    --organization=ORG_ID --location=global \
    --display-name=DISPLAY_NAME --details-rules=FILE_PATH.json \
    --details-enforcement-version=ENFORCEMENT_VERSION

Windows (PowerShell)

gcloud beta iam principal-access-boundary-policies create PAB_POLICY_ID `
    --organization=ORG_ID --location=global `
    --display-name=DISPLAY_NAME --details-rules=FILE_PATH.json `
    --details-enforcement-version=ENFORCEMENT_VERSION

Windows (cmd.exe)

gcloud beta iam principal-access-boundary-policies create PAB_POLICY_ID ^
    --organization=ORG_ID --location=global ^
    --display-name=DISPLAY_NAME --details-rules=FILE_PATH.json ^
    --details-enforcement-version=ENFORCEMENT_VERSION

La risposta contiene un'operazione a lunga esecuzione che rappresenta la tua richiesta.

Create request issued for: [example-policy]
Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715373988044-6181fa136df85-3b06a30a-4816d25b] to complete...done.
Created principalAccessBoundaryPolicy [example-policy].

REST

Il metodo principalAccessBoundaryPolicies.create crea un criterio di confine dell'accesso dell'entità.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • ORG_ID: l'ID dell'organizzazione in cui vuoi creare il criterio di Principal Access Boundary. Gli ID organizzazione sono numerici, ad esempio 123456789012.
  • PAB_POLICY_ID: un ID univoco per il criterio di Principal Access Boundary, ad esempio example-policy.
  • DISPLAY_NAME: facoltativo. Una descrizione in formato leggibile da parte dell'utente del criterio di confine dell'accesso dell'entità, ad esempio Example policy. Il nome visualizzato può contenere un massimo di 63 caratteri.
  • PAB_RULES: un elenco di regole dei limiti di accesso all'entità che definiscono le risorse a cui possono accedere le entità interessate. Un criterio di Principal Access Boundary può avere fino a 500 regole. Ogni regola ha il seguente formato:

    {
    "description": "DESCRIPTION",
    "resources": [
      RESOURCES
    ],
    "effect": ALLOW
    }

    Sostituisci i seguenti valori:

    • DESCRIPTION: facoltativo. La descrizione della regola del criterio di Principal Access Boundary. La descrizione può contenere un massimo di 256 caratteri.
    • RESOURCES: un elenco di risorse Resource Manager (progetti, cartelle e organizzazioni) a cui vuoi che le entità possano accedere. Qualsiasi entità soggetta a questo criterio è idonea ad accedere a queste risorse.

      Ogni criterio di limite di accesso all'entità può fare riferimento a un massimo di 500 risorse in tutte le regole del criterio.

  • ENFORCEMENT_VERSION: la versione dei criteri di Principal Access Boundary che IAM utilizza per l'applicazione del criterio. La versione di applicazione determina per quali autorizzazioni IAM viene applicato il criterio di limite di accesso all'entità.

    I valori accettati sono 1 e latest.

    Per saperne di più sulle versioni di applicazione, consulta Versioni di applicazione di Principal Access Boundary.

Metodo HTTP e URL:

POST https://iam.googleapis.com/v3beta/organizations/ORG_ID/locations/global?principalAccessBoundaryPolicyId=PAB_POLICY_ID

Corpo JSON della richiesta:

{
  "displayName": DISPLAY_NAME,
  "details": {
    "rules": [
      PAB_RULES
    ],
    "effect": ALLOW
    }
  ],
  "enforcementVersion": "ENFORCEMENT_VERSION"
}

Per inviare la richiesta, espandi una di queste opzioni:

La risposta contiene un'operazione a lunga esecuzione che rappresenta la tua richiesta.

{
  "name": "organizations/123456789012/locations/global/operations/operation-1715373120647-6181f6d8371d2-83309b71-2b8a7532",
  "metadata": {
    "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata",
    "createTime": "2024-05-10T20:32:00.898809495Z",
    "target": "organizations/123456789012/locations/global/policyBindings/example-policy",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v3beta"
  },
  "done": false
}

Applicare un criterio di Principal Access Boundary a un set di entità

Per applicare un criterio di confine dell'accesso dell'entità a un insieme di entità, crea una risorsa di associazione al criterio che associ il criterio all'insieme di entità. Dopo aver creato un'associazione di criteri, il criterio di confine dell'accesso dell'entità nell'associazione viene applicato alle entità nell'associazione.

Puoi creare un'associazione di criteri utilizzando la console Google Cloud, la riga di comando gcloud o l'API REST IAM.

Console

  1. Nella console Google Cloud, vai alla pagina Regole di confine di accesso principale.

    Vai ai criteri di Principal Access Boundary

  2. Seleziona l'organizzazione proprietaria del criterio di confine dell'accesso dell'entità per il quale vuoi creare un'associazione.

  3. Fai clic sull'ID della norma di confine dell'accesso dell'entità per la quale vuoi creare un'associazione.

  4. Fai clic sulla scheda Associazioni e poi su Aggiungi associazione.

  5. Inserisci i dettagli dell'associazione:

    1. (Facoltativo) Nel campo Nome visualizzato, inserisci un nome visualizzato per la associazione. Il nome visualizzato può contenere un massimo di 63 caratteri.
    2. Nel campo ID associazione, inserisci un nome univoco per l'associazione, ad esempio example-binding.
    3. Nella sezione Set di entità target, inserisci il tipo e l'ID del set di entità a cui vuoi associare il criterio. Non puoi modificare questo valore dopo aver creato il vincolo dei criteri.

      Per saperne di più sulle entità incluse in ogni set di entità, consulta Set di entità supportati.

  6. (Facoltativo) Per specificare per quali entità nell'insieme di entità viene applicato il criterio di confine dell'accesso dell'entità, aggiungi una condizione all'associazione:

    1. Fai clic su Aggiungi condizione.
    2. Nel campo Titolo, inserisci un breve riepilogo dello scopo della condizione.
    3. (Facoltativo) Nel campo Descrizione, inserisci una descrizione più lunga della condizione.
    4. Nel campo Espressione, inserisci l'espressione della condizione che utilizza la sintassi del Common Expression Language (CEL). L'espressione deve fare riferimento agli attributi principal.type o principal.subject. Gli altri attributi non sono supportati.
    5. Fai clic su Salva.
  7. Per creare il vincolo, fai clic su Aggiungi.

gcloud

Il comando gcloud beta iam policy-bindings create crea un'associazione di criteri.

Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:

  • BINDING_ID: un nome univoco per l'associazione delle norme, ad esempio example-binding.
  • RESOURCE_TYPE: il tipo di risorsa Resource Manager (progetto, cartella o organizzazione) di cui è un elemento secondario il vincolo dei criteri. Utilizza il valore project, folder o organization

    Il tipo di risorsa dipende dall'entità impostata nell'associazione dei criteri. Per sapere quale tipo di risorsa utilizzare, consulta Tipi di principali supportati.

  • RESOURCE_ID: l'ID del progetto, della cartella o dell'organizzazione di cui è un elemento secondario il vincolo dei criteri. Gli ID progetto sono stringhe alfanumeriche, come my-project. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012.
  • ORG_ID: l'ID dell'organizzazione proprietaria del criterio di confine dell'accesso dell'entità che vuoi associare al set di entità. Gli ID organizzazione sono numerici, ad esempio123456789012.
  • PAB_POLICY_ID: l'ID del criterio di Principal Access Boundary che vuoi associare al set di entità, ad esempio example-pab-policy. Non puoi modificare questo valore dopo aver creato il vincolo dei criteri.
  • PRINCIPAL_SET: il set di entità a cui vuoi associare il criterio. Per un elenco dei tipi di entità validi, consulta Insiemi di entità supportati. Non puoi modificare questo valore dopo aver creato il vincolo dei criteri.
  • DISPLAY_NAME: facoltativo. Una descrizione leggibile della associazione, ad esempio Example binding. Il nome visualizzato può contenere un massimo di 63 caratteri.
  • CONDITION_DETAILS: facoltativo. Un'espressione di condizione che specifica per quali entità nel set di entità viene applicato il criterio di Principal Access Boundary. Contiene i seguenti campi:

    • expression: un'espressione di condizione che utilizza la sintassi di Common Expression Language (CEL). L'espressione deve fare riferimento agli attributi principal.type o principal.subject. Gli altri attributi non sono supportati.

      L'espressione può contenere fino a 10 operatori logici (&&, ||, !) e può avere una lunghezza massima di 250 caratteri.

    • title: facoltativo. Un breve riepilogo dello scopo della condizione.
    • description: facoltativo. Una descrizione più lunga della condizione.

Esegui il seguente comando:

Linux, macOS o Cloud Shell

gcloud beta iam policy-bindings create BINDING_ID \
    --RESOURCE_TYPE=RESOURCE_ID --location=global \
    --policy="organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID" \
    --target-principal-set=PRINCIPAL_SET_ID \
    --display-name=DISPLAY_NAME \
    CONDITION_DETAILS

Windows (PowerShell)

gcloud beta iam policy-bindings create BINDING_ID `
    --RESOURCE_TYPE=RESOURCE_ID --location=global `
    --policy="organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID" `
    --target-principal-set=PRINCIPAL_SET_ID `
    --display-name=DISPLAY_NAME `
    CONDITION_DETAILS

Windows (cmd.exe)

gcloud beta iam policy-bindings create BINDING_ID ^
    --RESOURCE_TYPE=RESOURCE_ID --location=global ^
    --policy="organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID" ^
    --target-principal-set=PRINCIPAL_SET_ID ^
    --display-name=DISPLAY_NAME ^
    CONDITION_DETAILS

La risposta contiene un'operazione a lunga esecuzione che rappresenta la tua richiesta.

Create request issued for: [example-binding]
Waiting for operation [organizations/123456789012/locations/global/operations/operation-1715374545618-6181fc272c6f9-55ff07f4-97d0ac76] to complete...done.
Created policyBinding [example-binding].

REST

Il metodo policyBindings.create crea un'associazione di criteri.

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • RESOURCE_TYPE: il tipo di risorsa Resource Manager (progetto, cartella o organizzazione) di cui è un elemento secondario il vincolo dei criteri. Utilizza il valore projects, folders o organizations

    Il tipo di risorsa dipende dall'entità impostata nell'associazione dei criteri. Per sapere quale tipo di risorsa utilizzare, consulta Tipi di principali supportati.

  • RESOURCE_ID: l'ID del progetto, della cartella o dell'organizzazione di cui è un elemento secondario il vincolo dei criteri. Gli ID progetto sono stringhe alfanumeriche, come my-project. Gli ID cartella e organizzazione sono numerici, ad esempio123456789012.
  • BINDING_ID: un nome univoco per l'associazione delle norme, ad esempio example-binding.
  • DISPLAY_NAME: facoltativo. Una descrizione leggibile della associazione, ad esempio Example binding. Il nome visualizzato può contenere un massimo di 63 caratteri.
  • PRINCIPAL_SET: il set di entità a cui vuoi associare il criterio. Per un elenco dei tipi di entità validi, consulta Insiemi di entità supportati. Non puoi modificare questo valore dopo aver creato il vincolo dei criteri.
  • ORG_ID: l'ID dell'organizzazione proprietaria del criterio di confine dell'accesso dell'entità che vuoi associare al set di entità. Gli ID organizzazione sono numerici, ad esempio123456789012.
  • PAB_POLICY_ID: l'ID del criterio di Principal Access Boundary che vuoi associare al set di entità, ad esempio example-pab-policy. Non puoi modificare questo valore dopo aver creato il vincolo dei criteri.
  • CONDITION_DETAILS: facoltativo. Un'espressione di condizione che specifica per quali entità nel set di entità viene applicato il criterio di Principal Access Boundary. Contiene i seguenti campi:

    • expression: un'espressione di condizione che utilizza la sintassi di Common Expression Language (CEL). L'espressione deve fare riferimento agli attributi principal.type o principal.subject. Gli altri attributi non sono supportati.

      L'espressione può contenere fino a 10 operatori logici (&&, ||, !) e può avere una lunghezza massima di 250 caratteri.

    • title: facoltativo. Un breve riepilogo dello scopo della condizione.
    • description: facoltativo. Una descrizione più lunga della condizione.

Metodo HTTP e URL:

POST https://iam.googleapis.com/v3beta/RESOURCE_TYPE/RESOURCE_ID/locations/global/policyBindings?policyBindingId=BINDING_ID

Corpo JSON della richiesta:

{
  "displayName": DISPLAY_NAME,
  "target": {
    "principalSet": PRINCIPAL_SET
  },
  "policyKind": "PRINCIPAL_ACCESS_BOUNDARY",
  "policy": "organizations/ORG_ID/locations/global/principalAccessBoundaryPolicies/PAB_POLICY_ID",
  "condition": {
    CONDITION_DETAILS
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

La risposta contiene un'operazione a lunga esecuzione che rappresenta la tua richiesta.

{
  "name": "organizations/123456789012/locations/global/operations/operation-1715373120647-6181f6d8371d2-83309b71-2b8a7532",
  "metadata": {
    "@type": "type.googleapis.com/google.iam.v3beta.OperationMetadata",
    "createTime": "2024-05-10T20:32:00.898809495Z",
    "target": "organizations/123456789012/locations/global/policyBindings/example-binding",
    "verb": "create",
    "requestedCancellation": false,
    "apiVersion": "v3beta"
  },
  "done": false
}

Passaggi successivi