Utilizzando Gestore contesto accesso, puoi apportare modifiche collettive alle risorse che appartengono al criterio di accesso della tua organizzazione, come livelli di accesso e perimetri di servizio.
Le modifiche alle risorse vengono applicate solo se tutte le parti dell'operazione collettiva sono riuscite. Ad esempio, se l'operazione collettiva tenta di rimuovere un livello di accesso utilizzato da un perimetro di servizio, viene generato un errore. Si è verificato un errore. L'intera operazione non riesce e le risorse non vengono aggiornate.
Questo argomento descrive solo la sostituzione collettiva dei livelli di accesso. Per ulteriori informazioni sulla sostituzione collettiva dei perimetri di servizio, consulta la documentazione sui controlli di servizio VPC.
Prima di iniziare
Poiché le operazioni collettive incidono su tutti i livelli di accesso per la tua organizzazione, ti consigliamo di ottenere un elenco completo di tali livelli. L'elenco può essere formattato come YAML, il che può anche semplificare le modifiche collettive ai livelli di accesso.
Per visualizzare un elenco formattato dei livelli di accesso, consulta Livelli di accesso all'elenco (formattati).
Sostituire collettivamente i livelli di accesso
La seguente sezione descrive come sostituire collettivamente i livelli di accesso.
gcloud
Per sostituire collettivamente tutti i livelli di accesso, utilizza il comando
replace-all
.
gcloud access-context-manager levels replace-all \ --source-file=FILE \ --etag=ETAG \ [--policy=POLICY_NAME]
Dove:
FILE è il nome di un file .yaml che definisce le nuove condizioni per i tuoi livelli di accesso esistenti.
Ad esempio:
- name: accessPolicies/11271009391/accessLevels/corpnet_access title: Corpnet Access description: Permit access to corpnet. basic: combiningFunction: AND conditions: - ipSubnetworks: - 252.0.2.0/24 - 2001:db8::/32 - name: accessPolicies/11271009391/accessLevels/prodnet_access title: Prodnet Access description: Permit access to prodnet. basic: combiningFunction: OR conditions: - members: - user:exampleuser@example.com - serviceAccount:exampleaccount@example.iam.gserviceaccount.com - ipSubnetworks: - 176.0.2.0/24
Per altri esempi della struttura YAML delle condizioni, consulta l'esempio di file YAML.
(Facoltativo) ETAG è una stringa che rappresenta la versione di destinazione del criterio di accesso della tua organizzazione. Se non includi un'etichetta, l'operazione collettiva avrà come target l'ultima versione dei criteri di accesso della tua organizzazione.
Per ottenere l'etichetta più recente dei tuoi criteri di accesso,
list
i tuoi criteri di accesso.POLICY_NAME è il nome del criterio di accesso della tua organizzazione. Questo valore è obbligatorio solo se non hai impostato un criterio di accesso predefinito.
API
Per sostituire collettivamente tutti i livelli di accesso,
chiama accessLevels.replaceAll
.
POST https://accesscontextmanager.googleapis.com/v1/accessPolicies/POLICY_NAME/accessLevels.replaceAll?alt=json
Dove:
- POLICY_NAME è il nome del criterio di accesso della tua organizzazione.
Corpo della richiesta
Il corpo della richiesta deve includere un elenco di oggetti AccessLevel
che specificano le modifiche da apportare.
Facoltativamente, per scegliere come target una versione specifica dei criteri di accesso della tua organizzazione, puoi includere un'etichetta. Se non includi un'etichetta, l'operazione collettiva avrà come target l'ultima versione dei criteri di accesso della tua organizzazione.
Ad esempio:
{ "accessLevels": [ object (AccessLevel), object (AccessLevel), ... ] "etag": string }
Corpo della risposta
In caso di esito positivo, il corpo della risposta alla chiamata contiene una risorsa Operation
che fornisce i dettagli sull'operazione dopo la pubblicazione.
Esempio di risposta:
{
"name": "operations/accessPolicies/11271009391/replaceLevels/1583523446234255",
"done": true,
"response": {
"@type": "type.googleapis.com/google.identity.accesscontextmanager.v1.ReplaceAccessLevelsResponse",
"accessLevels": [
{
"name": "accessPolicies/11271009391/accessLevels/corpnet_access",
"title": "Corpnet access",
"description": "Permit access to corpnet.",
"basic": {
"conditions": [
{
"ipSubnetworks": [
"252.0.2.0/24"
]
}
]
}
},
{
"name": "accessPolicies/11271009391/accessLevels/prodnet_access",
"title": "Prodnet access",
"description": "Permit access to prodnet.",
"basic": {
"conditions": [
{
"ipSubnetworks": [
"176.0.2.0/24"
]
}
]
}
}
]
}
}