Gestire le associazioni di accesso

Questa pagina spiega come gestire i binding di accesso esistenti, che definiscono in che modo le policy di accesso vengono applicate ai gruppi di utenti. Puoi visualizzare, modificare ed eliminare questi binding in base alle tue esigenze. Le associazioni di accesso determinano il modo in cui i livelli di accesso e i controlli della sessione vengono applicati a un gruppo di utenti.

Per informazioni su come creare binding di accesso e per ulteriori dettagli su livelli di accesso e controlli della sessione, vedi Applicare criteri ai gruppi di utenti con i binding di accesso.

Visualizza le associazioni di accesso

Una volta create le associazioni di accesso per un gruppo di utenti, l'accesso alla consoleGoogle Cloud e alle API Google Cloud viene controllato in base al soddisfacimento del livello di accesso associato.

Puoi visualizzare i dettagli del binding di accesso che hai creato, modificarlo o eliminarlo.

Console

  1. Nella console Google Cloud , 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 tutti i binding 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 facoltativo --organization con l'ID dell'organizzazione che hai utilizzato durante la creazione del ruolo GcpAccessAdmin.

  • Per visualizzare i dettagli di un binding 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 seguenti sostituzioni:

    • 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 facoltativo --organization 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 binding 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"
      ]
    }
    
    

Aggiorna un'associazione di accesso

Puoi aggiornare un binding di accesso per:

  • Aggiungi, rimuovi o modifica le applicazioni a cui è associato un criterio.
  • Modifica i livelli di accesso per un'applicazione all'interno di un gruppo di utenti.
  • Aggiungi un nuovo livello di accesso dry run o promuovi uno esistente a un livello live.

Console

  1. Nella console Google Cloud , 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 binding di accesso e poi fai clic su Modifica per aggiornarlo.

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

gcloud

  1. Crea un file di binding 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 ha il formato organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • BINDING_FILE_PATH: il percorso del file YAML contenente lo schema di binding di accesso. Il file di binding supporta solo scopedAccessSettings.
    • DEFAULT_ACCESS_LEVEL: il nome del livello di accesso facoltativo, che assume la forma 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 dry run specificato a tutte le applicazioni per impostazione predefinita se non sono specificate nel file YAML.
    • DEFAULT_SESSION_LENGTH: la durata facoltativa della sessione nel formato di durata ISO 8601, ad esempio 30m per 30 minuti o 2h per due ore.
    • DEFAULT_SESSION_REAUTH_METHOD: Il metodo facoltativo per chiedere agli utenti di verificare nuovamente la propria identità, che deve essere uno dei seguenti:
      • LOGIN: applica l'accesso standard, che può includere l&#MFA fattori 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 riautenticati implicitamente. Se l'IdP non è attivo, gli utenti devono accedere tramite l'IdP.
      • SECURITY_KEY: richiedi un token di sicurezza fisico.

    Come interagiscono gli argomenti --level e --binding-file

    • Se utilizzi solo --binding-file, solo alle applicazioni nel file vengono applicati i criteri.
    • Se utilizzi solo --level, il livello di accesso si applica a tutte le applicazioni.
    • Se utilizzi entrambe, le regole vengono combinate. Il valore --level si applica a tutte le applicazioni, mentre le norme nel file YAML specificato da --binding-file si applicano solo alle applicazioni definite nel file.

    Utilizzo dei 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 le applicazioni specifiche.
    • Devi utilizzare --session-length e --session-reauth-method insieme.

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

    Per rimuovere un controllo della 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, che assume la forma 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: il nome di un 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 chiedere agli utenti di verificare nuovamente la propria identità, che deve essere uno dei seguenti:

      • LOGIN: applica l'accesso standard, che può includere l&#MFA fattori o altri fattori definiti da Workspace.
      • PASSWORD: Richiedi 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 riautenticati implicitamente. Se l'IdP non è attivo, gli utenti devono accedere tramite l'IdP.
      • SECURITY_KEY: richiedi un token di sicurezza fisico.
    • CLIENT_NAME: il nome del client. Se l'applicazione contiene sessionSettings, non puoi utilizzare il nome del cliente. Utilizza invece l'ID client OAuth.

    • ACCESS_LEVEL_C: il nome di un 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 ha il formato organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
    • FIELD_MASK: un elenco obbligatorio separato da virgole dei campi 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.

    In caso di esito positivo, dovresti ricevere una rappresentazione dell'oggetto JSON. In caso di problemi, riceverai un messaggio di errore.

Elimina associazioni di accesso

Console

  1. Nella console Google Cloud , 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, quindi fai clic su Elimina.

gcloud

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

Sostituisci quanto segue:

  • ACCESS_BINDING ha il formato organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME.
  • ACCESS_BINDING_NAME è la stringa univoca restituita per l'identificatore name quando è stato creato il binding 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 quando è stato creato il binding 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.