Questa pagina spiega come applicare l'accesso basato su certificati (CBA) utilizzando le policy di accesso sensibile al contesto basate su un gruppo di utenti.
Puoi limitare l'accesso a tutti i Google Cloud servizi associando un livello di accesso CBA a un gruppo di utenti. Questa limitazione si applica a tutte le applicazioni client che chiamano le Google Cloud API.
Se vuoi, puoi applicare le limitazioni ad applicazioni client specifiche o esentare applicazioni specifiche. Le applicazioni includono sia applicazioni di terze parti
sia applicazioni proprietarie create da Google, come
Cloud Console per la Google Cloud console e Google Cloud SDK per la
Google Cloud CLI.
Prima di iniziare
Crea un livello di accesso CBA che richieda i certificati per determinare l'accesso alle risorse.
Crea un gruppo di utenti
Crea un gruppo di utenti contenente i membri a cui deve essere concesso l'accesso in base al livello di accesso CBA.
Assegna il ruolo Cloud Access Binding Admin
Assegna il ruolo Cloud Access Binding Admin al gruppo di utenti.
Devi disporre di privilegi sufficienti per aggiungere le autorizzazioni IAM a livello di organizzazione. Sono necessari almeno i ruoli Amministratore dell'organizzazione e Cloud Access Binding Admin.
Console
Nella console, vai a IAM.
Nella scheda Autorizzazioni, fai clic su Concedi accesso, quindi configura quanto segue:
- Nuovi account principali: specifica il gruppo a cui vuoi concedere il ruolo.
- Per l'opzione Seleziona un ruolo, seleziona Gestore contesto accesso > Cloud Access Binding Admin.
- Fai clic su Salva.
gcloud
Accedi:
gcloud auth loginAssegna il ruolo
GcpAccessAdmineseguendo il seguente comando:gcloud organizations add-iam-policy-binding ORG_ID \ --member=user:EMAIL \ --role=roles/accesscontextmanager.gcpAccessAdminORG_IDè l'ID della tua organizzazione. Se non hai ancora l'ID organizzazione, puoi utilizzare il seguente comando per trovarlo:gcloud organizations listEMAILè l'indirizzo email della persona o del gruppo a cui vuoi concedere il ruolo.
Associa un livello di accesso CBA a un gruppo di utenti
In questa opzione di associazione, il livello di accesso CBA si applica a tutte le applicazioni client per il gruppo di utenti che specifichi.
Nella console, vai alla pagina Criterio di accesso a console e API:
Scegli un'organizzazione, quindi fai clic su Seleziona.
Fai clic su Gestisci accesso per scegliere i gruppi di utenti che devono avere accesso.
Fai clic su Aggiungi, quindi configura quanto segue:
- Gruppi di membri: specifica il gruppo a cui vuoi concedere l'accesso. Puoi selezionare solo i gruppi che non sono già associati a un livello di accesso.
- Seleziona livelli di accesso: seleziona il livello di accesso CBA da applicare al gruppo.
- Fai clic su Salva.
Associa un livello di accesso CBA a un gruppo di utenti e ad applicazioni specifiche
In alcuni casi d'uso, ad esempio le applicazioni che supportano i certificati client, l'associazione di un livello di accesso CBA a un gruppo di utenti potrebbe essere troppo ampia. Puoi utilizzare questa opzione per applicare i livelli di accesso CBA alle applicazioni che supportano i certificati client.
L'esempio seguente associa un livello di accesso CBA alla Google Cloud console, a gcloud CLI e all'applicazione OAuth di un utente.
Accedi a gcloud CLI.
gcloud auth application-default loginCrea un file
policy_file.yaml.Puoi specificare le applicazioni utilizzando il relativo ID client OAuth. Per specificare le applicazioni Google, utilizza il nome dell'applicazione, ad esempio
Cloud Consoleper la Google Cloud console. Sono supportate solo le applicazioni Google della Google Cloud console e di Google Cloud SDK.scopedAccessSettings: - scope: clientScope: restrictedClientApplication: name: Cloud Console activeSettings: accessLevels: - CBA_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: name: Google Cloud SDK activeSettings: accessLevels: - CBA_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID_1 activeSettings: accessLevels: - CBA_ACCESS_LEVELSostituisci quanto segue:
- CLIENT_ID_1: l'ID client OAuth.
- CBA_ACCESS_LEVEL: il nome di un livello di accesso CBA nel formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
Crea l'associazione del livello di accesso CBA.
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=policy_file.yamlSostituisci quanto segue:
GROUP_KEY: l'ID gruppo univocoORG_ID: l'ID organizzazione
gcloud
Puoi utilizzare l'ID gruppo univoco come GROUP_KEY. Per ottenere l'ID gruppo univoco, utilizza il seguente comando:
gcloud identity groups describe EMAILSostituisci EMAIL con l'indirizzo email del tuo gruppo. L'ID gruppo univoco è il valore restituito dopo
/nel nome del gruppo. Ad esempio, l'ID gruppo univoco ingroups/01gf8i8311xalqgè01gf8i8311xalqg.REST
Puoi utilizzare l'ID gruppo univoco come GROUP_KEY. Per ottenere l' ID gruppo univoco utilizzando l'API REST, puoi recuperarlo chiamando il
getmetodo sulla risorsa del gruppo. L'ID gruppo univoco viene restituito nel campoiddella risorsa del gruppo.(Facoltativo) Aggiorna un'associazione di livelli di accesso esistente.
gcloud access-context-manager cloud-bindings update \ --binding='BINDING_NAME' \ --binding-file=policy_file.yamlSostituisci BINDING_NAME con il nome dell'associazione generato automaticamente al momento della creazione dell'associazione.
Esenta un'applicazione da un'associazione
Un altro modo per applicare un livello di accesso CBA senza bloccare le applicazioni client che non supportano i certificati client è esentare queste applicazioni dalla policy.
I passaggi seguenti presuppongono che tu abbia già creato un livello di accesso CBA che richieda i certificati per determinare l'accesso alle risorse.
Crea un livello di accesso di esenzione utilizzando uno dei seguenti metodi.
- Livello di accesso personalizzato:
fornisci
truecome valore nella condizione dell'espressione CEL. - Livello di accesso di base:
crea un
livello di accesso basato su intervalli IP
fornendo le subnet IP
0.0.0.0/0e::/0, che corrispondono rispettivamente a IPv4 e IPv6.
- Livello di accesso personalizzato:
fornisci
Crea un file
exemption_file.yaml.scopedAccessSettings: - scope: clientScope: restrictedClientApplication: clientId: CLIENT_ID_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVEL - scope: clientScope: restrictedClientApplication: name: APPLICATION_NAME_2 activeSettings: accessLevels: - EXEMPT_ACCESS_LEVELSostituisci quanto segue:
- CLIENT_ID_2: l'ID client OAuth
- APPLICATION_NAME_2: il nome dell'applicazione
- EXEMPT_ACCESS_LEVEL: il nome di un livello di accesso di esenzione nel
formato
accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME.
Crea la policy di associazione di esenzione.
gcloud access-context-manager cloud-bindings create \ --group-key='GROUP_KEY' \ --organization='ORG_ID' \ --binding-file=exemption_file.yamlSostituisci quanto segue:
- GROUP_KEY: l'ID gruppo univoco
- ORG_ID: l'ID organizzazione