Proteggi la console Google Cloud e le API Google Cloud

Questo documento mostra come proteggere l'accesso alla console Google Cloud e le API Google Cloud usando le regole basate sul contesto.

Accesso sensibile al contesto per la console Google Cloud e le API Google Cloud limita l'accesso alla console Google Cloud e alle API Google Cloud con le regole basate sul contesto. Fa parte di Chrome Enterprise Premium e aiuta a garantire che gli individui e i gruppi all'interno dell'organizzazione soddisfino i con requisiti di accesso definiti possano accedere alla console Google Cloud API Google Cloud (incluso l'accesso da Google Cloud CLI).

Per proteggere la console Google Cloud e le API Google Cloud, completa i seguenti passaggi:

  1. [Facoltativo] Esegui il deployment della verifica degli endpoint sui dispositivi della tua organizzazione.
  2. Crea un livello di accesso in Gestore contesto accesso.
  3. Crea un gruppo di utenti vincolato da limitazioni sensibili al contesto.
  4. Ottieni le autorizzazioni di Identity and Access Management richieste.
  5. Crea un'associazione di accesso che applichi regole sensibili al contesto per la console Google Cloud e le API Google Cloud.

[Facoltativo] Esegui il deployment della verifica degli endpoint

Se vuoi proteggere l'accesso alla console e alle API di Google Cloud utilizzando gli attributi del dispositivo, esegui il deployment di Verifica endpoint sui dispositivi della tua organizzazione.

La verifica degli endpoint viene eseguita come estensione di Chrome su computer e laptop per gli utenti di MacOS, Windows e Linux. Un amministratore può eseguirne il deployment sui dispositivi di proprietà dell'azienda della Console di amministrazione Google o i membri dell'organizzazione possono installarlo autonomamente.

Crea un livello di accesso

Devi definire un livello di accesso che possa essere utilizzato per determinare l'accesso alla console Google Cloud e alle API Google Cloud creando un livello di accesso di base in Gestore contesto accesso.

Creare un gruppo di utenti

Creare un gruppo di utenti che devono essere vincolati da restrizioni sensibili al contesto. Qualsiasi utente in questo che sono anche membri della tua organizzazione devono soddisfare il livello di accesso creato in precedenza per accedere alla console Google Cloud le API Google Cloud.

Concedi le autorizzazioni IAM richieste

Concedi le autorizzazioni IAM a livello di organizzazione che saranno necessario per creare associazioni di accessi di Gestore contesto accesso.

Console

  1. Vai alla sezione IAM e pagina Amministrazione nella console Google Cloud.

    Vai a IAM e amministrazione

  2. Fai clic su Aggiungi e configura quanto segue:

    • Nuovi membri: specifica l'utente o il gruppo a cui vuoi concedere le autorizzazioni.
    • Seleziona un ruolo: seleziona Gestore contesto accesso > Amministratore associazione accesso cloud.
  3. Fai clic su Salva.

gcloud

  1. Assicurati di aver eseguito l'autenticazione con privilegi sufficienti per aggiungere le autorizzazioni IAM a livello di organizzazione. Come requisito minimo, è necessario il ruolo Amministratore dell'organizzazione.

    Una volta verificata la presenza delle autorizzazioni corrette, accedi con:

    gcloud auth login
    
  2. Assegna il ruolo GcpAccessAdmin eseguendo questo comando:

    gcloud organizations add-iam-policy-binding ORG_ID \
      --member=user:EMAIL \
      --role=roles/accesscontextmanager.gcpAccessAdmin
    
    • ORG_ID è l'ID della tua organizzazione. Se non hai ancora l'ID organizzazione, puoi utilizzare il seguente comando per trovarlo:

       gcloud organizations list
      
    • EMAIL è l'indirizzo email della persona o gruppo a cui desideri concedere il ruolo.

Creare un'associazione di accesso

Un'associazione di accesso è una mappatura tra il gruppo di utenti che hai creato in precedenza e il livello di accesso di Access Context Manager che hai definito per accedere alla console Google Cloud e alle API Google Cloud.

Le associazioni di accesso ti consentono di definire in che modo i gruppi di utenti possono accedere alle API e alle applicazioni Google Cloud. Puoi farlo collegando un gruppo a un livello di accesso, che definisce le autorizzazioni e le restrizioni applicate all'accesso del gruppo alle applicazioni.

Puoi specificare le applicazioni in associazioni di accesso utilizzando il relativo ID client OAuth. Tu puoi specificare le seguenti applicazioni tramite il loro nome:

Puoi creare i seguenti tipi di associazioni di accessi:

  • Associa i gruppi di utenti ai livelli di accesso: applica un livello di accesso a livello globale a tutte le applicazioni client utilizzate da un gruppo di utenti specifico. Questo è un approccio ampio adatto agli scenari in cui è necessario un controllo dell'accesso coerente su tutti diverse applicazioni.
  • Associa i gruppi di utenti a livelli di accesso specifici per applicazione: per un controllo più granulare, puoi assegnare livelli di accesso diversi ad applicazioni specifiche per un gruppo di utenti. In questo modo si evitano restrizioni indesiderate personalizzando l'accesso in base le esigenze e la sensibilità dell'applicazione.
  • Associa i gruppi di utenti ai livelli di accesso con la configurazione di prova: prima di implementare completamente le associazioni di accesso, puoi verificare l'impatto delle modifiche utilizzando una configurazione di prova. Ciò vi consente di identificare e affrontare qualsiasi potenziale problemi prima che si ripercuotano sugli utenti.

    Con le configurazioni di prova puoi creare i seguenti tipi di associazioni di accesso:

    • Tra un gruppo e un livello di accesso in modalità di prova
    • Tra un gruppo, un livello di accesso normale e un livello di accesso in modalità di prova
    • Tra un gruppo e una mappa di applicazioni, ciascuna con esecuzione regolare e dry run livelli di accesso

Crea un'associazione di accesso con un livello di accesso

Console

  1. Vai alla pagina Chrome Enterprise Premium nella console Google Cloud.

    Vai a Chrome Enterprise Premium

  2. Scegli un'organizzazione e fai clic su Seleziona.

  3. Fai clic su Gestisci accesso per scegliere i gruppi di utenti a cui concedere l'accesso.

  4. Fai clic su Aggiungi e configura quanto segue:

    • Gruppi di membri: specifica il gruppo a cui vuoi concedere l'accesso. Solo i gruppi non ancora associati a un livello di accesso possono essere selezionati.
    • Seleziona i livelli di accesso: scegli il livello di accesso che dovrebbe essere applicati al gruppo.
  5. Fai clic su Salva.

gcloud

Per saperne di più su questo e su altri comandi gcloud access-context-manager cloud-bindings, incluse opzioni di flag aggiuntive, puoi consultare la documentazione dell'interfaccia a riga di comando Google Cloud.

 gcloud access-context-manager cloud-bindings create \
    --group-key GROUP_ID \
    --level ACCESS_LEVEL \
    --organization ORG_ID

Dove:

  • GROUP_ID è l'ID gruppo del gruppo di utenti che hai creato in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get sulla risorsa Groups.

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin. Se la proprietà access-context-manager/organization non è stata impostata, sostituisci ORG_ID nel flag --organization facoltativo con l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin.
  • POLICY_ID è l'ID del criterio di accesso della tua organizzazione.
  • ACCESS_LEVEL ha il formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori di POLICY_ID e ACCESS_LEVEL_NAME sono disponibili in Gestore contesto accesso dal momento in cui hai creato il livello di accesso.

API

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

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato durante la creazione dell'elemento Ruolo GcpAccessAdmin.
  • GROUP_ID è l'ID gruppo del gruppo di utenti che hai creato in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get nella risorsa Groups.

  • POLICY_ID è l'ID del criterio di accesso della tua organizzazione.
  • ACCESS_LEVEL ha il formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori di POLICY_ID e ACCESS_LEVEL_NAME sono disponibili in Gestore contesto accesso dal momento in cui hai creato il livello di accesso.

Metodo HTTP e URL:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Corpo JSON della richiesta:

{
  "groupKey": "GROUP_ID",
  "accessLevels": [ "ACCESS_LEVEL" ],
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",
  "accessLevels": [
    "accessPolicies/305009197125/accessLevels/device_lock"
  ]
}

Crea un'associazione di accesso con una mappa di applicazioni ai livelli di accesso

L'associazione con una mappa di applicazioni ai livelli di accesso ti consente di applicare i livelli di accesso a applicazioni specifiche, evitando effetti indesiderati su altre applicazioni. Questo tipo di associazione supporta i seguenti tipi di casi d'uso:

  • Limita l'accesso per determinate applicazioni: applica i livelli di accesso a specifici senza influire su altre applicazioni.

    Esempio: vuoi implementare accesso basato su certificati (mTLS) per le API Google Cloud, a partire dalla console Google Cloud. Puoi creare un che applica mTLS solo alla console Google Cloud, lasciando altre applicazioni non interessate. In seguito, puoi espandere questa impostazione ad altre applicazioni necessario, utilizzando le prove e i log di controllo per per guidare le tue decisioni.

  • Escludi le applicazioni dai criteri globali: escludi applicazioni specifiche da livelli di accesso applicati a più livelli.

    Esempio: la tua organizzazione implementa una Criterio di accesso basato su IP per tutte le API Google Cloud. Tuttavia, questo causa problemi a due applicazioni Docker. Puoi creare esenzioni per le applicazioni Docker, consentendo loro di ignorarle restrizioni IP globali.

Crea un'associazione di accesso che limita le applicazioni client

gcloud

Crea un'associazione di accesso.

gcloud access-context-manager cloud-bindings create \
 --organization ORG_ID \
 --group-key GROUP_ID \
 --binding-file BINDING_FILE_PATH

Sostituisci quanto segue:

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin. Se la proprietà access-context-manager/organization non è stata impostata, sostituisci ORG_ID nel campo facoltativo --organization con l'ID dell'organizzazione che hai utilizzato durante la creazione GcpAccessAdmin.
  • GROUP_ID è l'ID gruppo del gruppo di utenti che hai creato in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get sulla risorsa Groups.

  • BINDING_FILE_PATH è il percorso del file YAML contenente lo schema di associazione dell'accesso. Il file di binding supporta solo scopedAccessSettings.

Di seguito è riportato un esempio di file di associazione che lega la console Google Cloud e l'applicazione OAuth di un utente a due livelli di accesso distinti.

  scopedAccessSettings:
  - scope:
     clientScope:
       restrictedClientApplication:
         name: Cloud Console
    activeSettings:
      accessLevels:
      - ACCESS_LEVEL_1
  - scope:
     clientScope:
       restrictedClientApplication:
         client_id: CLIENT_ID
     activeSettings:
       accessLevels:
       - ACCESS_LEVEL_2

Sostituisci quanto segue:

  • ACCESS_LEVEL_1 Un livello di accesso che definisce la condizione di accesso a un'applicazione client.
  • CLIENT_ID L'ID client OAuth dell'applicazione.
  • ACCESS_LEVEL_2 Un livello di accesso che definisce la condizione di accesso a un'applicazione client.

API

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

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato durante la creazione dell'elemento Ruolo GcpAccessAdmin.
  • GROUP_ID è l'ID del gruppo di utenti che creati in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get nella risorsa Groups.

  • CLIENT_ID L'ID client OAuth dell'applicazione.
  • ACCESS_LEVEL_1 Un livello di accesso che definisce la condizione di accesso a un'applicazione client.
  • ACCESS_LEVEL_2 Un livello di accesso che definisce la condizione di accesso a un'applicazione client.

Metodo HTTP e URL:

POST
https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Il corpo JSON della richiesta seguente associa la console Google Cloud e l'applicazione OAuth di un utente su due livelli di accesso distinti.

{
     "group_key": "{GROUP_ID}",
     "scoped_access_settings": [
        {
            "scope": {
              "client_scope": {
                  "restricted_client_application": {
                      "name": "Cloud Console"
                  }
              }
          },
          "active_settings": {
              "access_levels": [
                 {ACCESS_LEVEL_1}
              ]
          }
      },
      {
          "scope": {
              "client_scope": {
                  "restricted_client_application": {
                      "client_id": "{CLIENT_ID}"
                  }
              }
          },
            "active_settings": {
              "access_levels": [
                  "{ACCESS_LEVEL_2}"
              ]
          }
      }
  ]
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Il seguente comando presuppone che tu abbia eseguito l'accesso all'interfaccia a riga di comando gcloud con il tuo account utente eseguendo gcloud init o gcloud auth login oppure utilizzando Cloud Shell, che ti consente di accedere automaticamente all'interfaccia a riga di comando gcloud. Puoi controllare l'account attualmente attivo eseguendo gcloud auth list.

Salva il corpo della richiesta in un file denominato request.json ed esegui seguente comando:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d @request.json \
  "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

Dovresti ricevere una risposta JSON simile alla seguente:

{
"name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
"groupKey": "045jfvxd0ybeul8",
"accessLevels": [
 "accessPolicies/305009197125/accessLevels/device_lock"
]
}

PowerShell

Il seguente comando presuppone che tu abbia eseguito l'accesso a gcloud CLI con il tuo account utente eseguendo gcloud init o gcloud auth login. Puoi controllare lo stato attuale eseguendo gcloud auth list.

Salva il corpo della richiesta in un file denominato request.json ed esegui seguente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
 -Method POST `
 -Headers $headers `
 -ContentType: "application/json; charset=utf-8" `
 -InFile request.json `
 -Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
"name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
"groupKey": "045jfvxd0ybeul8",
"accessLevels": [
 "accessPolicies/305009197125/accessLevels/device_lock"
]
}

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "name": "organizations/660620010374/gcpUserAccessBindings/aAQS-YRQXEDW8mJ4tE5U7VIDwBczxhxwtfUaDkUDLBKBIPvzH",
  "groupKey": "019c6y182grvb0j",
  "scopedAccessSettings": [
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "name": "Cloud Console"
          }
        }
      },
      "activeSettings": {
        "accessLevels": [
          "accessPolicies/244346580249/accessLevels/requireMutualTLS"
        ]
      }
    },
    {
      "scope": {
        "clientScope": {
          "restrictedClientApplication": {
            "clientId": "32555940559.apps.googleusercontent.com"
          }
        }
      },
      "activeSettings": {
        "accessLevels": [
          "accessPolicies/244346580249/accessLevels/requireMutualTLS"
        ]
      }
    }
  ]
}

Creare un'associazione di accesso che esenta le applicazioni client

gcloud

Crea un'associazione di accesso.

gcloud access-context-manager cloud-bindings create \
--organization {ORG_ID} \
--group-key {GROUP_ID} \
--level {ACCESS_LEVEL} \
--binding-file {BINDING_FILE_PATH}

Sostituisci quanto segue:

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin. Se la proprietà access-context-manager/organization non è stata impostata, sostituisci ORG_ID nel campo facoltativo --organization con l'ID dell'organizzazione che hai utilizzato durante la creazione GcpAccessAdmin.
  • GROUP_ID è l'ID del gruppo di utenti che creati in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get nella risorsa Groups.

  • ACCESS_LEVEL ha il formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori di POLICY_ID e ACCESS_LEVEL_NAME sono disponibili in Gestore contesto accesso dal momento in cui hai creato il livello di accesso. Questo livello di accesso definisce la condizione di accesso a livello globale applicati a tutte le applicazioni client.
  • BINDING_FILE_PATH è il percorso del file YAML che contiene l'accesso di associazione. Il file di binding supporta solo scopedAccessSettings. Per il caso d'uso di esenzione, questo file di associazione contiene le applicazioni esenti dal livello di accesso.

Di seguito è riportato un esempio di file di associazione che lega la console Google Cloud e l'applicazione OAuth di un utente a due livelli di accesso distinti.

scopedAccessSettings:
- scope:
   clientScope:
     restrictedClientApplication:
       name: Cloud Console
  activeSettings:
    accessLevels:
    - {EXEMPTION_ACCESS_LEVEL}
- scope:
   clientScope:
     restrictedClientApplication:
       client_id: {CLIENT_ID}
   activeSettings:
     accessLevels:
     - {EXEMPTION_ACCESS_LEVEL}

Sostituisci quanto segue:

  • EXEMPTION_ACCESS_LEVEL Puoi creare un livello di accesso con esenzione in uno dei seguenti modi:
  • CLIENT_ID L'ID client OAuth dell'applicazione.

API

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

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin.
  • GROUP_ID è l'ID del gruppo di utenti che creati in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get nella risorsa Groups.

  • ACCESS_LEVEL: un livello di accesso che definisce la condizione di accesso e applicato a livello globale a tutte le applicazioni client.
  • EXEMPTION_ACCESS_LEVEL Puoi creare un livello di accesso con esenzione in uno dei seguenti modi:
  • CLIENT_ID L'ID client OAuth dell'applicazione.

Metodo HTTP e URL:

POST
https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Il seguente corpo JSON della richiesta esenta la console Google Cloud e l'applicazione OAuth di un utente dal livello di accesso applicato a livello globale.

{
    "group_key": "{GROUP_ID}",
    "access_levels": [
       {ACCESS_LEVEL}
    ],
    "scoped_access_settings": [
        {
            "scope": {
                "client_scope": {
                    "restricted_client_application": {
                        "name": "Cloud Console"
                    }
                }
            },
            "active_settings": {
                "access_levels": [
                   {EXEMPTION_ACCESS_LEVEL}
                ]
            }
        },
        {
            "scope": {
                "client_scope": {
                    "restricted_client_application": {
                        "client_id": "{CLIENT_ID}"
                    }
                }
            },
            "active_settings": {
                "access_levels": [
                    "{EXEMPTION_ACCESS_LEVEL}"
                ]
            }
        }
    ]
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Il comando seguente presuppone che tu abbia eseguito l'accesso a gcloud CLI con il tuo account utente eseguendo gcloud init o gcloud auth login oppure utilizzando Cloud di Cloud Shell, che ti consente di accedere automaticamente con gcloud CLI. Puoi controllare l'account attualmente attivo in esecuzione su gcloud auth list.

Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d @request.json \
  "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

Dovresti ricevere una risposta JSON simile alla seguente:

{
"name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
"groupKey": "045jfvxd0ybeul8",
"accessLevels": [
 "accessPolicies/305009197125/accessLevels/device_lock"
]
}

PowerShell

Il comando seguente presuppone che tu abbia eseguito l'accesso all'interfaccia a riga di comando gcloud con il tuo account utente eseguendo gcloud init o gcloud auth login. Puoi controllare l'account attualmente attivo eseguendo il comando gcloud auth list.

Salva il corpo della richiesta in un file denominato request.json ed esegui seguente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
 -Method POST `
 -Headers $headers `
 -ContentType: "application/json; charset=utf-8" `
 -InFile request.json `
 -Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
"name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
"groupKey": "045jfvxd0ybeul8",
"accessLevels": [
 "accessPolicies/305009197125/accessLevels/device_lock"
]
}

Dovresti ricevere una risposta JSON simile alla seguente:

  {
      "name": "organizations/660620010374/gcpUserAccessBindings/aAQS-YRQXEDW8mJ4tE5U7VIDwBczxhxwtfUaDkUDLBKBIPvzH",
      "groupKey": "019c6y182grvb0j",
      "accessLevels": [
        "accessPolicies/244346580249/accessLevels/requireMutualTLS"
      ],
      "scopedAccessSettings": [
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "name": "Cloud Console"
              }
            }
          },
          "activeSettings": {
            "accessLevels": [
              "accessPolicies/244346580249/accessLevels/AlwaysTrue"
            ]
          }
        },
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "clientId": "32555940559.apps.googleusercontent.com"
              }
            }
          },
          "activeSettings": {
            "accessLevels": [
              "accessPolicies/244346580249/accessLevels/AlwaysTrue"
            ]
          }
        }
      ]
  }
  ```

Creare un'associazione di accesso con configurazione di prova

Puoi creare un'associazione di accesso con una configurazione dry run per comprendere l'impatto dei livelli di accesso nel tuo ambiente scenari aggiuntivi:

  • Per valutare l'impatto di un livello di accesso prima di applicarlo, crea un'associazione di accesso con un livello di accesso di prova.
  • Per applicare un livello di accesso e valutare contemporaneamente l'impatto di un livello di accesso di prova, crea un'associazione di accesso con un livello di accesso attivo e con un livello di accesso di prova.

Un'associazione dell'accesso con un livello di accesso dry run non impedisce l'accesso, ma i log violazioni del livello di accesso in modalità di prova. Per visualizzare i dettagli del log, consulta log denial.

Crea un'associazione di accesso con un livello di accesso dry run

gcloud

    gcloud access-context-manager cloud-bindings create \
    --group-key GROUP_ID \
    --dry-run-level DRY_RUN_ACCESS_LEVEL \
    --organization ORG_ID

Dove:

  • GROUP_ID è l'ID del gruppo di utenti che creati in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get nella risorsa Groups.

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato durante la creazione dell'elemento Ruolo GcpAccessAdmin. Se la proprietà access-context-manager/organization non è stata impostata, sostituisci ORG_ID nel campo facoltativo --organization con l'ID dell'organizzazione che hai utilizzato durante la creazione GcpAccessAdmin.
  • POLICY_ID è l'ID del criterio di accesso della tua organizzazione.
  • DRY_RUN_ACCESS_LEVEL è il ACCESS_LEVEL di cui vuoi comprendere l'effetto. ACCESS_LEVEL è nel modulo accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori per POLICY_ID e ACCESS_LEVEL_NAME si trova in Gestore contesto accesso da quando hai creato il livello di accesso.

API

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

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin.
  • GROUP_ID è l'ID gruppo del gruppo di utenti che hai creato in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get sulla risorsa Groups.

  • POLICY_ID è l'ID del criterio di accesso della tua organizzazione.
  • DRY_RUN_ACCESS_LEVEL è il ACCESS_LEVEL di cui vuoi informazioni l'effetto. ACCESS_LEVEL è nel modulo accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori di POLICY_ID e ACCESS_LEVEL_NAME sono disponibili in Gestore contesto accesso dal momento in cui hai creato il livello di accesso.

Metodo HTTP e URL:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Corpo JSON della richiesta:

{
  "groupKey": "GROUP_ID",
  "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",

  "dryRunAccessLevels": [
    "accessPolicies/305009197125/accessLevels/another"
  ]
}

Creare un'associazione di accesso con un livello di accesso e un livello di accesso di prova

gcloud

    gcloud access-context-manager cloud-bindings create \
    --group-key GROUP_ID \
    --level ACCESS_LEVEL \
    --dry-run-level DRY_RUN_ACCESS_LEVEL \
    --organization ORG_ID

Dove:

  • GROUP_ID è l'ID del gruppo di utenti che creati in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get nella risorsa Groups.

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin. Se la proprietà access-context-manager/organization non è stata impostata, sostituisci ORG_ID nel flag --organization facoltativo con l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin.
  • POLICY_ID è l'ID del criterio di accesso della tua organizzazione.
  • ACCESS_LEVEL ha il formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori di POLICY_ID e ACCESS_LEVEL_NAME sono disponibili in Gestore contesto accesso dal momento in cui hai creato il livello di accesso.
  • DRY_RUN_ACCESS_LEVEL è il ACCESS_LEVEL di cui vuoi comprendere l'effetto. ACCESS_LEVEL ha il formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori di POLICY_ID e ACCESS_LEVEL_NAME sono disponibili in Gestore contesto accesso dal momento in cui hai creato il livello di accesso.

API

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

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin.
  • GROUP_ID è l'ID del gruppo di utenti che creati in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get nella risorsa Groups.

  • POLICY_ID è l'ID del criterio di accesso della tua organizzazione.
  • ACCESS_LEVEL è nel modulo accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori per POLICY_ID e ACCESS_LEVEL_NAME si trova in Gestore contesto accesso da quando hai creato il livello di accesso.
  • DRY_RUN_ACCESS_LEVEL è il ACCESS_LEVEL di cui vuoi comprendere l'effetto. ACCESS_LEVEL ha il formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori di POLICY_ID e ACCESS_LEVEL_NAME sono disponibili in Gestore contesto accesso dal momento in cui hai creato il livello di accesso.

Metodo HTTP e URL:

POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Corpo JSON della richiesta:

{
  "groupKey": "GROUP_ID",
  "accessLevels": [ "ACCESS_LEVEL" ],
  "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

PowerShell

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:


{
  "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
  "groupKey": "045jfvxd0ybeul8",
  "accessLevels": [
    "accessPolicies/305009197125/accessLevels/device_lock"
  ],
  "dryRunAccessLevels": [
    "accessPolicies/305009197125/accessLevels/another"
  ]
}

Crea un'associazione di accesso con una mappa delle applicazioni ai livelli di accesso e ai livelli di accesso di prova

gcloud

Crea un'associazione di accesso.

 gcloud access-context-manager cloud-bindings create \
  --organization ORG_ID \
  --group-key GROUP_ID \
  --binding-file BINDING_FILE_PATH

Sostituisci quanto segue:

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato durante la creazione dell'elemento Ruolo GcpAccessAdmin. Se la proprietà access-context-manager/organization non è stata impostata, sostituisci ORG_ID nel flag --organization facoltativo con l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin.
  • GROUP_ID è l'ID del gruppo di utenti che creati in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get sulla risorsa Groups.

  • BINDING_FILE_PATH è il percorso del file YAML che contiene l'accesso di associazione. Il file di associazione supporta solo scopedAccessSettings.

Di seguito è riportato un esempio di file di associazione che associa la console Google Cloud e l'applicazione OAuth di un utente a un livello di accesso e a un livello di accesso di prova.

scopedAccessSettings:
- scope:
   clientScope:
     restrictedClientApplication:
       name: Cloud Console
  activeSettings:
    accessLevels:
    - {ACCESS_LEVEL_1}
- scope:
   clientScope:
     restrictedClientApplication:
       client_id: {CLIENT_ID}
   dryRunSettings:
     accessLevels:
     - {ACCESS_LEVEL_2}

Sostituisci quanto segue:

  • ACCESS_LEVEL_1 Un livello di accesso che definisce la condizione di accesso a un'applicazione client.
  • CLIENT_ID L'ID client OAuth dell'applicazione.
  • ACCESS_LEVEL_2 Un livello di accesso che definisce la condizione di accesso a un'applicazione client.

API

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

  • ORG_ID è l'ID dell'organizzazione che hai utilizzato durante la creazione dell'elemento Ruolo GcpAccessAdmin.
  • GROUP_ID è l'ID del gruppo di utenti che creati in precedenza.

    Se non hai a disposizione l'ID gruppo, puoi recuperarlo chiamando il metodo get sulla risorsa Groups.

  • CLIENT_ID L'ID client OAuth dell'applicazione.
  • ACCESS_LEVEL_1 Un livello di accesso che definisce la condizione di accesso a un'applicazione client.
  • ACCESS_LEVEL_2 Un livello di accesso che definisce la condizione di accesso a un'applicazione client.

Metodo HTTP e URL:

POST
https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

Il seguente corpo JSON della richiesta lega la console Google Cloud e l'applicazione OAuth di un utente a un livello di accesso e a un livello di accesso di prova.

{
    "group_key": "{GROUP_ID}",
    "scoped_access_settings": [
        {
            "scope": {
                "client_scope": {
                    "restricted_client_application": {
                        "name": "Cloud Console"
                    }
                }
            },
            "active_settings": {
                "access_levels": [
                   {ACCESS_LEVEL_1}
                ]
            }
        },
        {
            "scope": {
                "client_scope": {
                    "restricted_client_application": {
                        "client_id": "{CLIENT_ID}"
                    }
                }
            },
            "dry_run_settings": {
                "access_levels": [
                    "{ACCESS_LEVEL_2}"
                ]
            }
        }
    ]
}

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Il comando seguente presuppone che tu abbia eseguito l'accesso a gcloud CLI con il tuo account utente eseguendo gcloud init o gcloud auth login oppure utilizzando Cloud di Cloud Shell, che ti consente di accedere automaticamente con gcloud CLI. Puoi controllare l'account attualmente attivo eseguendo gcloud auth list.

Salva il corpo della richiesta in un file denominato request.json ed esegui il seguente comando:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d @request.json \
  "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

Dovresti ricevere una risposta JSON simile alla seguente:

{
"name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
"groupKey": "045jfvxd0ybeul8",
"accessLevels": [
 "accessPolicies/305009197125/accessLevels/device_lock"
]
}

PowerShell

Il seguente comando presuppone che tu abbia eseguito l'accesso a gcloud CLI con il tuo account utente eseguendo gcloud init o gcloud auth login. Puoi controllare lo stato attuale eseguendo gcloud auth list.

Salva il corpo della richiesta in un file denominato request.json ed esegui seguente comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
 -Method POST `
 -Headers $headers `
 -ContentType: "application/json; charset=utf-8" `
 -InFile request.json `
 -Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

Dovresti ricevere una risposta JSON simile alla seguente:

{
"name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
"groupKey": "045jfvxd0ybeul8",
"accessLevels": [
 "accessPolicies/305009197125/accessLevels/device_lock"
]
}

Dovresti ricevere una risposta JSON simile alla seguente:

{
    "name": "organizations/660620010374/gcpUserAccessBindings/aAQS-YRQXEDW8mJ4tE5U7VIDwBczxhxwtfUaDkUDLBKBIPvzH",
    "groupKey": "019c6y182grvb0j",
    "scopedAccessSettings": [
      {
        "scope": {
          "clientScope": {
            "restrictedClientApplication": {
              "name": "Cloud Console"
            }
          }
        },
        "activeSettings": {
          "accessLevels": [
            "accessPolicies/244346580249/accessLevels/requireMutualTLS"
          ]
        }
      },
      {
        "scope": {
          "clientScope": {
            "restrictedClientApplication": {
              "clientId": "32555940559.apps.googleusercontent.com"
            }
          }
        },
        "dryRunSettings": {
          "accessLevels": [
            "accessPolicies/244346580249/accessLevels/requireMutualTLS"
          ]
        }
      }
    ]
}

Visualizza i log di rifiuto

Dopo aver creato una configurazione di prova, puoi esaminare i log per identificare in cui la configurazione dry run nega l'accesso.

La tabella seguente elenca i campi dei log che puoi utilizzare per creare ed eseguire la query per recuperare i log:

Nome campo Descrizione
protoPayload > authenticationInfo > principalEmail ID email dell'entità per cui è negato l'accesso.
protoPayload > metadata > deniedApplications Nome dell'applicazione per cui l'accesso è negato.
protoPayload > metadata > evaluationResult Il risultato della valutazione del criterio di accesso attivo. Valori possibili: GRANTED o DENIED.
protoPayload > metadata > appliedAccessLevels I livelli di accesso applicati richiesti dal criterio di accesso attivo.
protoPayload > metadata > appliedDryRunAccessLevels I livelli di accesso applicati richiesti dal criterio di accesso dry run.
protoPayload > metadata > dryRunEvaluationResult Il risultato della valutazione del criterio di accesso dry run, che indica l'azione prevista quando viene applicato il criterio di accesso. Valori possibili: GRANTED o DENIED.

Per maggiori dettagli su come creare una query per i log, consulta Linguaggio di query di Logging.

Console

  1. Nel menu di navigazione della console Google Cloud, fai clic su Logging, quindi Fai clic su Esplora log.

    Vai a Esplora log

  2. Nel campo Query, inserisci un filtro di query come quello riportato di seguito, quindi fai clic su Esegui query.

    severity="ERROR" AND
    (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
     protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
     protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"
    
  3. Visualizza i log in Risultati delle query.

gcloud

Per visualizzare i log utilizzando gcloud CLI, esegui un comando come il seguente:

gcloud logging read 'severity="ERROR" AND
  (protoPayload.metadata.evaluationResult=DENIED OR protoPayload.metadata.dryRunEvaluationResult=DENIED) AND
   protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.ContextAwareAccessAuditMetadata" AND
   protoPayload.metadata.deniedApplications.name="CLOUD_PLATFORM"'

Gestisci associazioni di accessi

Dopo aver creato le associazioni di accesso per un gruppo di utenti, l'accesso alla Console Google Cloud e alle API di Google Cloud viene controllato in base al rispetto del livello di accesso associato.

Puoi visualizzare i dettagli dell'associazione di accesso che hai creato, modificarla o eliminarlo.

Visualizza associazioni di accesso

Console

Puoi visualizzare tutte le associazioni di accesso per l'organizzazione e visualizzare dettagli di un'associazione di accesso.

gcloud

  • Per visualizzare tutte le associazioni di accesso, esegui il seguente comando:

      gcloud access-context-manager cloud-bindings list \
       --organization ORG_ID
    

    Dove:

    ORG_ID è l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin. . Se la proprietà access-context-manager/organization non è stata impostata, sostituisci ORG_ID nel flag --organization facoltativo con l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin.

  • Per visualizzare i dettagli di un'associazione di accesso, esegui questo comando:

      gcloud access-context-manager cloud-bindings describe \
      --binding=BINDING_ID
    

    Dove:

    BINDING_ID è l'ID dell'associazione di accesso o l'identificatore completo per l'associazione di accesso.

API

  • Visualizza tutte le associazioni di accesso:

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

    • ORG_ID è l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin. Se la proprietà access-context-manager/organization non è stata impostata, sostituisci ORG_ID nel flag --organization facoltativo con l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin.

    Metodo HTTP e URL:

    GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Esegui questo comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings"

    PowerShell

    Esegui questo comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

    
    {
      "name": string,
      "groupKey": string,
      "accessLevels": [
        string
      ]
      "dryRunAccessLevels": [
      string
      ]
    }
    
    

  • Visualizza i dettagli di un'associazione di accesso:

    Metodo HTTP e URL:

    GET https://accesscontextmanager.googleapis.com/v1/BINDING_ID

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Esegui questo comando:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://accesscontextmanager.googleapis.com/v1/BINDING_ID"

    PowerShell

    Esegui questo comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://accesscontextmanager.googleapis.com/v1/BINDING_ID" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

    
    {
      "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
      "groupKey": "045jfvxd0ybeul8",
      "accessLevels": [
        "accessPolicies/305009197125/accessLevels/device_lock"
      ],
      "dryRunAccessLevels": [
        "accessPolicies/305009197125/accessLevels/another"
      ]
    }
    
    

Aggiornare le associazioni di accesso

Console

Puoi aggiornare un'associazione di accesso in base alle tue esigenze.

gcloud

  • Per aggiornare un'associazione di accesso, ad esempio per modificare il livello di accesso, esegui l' seguente comando:

      gcloud access-context-manager cloud-bindings update \
         --binding ACCESS_BINDING \
         --level ACCESS_LEVEL
    

    Dove:

    • ACCESS_BINDING è nel modulo organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • ORG_ID è l'ID dell'organizzazione che hai utilizzato per creare il ruolo GcpAccessAdmin.
    • ACCESS_BINDING_NAME è la stringa univoca restituita per l'identificatore name quando è stata creata l'associazione di accesso.
    • Sostituisci il valore di ACCESS_LEVEL in base alle esigenze. ACCESS_LEVEL ha il formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori di POLICY_ID e ACCESS_LEVEL_NAME sono disponibili in Gestore contesto accesso dal momento in cui hai creato il livello di accesso.
  • Per aggiornare un'associazione di accesso con un livello di accesso di prova, esegui il seguente comando:

     gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
      --dry-run-level=DRY_RUN_ACCESS_LEVEL
    

    Sostituisci il valore di DRY_RUN_ACCESS_LEVEL secondo necessità. È nel formato accessPolicies/POLICY_ID/accessLevels/DRY_ACCESS_LEVEL_NAME.

  • Aggiornare un'associazione di accesso e modificare il livello di accesso e l'accesso in modalità di prova esegui questo comando:

     gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
     --level=`ACCESS_LEVEL`
     --dry-run-level=DRY_RUN_ACCESS_LEVEL
    

    Sostituisci il valore di ACCESS_LEVEL e DRY_RUN_ACCESS_LEVEL secondo necessità. ACCESS_LEVEL e DRY_RUN_ACCESS_LEVEL sono nel formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME e DRY_RUN_ACCESS_LEVEL è uguale a ACCESS_LEVEL.

  • Per rimuovere un livello di accesso dry run da un'associazione di accesso, esegui questo comando :

      gcloud access-context-manager cloud-bindings update --binding=ACCESS_BINDING
      --dry-run-level=
    

API

  • Aggiorna un'associazione di accesso, ad esempio per modificare il livello di accesso:

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

    • ACCESS_BINDING_NAME è la stringa univoca restituita per l'identificatore name al momento della creazione dell'associazione di accesso.
    • ACCESS_LEVEL ha il formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori di POLICY_ID e ACCESS_LEVEL_NAME sono disponibili in Gestore contesto accesso dal momento in cui hai creato il livello di accesso.

    Metodo HTTP e URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels

    Corpo JSON della richiesta:

    {
        "accessLevels": [ "ACCESS_LEVEL" ]
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

    
    {
        "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
        "groupKey": "045jfvxd0ybeul8",
        "accessLevels": [
          "accessPolicies/305009197125/accessLevels/device_lock"
        ]
    }
    
    

  • Aggiorna un'associazione di accesso con il livello di accesso di prova:

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

    • ACCESS_BINDING_NAME è la stringa univoca restituita per l'identificatore name al momento della creazione dell'associazione di accesso.
    • DRY_RUN_ACCESS_LEVEL è il ACCESS_LEVEL di cui vuoi comprendere l'effetto. ACCESS_LEVEL è nel modulo accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori per POLICY_ID e ACCESS_LEVEL_NAME si trova in Gestore contesto accesso da quando hai creato il livello di accesso.

    Metodo HTTP e URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels

    Corpo JSON della richiesta:

    {
      "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

    
    {
      name: "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
    
      group_key: "045jfvxd0ybeul8",
    
      dry_run_access_levels: [ "accessPolicies/305009197125/accessLevels/another" ]
      }
    
    

  • Aggiorna un'associazione di accesso e modifica sia il livello di accesso sia il livello di accesso per la simulazione:

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

    • ACCESS_BINDING_NAME è la stringa univoca restituita per l'identificatore name al momento della creazione dell'associazione di accesso.
    • ACCESS_LEVEL ha il formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori di POLICY_ID e ACCESS_LEVEL_NAME sono disponibili in Gestore contesto accesso dal momento in cui hai creato il livello di accesso.
    • DRY_RUN_ACCESS_LEVEL è il ACCESS_LEVEL di cui vuoi informazioni l'effetto. ACCESS_LEVEL ha il formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. I valori per POLICY_ID e ACCESS_LEVEL_NAME si trova in Gestore contesto accesso da quando hai creato il livello di accesso.

    Metodo HTTP e URL:

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels

    Corpo JSON della richiesta:

    {
      "accessLevels": [ "ACCESS_LEVEL" ],
      "dryRunAccessLevels": [ "DRY_RUN_ACCESS_LEVEL" ]
     }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels,dry_run_access_levels" | Select-Object -Expand Content

    Dovresti ricevere una risposta JSON simile alla seguente:

    
    {
      "name": "organizations/427391306986/gcpUserAccessBindings/aAQS-YRSviv2hC12vZFUN3AZzvwa6KV2hJ89iMytB_nHUcT1l",
      "groupKey": "045jfvxd0ybeul8",
      "accessLevels": [
        "accessPolicies/305009197125/accessLevels/device_lock"
      ],
      "dryRunAccessLevels": [
        "accessPolicies/305009197125/accessLevels/another"
      ]
    }
    
    

  • Rimuovi un livello di accesso dry run da un'associazione di accesso:

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

    • ACCESS_BINDING_NAME è la stringa univoca restituita per l'identificatore name al momento della creazione dell'associazione di accesso.

    Metodo HTTP e URL:

    PATCH PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels

    Corpo JSON della richiesta:

    {
      "dryRunAccessLevels": [ ]
    }
    
    

    Per inviare la richiesta, scegli una delle seguenti opzioni:

    curl

    Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels"

    PowerShell

    Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=dry_run_access_levels" | Select-Object -Expand Content

    Dovresti ricevere un codice di stato di operazione riuscita (2xx) e una risposta vuota.

Elimina associazioni di accessi

Console

Puoi eliminare una associazione di accesso in qualsiasi momento.

gcloud

   gcloud access-context-manager cloud-bindings delete \
       --binding ACCESS_BINDING

Dove:

  • ACCESS_BINDING è nel modulo organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
  • ACCESS_BINDING_NAME è la stringa univoca restituita per l'identificatore name quando è stata creata l'associazione di accesso.

API

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

  • ACCESS_BINDING_NAME è la stringa univoca restituita per l'identificatore name al momento della creazione dell'associazione di accesso.

Metodo HTTP e URL:

DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Esegui questo comando:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME"

PowerShell

Esegui questo comando:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME" | Select-Object -Expand Content

Dovresti ricevere un codice di stato di operazione riuscita (2xx) e una risposta vuota.

Domande frequenti

  • Quanto tempo è necessario perché un'associazione di accesso appena creata abbia effetto?

    L'operazione potrebbe richiedere fino a 24 ore.

  • Cosa succede se elimino un gruppo con un'associazione di accesso?

    Il gruppo e il vincolo vengono eliminati e a tutti gli utenti del gruppo viene consentito l'accesso.

  • Cosa succede se elimino il livello di accesso utilizzato in un'associazione di accesso?

    Il livello di accesso non può mai essere soddisfatto e tutti gli utenti del gruppo associato vengono accesso negato.

  • Cosa succede quando un utente fa parte di più gruppi con associazioni di accesso?

    Per ottenere l'accesso, l'utente deve soddisfare solo il livello di accesso di uno di questi gruppi l'accesso.

  • Cosa succede per gli utenti che non fanno parte della mia organizzazione?

    Chiunque non faccia parte della tua organizzazione, anche se li hai aggiunti al gruppo di utenti che dovrebbero essere vincolati da restrizioni sensibili al contesto, non soggetta all'associazione dell'accesso.

Passaggi successivi