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
Nella Google Cloud console, vai alla pagina Gestore contesto accesso.
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_IDORG_ID: l'ID organizzazione. Se la proprietà
access-context-manager/organizationnon è stata impostata, sostituisciORG_IDnel flag--organizationfacoltativo con l'ID dell'organizzazione che hai utilizzato durante la creazione del ruoloGcpAccessAdmin.Per visualizzare i dettagli di un'associazione di accesso, esegui questo comando:
gcloud access-context-manager cloud-bindings describe \ --binding=BINDING_IDBINDING_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 ruoloGcpAccessAdmin. Se la proprietàaccess-context-manager/organizationnon è stata impostata, sostituisciORG_IDnel flag--organizationfacoltativo con l'ID dell'organizzazione che hai utilizzato durante la creazione del ruoloGcpAccessAdmin.
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 ContentDovresti 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 ContentDovresti 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
Nella Google Cloud console, vai alla pagina Gestore contesto accesso.
Se ti viene chiesto, seleziona un progetto.
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
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 posturaorganizations/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. SostituisciPOLICY_IDcon l'ID della policy di accesso eACCESS_LEVEL_NAMEcon 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
15hper 15 ore o2hper 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
--levele--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
--levelsi applica a tutte le applicazioni, mentre le policy nel file YAML specificato da--binding-filesi 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-lengthe--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-lengthe--session-reauth-methodinsieme.
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 comandoupdatenon apporterà modifiche.Per rimuovere un Controllo sessione, imposta
--session-length=0.-
API
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. SostituisciPOLICY_IDcon l'ID della policy di accesso eACCESS_LEVEL_NAMEcon il nome del livello di accesso. - CLIENT_ID: l'ID client OAuth. Devi utilizzare
clientIdquando un'applicazione contienesessionSettings. - 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
30mper 30 minuti o2hper 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.
-
DEFAULT_ACCESS_LEVEL: il nome del livello di accesso facoltativo, nel formato
Invia la richiesta PATCH.
PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING?fieldMask=FIELDMASKSostituisci quanto segue:
-
ACCESS_BINDINGè nella posturaorganizations/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.
fieldMaskdeve contenere le chiavi JSON di primo livello nel corpo della richiesta che vuoi aggiornare, che possono contenereaccessLevels,dryRunAccessLevelsescopedAccessSettings.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
Nella Google Cloud console, vai alla pagina Gestore contesto accesso.
Se ti viene chiesto, seleziona un progetto.
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 posturaorganizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME. -
ACCESS_BINDING_NAMEè la stringa univoca restituita per l'identificatorenamequando è 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'identificatorenamequando è 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.