Gestisci le associazioni di accesso

Questa pagina spiega come gestire le associazioni di accesso esistenti, che definiscono come vengono applicate le policy di accesso ai gruppi di utenti. Puoi visualizzare, modificare ed eliminare queste associazioni in base alle esigenze. Le associazioni di accesso determinano la modalità di applicazione dei livelli di accesso e dei controlli della sessione a un gruppo di utenti.

Per informazioni su come creare associazioni di accesso e per maggiori dettagli su livelli di accesso e controlli della sessione, consulta Applicare le policy ai gruppi di utenti con le associazioni di accesso.

Visualizzare le associazioni di accesso in visualizzazione

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

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

Console

  1. Nella Google Cloud console, vai alla pagina Gestore contesto accesso.

    Vai a Gestore contesto accesso

  2. Se ti viene chiesto, seleziona un progetto. L'elenco delle associazioni di accesso è riportato nella pagina Gestore contesto accesso.

gcloud

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

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

    ORG_ID: l'ID organizzazione. 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 durante la creazione del ruolo GcpAccessAdmin.

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

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

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

API

  • Visualizza tutte le associazioni di accesso:

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

    • ORG_ID è l'ID dell'organizzazione che hai utilizzato durante la creazione del 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 durante la creazione del ruolo GcpAccessAdmin.

    Metodo HTTP e URL:

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

    Per inviare la richiesta, scegli una di queste 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 di queste 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 un'associazione di accesso

Puoi aggiornare un'associazione di accesso per eseguire le seguenti operazioni:

  • Aggiungere, rimuovere o modificare le applicazioni a cui è applicata una policy.
  • Modificare i livelli di accesso per un'applicazione all'interno di un gruppo di utenti.
  • Aggiungere un nuovo livello di accesso di prova o promuovere un livello esistente a un livello live.

Console

  1. Nella Google Cloud console, vai alla pagina Gestore contesto accesso.

    Vai a Gestore contesto accesso

  2. Se ti viene chiesto, seleziona un progetto.

  3. Nella pagina Gestore contesto accesso, seleziona un'associazione di accesso e fai clic su Modifica per aggiornarla.

Non puoi aggiornare le associazioni di accesso con livelli di accesso di prova o controlli della sessione nella console. Google Cloud

gcloud

  1. Crea un file di associazione YAML.

    gcloud access-context-manager cloud-bindings update
      --binding ACCESS_BINDING
      --binding-file BINDING_FILE_PATH
    [  --level DEFAULT_ACCESS_LEVEL ]
    [  --dry-run-level DEFAULT_DRY_RUN_ACCESS_LEVEL           ]
    [  --session-length=DEFAULT_SESSION_LENGTH                ]
    [  --session-reauth-method=DEFAULT_SESSION_REAUTH_METHOD  ]
    

    Sostituisci quanto segue:

    • ACCESS_BINDING è nella postura organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • BINDING_FILE_PATH: il percorso del file YAML che contiene lo schema dell'associazione di accesso. Il file di associazione supporta solo scopedAccessSettings.
    • DEFAULT_ACCESS_LEVEL: il nome del livello di accesso facoltativo, nel formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Sostituisci POLICY_ID con l'ID della policy di accesso e ACCESS_LEVEL_NAME con il nome del livello di accesso.
    • DEFAULT_DRY_RUN_ACCESS_LEVEL_2: un nome di livello di accesso facoltativo nel formato `accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME`. Includi questo flag per applicare il livello di accesso di prova specificato a tutte le applicazioni per impostazione predefinita se non sono specificate nel file YAML.
    • DEFAULT_SESSION_LENGTH: la durata della sessione facoltativa nel formato orario, ad esempio 15h per 15 ore o 2h per due ore.
    • DEFAULT_SESSION_REAUTH_METHOD: il metodo facoltativo per richiedere agli utenti di verificare nuovamente la propria identità, che deve essere uno dei seguenti:
      • LOGIN: applica l'accesso standard, che può includere MFA o altri fattori definiti da Workspace.
      • PASSWORD: richiede solo una password, anche se sono definiti altri fattori. Se le password vengono gestite utilizzando un IdP esterno, gli utenti vengono reindirizzati all'IdP. Se la sessione IdP è attiva, gli utenti vengono autenticati nuovamente in modo implicito. Se l'IdP non è attivo, gli utenti devono accedere tramite l'IdP.
      • SECURITY_KEY: richiede un token di sicurezza fisico.

    Come funzionano insieme gli argomenti --level e --binding-file

    • Se utilizzi solo --binding-file, le policy vengono applicate solo alle applicazioni nel file.
    • Se utilizzi solo --level, il livello di accesso si applica a tutte le applicazioni.
    • Se utilizzi entrambi, le regole vengono combinate. Il valore --level si applica a tutte le applicazioni, mentre le policy nel file YAML specificato da --binding-file si applicano solo alle applicazioni come definite nel file.

    Utilizzare i controlli della sessione

    • Per impostare i controlli della sessione predefiniti per tutte le applicazioni, utilizza --session-length e --session-reauth-method.
    • Se definisci anche i controlli della sessione nel file YAML, questi controlli della sessione sostituiscono le impostazioni predefinite per queste applicazioni specifiche.
    • Devi utilizzare --session-length e --session-reauth-method insieme.

    Per rimuovere un livello di accesso predefinito o un livello di accesso di prova predefinito, fornisci una stringa vuota, ad esempio --level= o --dry-run-level=. Se questi argomenti non vengono forniti, il comando update non apporterà modifiche.

    Per rimuovere un Controllo sessione, imposta --session-length=0.

API

  1. Crea un corpo JSON.

    {
      "accessLevels": [
        "DEFAULT_ACCESS_LEVEL"
      ],
      "scopedAccessSettings": [
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "clientId": "CLIENT_ID"
              }
            }
          },
          "activeSettings": {
            "accessLevels": [
              "ACCESS_LEVEL_A"
            ],
            "sessionSettings": [
              {
                "sessionLength": "SESSION_LENGTH",
                "sessionReauthMethod": "SESSION_REAUTH_METHOD",
                "sessionLengthEnabled": true
              }
            ]
        }
        },
        {
          "scope": {
            "clientScope": {
              "restrictedClientApplication": {
                "name": "CLIENT_NAME"
              }
            },
            "activeSettings": {
              "accessLevels": [
                "ACCESS_LEVEL_C"
              ]
            }
          }
        }
      ]
    }
    

    Sostituisci quanto segue:

    • DEFAULT_ACCESS_LEVEL: il nome del livello di accesso facoltativo, nel formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Sostituisci POLICY_ID con l'ID della policy di accesso e ACCESS_LEVEL_NAME con il nome del livello di accesso.
    • CLIENT_ID: l'ID client OAuth. Devi utilizzare clientId quando un'applicazione contiene sessionSettings.
    • ACCESS_LEVEL_A: un nome di livello di accesso nel formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
    • SESSION_LENGTH: la durata della sessione utilizzando il formato della durata ISO 8601 , ad esempio 30m per 30 minuti o 2h per due ore.
    • SESSION_REAUTH_METHOD: il metodo facoltativo per richiedere agli utenti di verificare nuovamente la propria identità, che deve essere uno dei seguenti:

      • LOGIN: applica l'accesso standard, che può includere MFA o altri fattori definiti da Workspace.
      • PASSWORD: richiede solo una password, anche se sono definiti altri fattori. Se le password vengono gestite utilizzando un IdP esterno, gli utenti vengono reindirizzati all'IdP. Se la sessione IdP è attiva, gli utenti vengono autenticati nuovamente in modo implicito. Se l'IdP non è attivo, gli utenti devono accedere tramite l'IdP.
      • SECURITY_KEY: richiede un token di sicurezza fisico.
    • CLIENT_NAME: il nome del client. Se l'applicazione contiene sessionSettings, non puoi utilizzare il nome del client. Utilizza invece l'ID client OAuth.

    • ACCESS_LEVEL_C: un nome di livello di accesso nel formato accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.

  2. Invia la richiesta PATCH.

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASK
    

    Sostituisci quanto segue:

    • ACCESS_BINDING è nella postura organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • FIELD_MASK: un elenco obbligatorio di campi separati da virgole che vuoi aggiornare. Indica all'API quali parti dell'associazione di accesso modificare.

    fieldMask deve contenere le chiavi JSON di primo livello nel corpo della richiesta che vuoi aggiornare, che possono contenere accessLevels, dryRunAccessLevels e scopedAccessSettings.

    Se l'operazione va a buon fine, dovresti ricevere una rappresentazione dell'oggetto JSON. In caso di problemi, riceverai un messaggio di errore.

Eliminare le associazioni di accesso

Console

  1. Nella Google Cloud console, vai alla pagina Gestore contesto accesso.

    Vai a Gestore contesto accesso

  2. Se ti viene chiesto, seleziona un progetto.

  3. Nella pagina Gestore contesto accesso, seleziona un'associazione di accesso e fai clic su Elimina.

gcloud

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

Sostituisci quanto segue:

  • ACCESS_BINDING è nella postura 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 sostituzioni seguenti:

  • ACCESS_BINDING_NAME è la stringa univoca restituita per l'identificatore name quando è stata creata l'associazione di accesso.

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una di queste 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 riuscito (2xx) e una risposta vuota.