- Rappresentazione JSON
- Associazione
- Espr
- AuditConfig
- AuditLogConfig
- LogType
- Regola
- Action (Azione)
- Condizione
- Attr
- Attr
- Operatore
- LogConfig
- CounterOptions
- CustomField
- DataAccessOptions
- LogMode
- CloudAuditOptions
- LogName
- AuthorizationLoggingOptions
- PermissionType
- PermissionType
Un criterio IAM (Identity and Access Management), che specifica i controlli di accesso per le risorse Google Cloud.
Un Policy
è una raccolta di bindings
. Un elemento binding
associa una o più members
, o entità, a un singolo role
. Le entità possono essere account utente, account di servizio, gruppi Google e domini, ad esempio G Suite. Un role
è un elenco denominato di autorizzazioni. Ogni role
può essere un ruolo IAM predefinito o un ruolo personalizzato creato dall'utente.
Per alcuni tipi di risorse Google Cloud, un binding
può anche specificare un condition
, che è un'espressione logica che consente l'accesso a una risorsa solo se l'espressione restituisce true
. Una condizione può aggiungere vincoli in base agli attributi della richiesta, della risorsa o di entrambe. Per sapere quali risorse supportano le condizioni nei criteri IAM, consulta la documentazione IAM.
Esempio di JSON:
{
"bindings": [
{
"role": "roles/resourcemanager.organizationAdmin",
"members": [
"user:mike@example.com",
"group:admins@example.com",
"domain:google.com",
"serviceAccount:my-project-id@appspot.gserviceaccount.com"
]
},
{
"role": "roles/resourcemanager.organizationViewer",
"members": [
"user:eve@example.com"
],
"condition": {
"title": "expirable access",
"description": "Does not grant access after Sep 2020",
"expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')",
}
}
],
"etag": "BwWWja0YfJA=",
"version": 3
}
Esempio YAML:
bindings:
- members:
- user:mike@example.com
- group:admins@example.com
- domain:google.com
- serviceAccount:my-project-id@appspot.gserviceaccount.com
role: roles/resourcemanager.organizationAdmin
- members:
- user:eve@example.com
role: roles/resourcemanager.organizationViewer
condition:
title: expirable access
description: Does not grant access after Sep 2020
expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
etag: BwWWja0YfJA=
version: 3
Per una descrizione di IAM e delle sue funzionalità, consulta la documentazione IAM.
Rappresentazione JSON |
---|
{ "version": integer, "bindings": [ { object ( |
Campi | |
---|---|
version |
Specifica il formato del criterio. I valori validi sono Per qualsiasi operazione che influisce sulle associazioni di ruoli condizionali deve specificare la versione
Importante:se utilizzi le condizioni IAM, devi includere il campo Se un criterio non include condizioni, le operazioni su quel criterio possono specificare qualsiasi versione valida o lasciare il campo non impostato. Per sapere quali risorse supportano le condizioni nei criteri IAM, consulta la documentazione IAM. |
bindings[] |
Associa un elenco di L'elemento |
auditConfigs[] |
Specifica la configurazione dell'audit logging del cloud per questo criterio. |
rules[] |
Se vengono specificate più regole, queste vengono applicate nel seguente modo: - Tutte le regole LOG corrispondenti vengono sempre applicate. - Se viene trovata una corrispondenza con una regola DENY/DENY_WITH_LOG, l'autorizzazione viene negata. Il logging verrà applicato se una o più regole di corrispondenza richiedono il logging. - Altrimenti, se una qualsiasi regola ALLOW/ALLOW_WITH_LOG corrisponde, l'autorizzazione viene concessa. Il logging verrà applicato se una o più regole di corrispondenza richiedono il logging. - Altrimenti, se non si applica nessuna regola, l'autorizzazione viene negata. |
etag |
Importante:se utilizzi le condizioni IAM, devi includere il campo Una stringa con codifica Base64. |
Associazione
Associa members
, o entità, a un role
.
Rappresentazione JSON |
---|
{
"role": string,
"members": [
string
],
"condition": {
object ( |
Campi | |
---|---|
role |
Ruolo assegnato all'elenco di Per una panoramica dei ruoli e delle autorizzazioni IAM, consulta la documentazione IAM. Per un elenco dei ruoli predefiniti disponibili, vedi qui. |
members[] |
Specifica le entità che richiedono l'accesso per una risorsa Google Cloud.
|
condition |
La condizione associata a questa associazione. Se la condizione ha come valore Se la condizione ha come valore Per sapere quali risorse supportano le condizioni nei criteri IAM, consulta la documentazione IAM. |
bindingId |
|
Expr
Rappresenta un'espressione testuale nella sintassi Common Expression Language (CEL). Il CEL è un linguaggio di espressione simile al C. La sintassi e la semantica della tecnologia CEL sono illustrate all'indirizzo https://github.com/google/cel-spec.
Esempio (confronto):
title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"
Esempio (Uguaglianza):
title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"
Esempio (Logica):
title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"
Esempio (manipolazione di dati):
title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"
Le variabili e le funzioni esatte a cui è possibile fare riferimento all'interno di un'espressione sono determinate dal servizio che la valuta. Per ulteriori informazioni, consulta la documentazione del servizio.
Rappresentazione JSON |
---|
{ "expression": string, "title": string, "description": string, "location": string } |
Campi | |
---|---|
expression |
Rappresentazione testuale di un'espressione nella sintassi Common Expression Language. |
title |
Facoltativo. Titolo dell'espressione, ad esempio una breve stringa che ne descrive lo scopo. Può essere utilizzato, ad esempio, nelle UI che consentono di inserire l'espressione. |
description |
Facoltativo. Descrizione dell'espressione. Si tratta di un testo più lungo che descrive l'espressione, ad esempio passando il mouse sopra l'espressione in un'interfaccia utente. |
location |
Facoltativo. Stringa che indica la posizione dell'espressione per la segnalazione degli errori, ad esempio il nome di un file e una posizione nel file. |
AuditConfig
Specifica la configurazione dell'audit per un servizio. La configurazione determina quali tipi di autorizzazione vengono registrati e quali identità, se presenti, sono esenti dal logging. Un AuditConfig deve avere uno o più AuditLogConfig.
Se esistono AuditConfig sia per allServices
sia per un servizio specifico, per quel servizio viene utilizzata l'unione dei due AuditConfig: i log_type specificati in ogni AuditConfig sono abilitati, mentre gli elementi exceptedMembers in ogni AuditLogConfig sono esenti.
Criterio di esempio con più AuditConfig:
{
"auditConfigs": [
{
"service": "allServices",
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:jose@example.com"
]
},
{
"logType": "DATA_WRITE"
},
{
"logType": "ADMIN_READ"
}
]
},
{
"service": "sampleservice.googleapis.com",
"auditLogConfigs": [
{
"logType": "DATA_READ"
},
{
"logType": "DATA_WRITE",
"exemptedMembers": [
"user:aliya@example.com"
]
}
]
}
]
}
Per sampleservice, questo criterio consente il logging DATA_READ, DATA_WRITE e ADMIN_READ. Esclude inoltre jose@example.com
dal logging DATA_READ e aliya@example.com
dal logging DATA_WRITE.
Rappresentazione JSON |
---|
{
"service": string,
"auditLogConfigs": [
{
object ( |
Campi | |
---|---|
service |
Specifica un servizio che verrà abilitato per l'audit logging. Ad esempio, |
auditLogConfigs[] |
La configurazione per il logging di ciascun tipo di autorizzazione. |
AuditLogConfig
Fornisce la configurazione per il logging di un tipo di autorizzazione. Esempio:
{
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:jose@example.com"
]
},
{
"logType": "DATA_WRITE"
}
]
}
Questo abilita il logging "DATA_READ" e "DATA_WRITE", escludendo jose@example.com dal logging DATA_READ.
Rappresentazione JSON |
---|
{
"logType": enum ( |
Campi | |
---|---|
logType |
Il tipo di log abilitato da questa configurazione. |
exemptedMembers[] |
Specifica le identità che non causano il logging per questo tipo di autorizzazione. Deve seguire lo stesso formato di |
ignoreChildExemptions |
|
LogType
L'elenco dei tipi di autorizzazione validi per i quali è possibile configurare il logging. Le scritture amministrative vengono sempre registrate e non sono configurabili.
Enum | |
---|---|
LOG_TYPE_UNSPECIFIED |
Maiuscole predefinite. Non dovrebbe mai essere così. |
ADMIN_READ |
Letture dell'amministratore. Esempio: CloudIAM getIamPolicy |
DATA_WRITE |
Operazioni di scrittura dati. Esempio: gli utenti Cloud SQL creano |
DATA_READ |
Letture dei dati. Esempio: elenco utenti Cloud SQL |
Regola
Una regola da applicare in un criterio.
Rappresentazione JSON |
---|
{ "description": string, "permissions": [ string ], "action": enum ( |
Campi | |
---|---|
description |
Descrizione leggibile della regola. |
permissions[] |
Un'autorizzazione è una stringa nel formato " |
action |
Obbligatorio |
in[] |
Se vengono specificate una o più clausole "in", la regola trova una corrispondenza se PRINCIPAL/AUTHORITY_SELECTOR è presente in almeno una di queste voci. |
notIn[] |
Se vengono specificate una o più clausole "notIn", la regola corrisponde se PRINCIPAL/AUTHORITY_SELECTOR non è presente in nessuna delle voci. |
conditions[] |
Limitazioni aggiuntive che devono essere soddisfatte. Affinché la regola corrisponda, devono essere soddisfatte tutte le condizioni. |
logConfig[] |
La configurazione è stata restituita ai chiamanti di CheckPolicy per le voci che corrispondono all'azione LOG. |
Azione
Tipi di azioni delle regole.
Enum | |
---|---|
NO_ACTION |
Nessuna azione predefinita. |
ALLOW |
Concedi l'accesso alle "Voci" corrispondenti. |
ALLOW_WITH_LOG |
"Voci" corrispondenti concede l'accesso e il chiamante promette di registrare la richiesta in base al log_configs restituito. |
DENY |
Accesso per negare le "Voci" corrispondenti. |
DENY_WITH_LOG |
"Voci" corrispondenti per negare l'accesso e il chiamante promette di registrare la richiesta in base al log_configs restituito. |
LOG |
Le "Voci" corrispondenti indicano a IAM.Controlla che i chiamanti generino log. |
Condizione
Una condizione da soddisfare.
Rappresentazione JSON |
---|
{ "op": enum ( |
Campi | |
---|---|
op |
Un operatore con cui applicare l'oggetto. |
values[] |
Gli oggetti della condizione. |
Campo di unione Subject . Oggetto della condizione. Subject può essere solo uno dei seguenti: |
|
iam |
Attributi attendibili forniti dal sistema IAM. |
sys |
Attributi attendibili forniti da qualsiasi servizio che possiede risorse e utilizza il sistema IAM per controllo dell'accesso#39;accesso. |
svc |
Attributi attendibili applicati dal servizio. |
Attr
Tipi di attributi.
Enum | |
---|---|
NO_ATTR |
Valore predefinito non attributo. |
AUTHORITY |
Selettore dell'entità o dell'autorità (se presente). |
ATTRIBUTION |
L'entità (anche se è presente un selettore di autorità), che deve essere utilizzato solo per l'attribuzione, non per l'autorizzazione. |
SECURITY_REALM |
Qualsiasi area di autenticazione della sicurezza in IAMContext (go/security-realms). Se utilizzata con IN, la condizione indica "qualsiasi area di autenticazione della richiesta corrisponde a uno dei valori specificati; con NOT_IN, "nessuna delle aree di autenticazione corrisponde a nessuno dei valori specificati". Tieni presente che un valore può essere: - 'self:campus' (ovvero, i clienti che si trovano nello stesso campus) - 'self:metro' (ovvero i clienti che si trovano nella stessa area metropolitana) - 'self:cloud-region' (ovvero consentono le connessioni da client che si trovano nella stessa regione cloud) - 'self:prodi-region' (ovvero, consentono le connessioni dalla stessa regione cloud) Per ulteriori informazioni, visita la pagina go/security-realms-glossary#guardian). - "self" [DEPRECATED] (ad esempio, consente le connessioni dai client che si trovano nello stesso ambiente di sicurezza, la cui dimensione del campus non è attualmente garantita) - un'area di autenticazione (ad es. "campus-abc"): un gruppo realm (ad es. 'realms-for-borg-cell-xx', vedi: go/realm-groups) Una corrispondenza viene determinata da un controllo dell'appartenenza al gruppo realm eseguito da un oggetto RealmAclRep (go/realm-acl-howto). Non è consentito concedere l'accesso in base all'assenza di un'area di autenticazione, quindi le condizioni di area di autenticazione possono essere utilizzate solo in un contesto "positivo" (ad esempio, ALLOW/IN o DENY/NOT_IN). |
APPROVER |
Un approvatore (distinto dal richiedente) che ha autorizzato questa richiesta. Se utilizzata con IN, la condizione indica che uno degli approvatori associati alla richiesta corrisponde all'entità specificata o è un membro del gruppo specificato. Gli approvatori possono concedere solo accesso aggiuntivo e, pertanto, vengono utilizzati solo in un contesto strettamente positivo (ad es. ALLOW/IN o DENY/NOT_IN). |
JUSTIFICATION_TYPE |
Quali tipi di giustificazioni sono state fornite con questa richiesta. I valori stringa devono corrispondere ai nomi enum di security.credentials.JustificationType, ad esempio "MANUAL_STRING". Non è consentito concedere l'accesso in base all'assenza di una giustificazione, quindi le condizioni di giustificazione possono essere utilizzate solo in un contesto "positivo" (ad es. ALLOW/IN o DENY/NOT_IN). Più giustificazioni, ad esempio un ID Buganizer e un motivo inserito manualmente, sono normali e supportate. |
CREDENTIALS_TYPE |
Il tipo di credenziali fornite con questa richiesta. I valori stringa devono corrispondere ai nomi enum di security_loas_l2.CredentialsType. Al momento, è supportato solo CREDS_TYPE_EMERGENCY. Non è consentito concedere l'accesso in base all'assenza di un tipo di credenziali, quindi le condizioni possono essere utilizzate solo in un contesto "positivo" (ad es. ALLOW/IN o DENY/NOT_IN). |
CREDS_ASSERTION |
SPERIMENTALI - NON UTILIZZARE. Le condizioni possono essere utilizzate solo in un contesto "positivo" (ad es. ALLOW/IN o DENY/NOT_IN). |
Attr
Tipi di attributi.
Enum | |
---|---|
NO_ATTR |
Tipo non attributo predefinito |
REGION |
Regione della risorsa |
SERVICE |
Nome servizio |
NAME |
Nome della risorsa |
IP |
Indirizzo IP del chiamante |
Operatore
Tipi di operatori della condizione.
Enum | |
---|---|
NO_OP |
Autonomo predefinito. |
EQUALS |
OBSOLETO. Usa IN. |
NOT_EQUALS |
OBSOLETO. Utilizzare NOT_IN. |
IN |
La condizione è vera se il soggetto (o qualsiasi suo elemento se è un insieme) corrisponde a uno dei valori specificati. |
NOT_IN |
La condizione è vera se il soggetto (o ogni suo elemento se è un insieme) corrisponde a nessuno dei valori specificati. |
DISCHARGED |
Il soggetto è dimesso |
LogConfig
Specifica il tipo di log che il chiamante deve scrivere
Rappresentazione JSON |
---|
{ // Union field |
Campi | |
---|---|
Campo di unione type . Deve essere impostato, type può essere solo uno dei seguenti: |
|
counter |
Opzioni contatore. |
dataAccess |
Opzioni di accesso ai dati. |
cloudAudit |
Opzioni di controllo di Cloud. |
CounterOptions
Aumenta un contatore Streamz con i nomi della metrica e dei campi specificati.
I nomi delle metriche devono iniziare con "/", in genere essere composti solo da lettere minuscole e terminare con "_count". I nomi dei campi non devono contenere una barra iniziale. Ai nomi effettivi delle metriche esportate verrà anteposto "/iam/policy".
I nomi dei campi corrispondono ai parametri della richiesta IAM e i valori dei campi sono i rispettivi valori.
Nomi dei campi supportati: - "authority", che è "[token]" se è presente IAMContext.token, altrimenti il valore di IAMContext.authority_selector se presente e in caso contrario una rappresentazione di IAMContext.principal; oppure - "iamPrincipal", una rappresentazione di IAMContext.principal anche se è presente un token o un selettore di autorità; oppure - "" (stringa vuota), che genera un contatore senza campi.
Esempi: contatore { metric: "/debug_access_count" campo: "iamPrincipal" } ==> incrementa il contatore /iam/policy/debug_access_count {iamPrincipal=[valore di IAMContext.principal]}
Rappresentazione JSON |
---|
{
"metric": string,
"field": string,
"customFields": [
{
object ( |
Campi | |
---|---|
metric |
La metrica da aggiornare. |
field |
Il valore del campo da attribuire. |
customFields[] |
Campi personalizzati |
CustomField
Campi personalizzati Possono essere utilizzate per creare un contatore con coppie campo/valore arbitrarie. Consulta: go/rpcsp-custom-fields.
Rappresentazione JSON |
---|
{ "name": string, "value": string } |
Campi | |
---|---|
name |
"Name" corrisponde al nome del campo. |
value |
"Valore" indica il valore del campo. È importante che, a differenza del campo CounterOptions.field, il valore indicato qui sia una costante non derivata da IAMContext. |
DataAccessOptions
Scrivere un log di accesso ai dati (Gin)
Rappresentazione JSON |
---|
{
"logMode": enum ( |
Campi | |
---|---|
logMode |
|
isDirectAuth |
Indica che l'accesso è stato concesso da un criterio di autorizzazione regolare |
LogMode
Specifica il comportamento del client in relazione al logging di Gin.
Enum | |
---|---|
LOG_MODE_UNSPECIFIED |
Il client non è tenuto a scrivere un Gin log parziale subito dopo il controllo dell'autorizzazione. Se il client sceglie di scriverne una e non funziona, potrebbe non essere possibile aprire (consentire il proseguimento dell'operazione) o chiuderlo (handle come risultato DENY). |
LOG_FAIL_CLOSED |
L'operazione dell'applicazione nel contesto del quale viene effettuato questo controllo dell'autorizzazione può essere eseguita solo se è stata registrata correttamente in Gin. Ad esempio, la libreria di autorizzazione può soddisfare questo obbligo emettendo una voce di log parziale al momento del controllo dell'autorizzazione e restituendo ALLOW all'applicazione solo se l'operazione ha esito positivo. Se una regola corrispondente ha questa istruzione, ma il client non ha indicato che soddisferà tali requisiti, il controllo IAM comporterà un errore di autorizzazione impostando CheckPolicyResponse.success=false. |
CloudAuditOptions
Scrivi un audit log di Cloud
Rappresentazione JSON |
---|
{ "logName": enum ( |
Campi | |
---|---|
logName |
Il nome del log da compilare nel record di controllo di Cloud. |
authorizationLoggingOptions |
Informazioni utilizzate dalla pipeline di audit logging di Cloud. Verrà deprecato al termine della migrazione ad PermissionType (b/201806118). |
permissionType |
Il tipo associato all'autorizzazione. |
LogName
Enum dei nomi di log.
Enum | |
---|---|
UNSPECIFIED_LOG_NAME |
Predefinito. Non deve essere utilizzato. |
ADMIN_ACTIVITY |
Corrisponde a "cloudaudit.googleapis.com/activity" |
DATA_ACCESS |
Corrisponde a "cloudaudit.googleapis.com/dataAccess" |
AuthorizationLoggingOptions
Informazioni relative all'autorizzazione utilizzate da audit logging di Cloud.
Rappresentazione JSON |
---|
{
"permissionType": enum ( |
Campi | |
---|---|
permissionType |
Il tipo di autorizzazione verificata. |
PermissionType
L'elenco dei tipi di autorizzazione validi che è possibile controllare.
Enum | |
---|---|
PERMISSION_TYPE_UNSPECIFIED |
Predefinito. Non deve essere utilizzato. |
ADMIN_READ |
Una lettura dei dati amministrativi (meta). |
ADMIN_WRITE |
Una scrittura di dati amministrativi (meta). |
DATA_READ |
Una lettura dei dati standard. |
DATA_WRITE |
Una scrittura di dati standard. |
PermissionType
L'elenco dei tipi di autorizzazione validi che è possibile controllare.
Enum | |
---|---|
PERMISSION_TYPE_UNSPECIFIED |
Predefinito. Non deve essere utilizzato. |
ADMIN_READ |
Autorizzazioni che limitano la configurazione delle risorse di lettura o i metadati. |
ADMIN_WRITE |
Autorizzazioni che limitano la modifica della configurazione delle risorse o dei metadati. |
DATA_READ |
Autorizzazioni che limitano la lettura dei dati forniti dagli utenti. |
DATA_WRITE |
Autorizzazioni che limitano la scrittura dei dati forniti dall'utente. |