- Representación JSON
- Vinculante
- Expr
- Configuración de auditoría
- Configuración del registro de auditoría
- Tipo de registro
Una política de administración de identidad y acceso (IAM) que especifica los controles de acceso para los recursos de Google Cloud.
Una Policy
es un conjunto de bindings
. Un binding
vincula a uno o más members
, o principales, a un único role
. Los principales pueden ser cuentas de usuario, cuentas de servicio, grupos de Google y dominios (como G Suite). Un role
es una lista de permisos con nombre; cada role
puede ser un rol predefinido de IAM o un rol personalizado creado por el usuario.
Para algunos tipos de recursos de Google Cloud, un binding
también puede especificar una condition
, que es una expresión lógica que permite el acceso a un recurso solo si la expresión se evalúa como true
. Una condición puede añadir restricciones basadas en los atributos de la solicitud, el recurso o ambos. Para saber qué recursos admiten condiciones en sus políticas de IAM, consulte la documentación de IAM .
Ejemplo de JSON:
{
"bindings": [
{
"role": "roles/resourcemanager.organizationAdmin",
"members": [
"user:[email protected]",
"group:[email protected]",
"domain:google.com",
"serviceAccount:[email protected]"
]
},
{
"role": "roles/resourcemanager.organizationViewer",
"members": [
"user:[email protected]"
],
"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
}
Ejemplo de YAML:
bindings:
- members:
- user:[email protected]
- group:[email protected]
- domain:google.com
- serviceAccount:[email protected]
role: roles/resourcemanager.organizationAdmin
- members:
- user:[email protected]
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
Para obtener una descripción de IAM y sus características, consulte la documentación de IAM .
Representación JSON |
---|
{ "version": integer, "bindings": [ { object ( |
Campos | |
---|---|
version | Especifica el formato de la política. Los valores válidos son Cualquier operación que afecte a las vinculaciones de roles condicionales debe especificar la versión
Importante: Si usa condiciones de IAM, debe incluir el campo Si una política no incluye ninguna condición, las operaciones en esa política pueden especificar cualquier versión válida o dejar el campo sin configurar. Para saber qué recursos admiten condiciones en sus políticas de IAM, consulte la documentación de IAM . |
bindings[] | Asocia una lista de Las |
auditConfigs[] | Especifica la configuración del registro de auditoría en la nube para esta política. |
etag | Importante: Si usa condiciones de IAM, debe incluir el campo Una cadena codificada en base64. |
Vinculante
members
asociados, o principales, con un role
.
Representación JSON |
---|
{
"role": string,
"members": [
string
],
"condition": {
object ( |
Campos | |
---|---|
role | Rol asignado a la lista de Para obtener una descripción general de los roles y permisos de IAM, consulte la documentación de IAM . Para obtener una lista de los roles predefinidos disponibles, consulte aquí . |
members[] | Especifica los principales que solicitan acceso a un recurso de Google Cloud.
|
condition | La condición que está asociada con este enlace. Si la condición se evalúa como Si la condición se evalúa como Para saber qué recursos admiten condiciones en sus políticas de IAM, consulte la documentación de IAM . |
Expr
Representa una expresión textual en la sintaxis del Lenguaje de Expresión Común (CEL). CEL es un lenguaje de expresión similar a C. La sintaxis y la semántica de CEL están documentadas en https://github.com/google/cel-spec .
Ejemplo (Comparación):
title: "Summary size limit"
description: "Determines if a summary is less than 100 chars"
expression: "document.summary.size() < 100"
Ejemplo (Igualdad):
title: "Requestor is owner"
description: "Determines if requestor is the document owner"
expression: "document.owner == request.auth.claims.email"
Ejemplo (lógica):
title: "Public documents"
description: "Determine whether the document should be publicly visible"
expression: "document.type != 'private' && document.type != 'internal'"
Ejemplo (manipulación de datos):
title: "Notification string"
description: "Create a notification string with a timestamp."
expression: "'New message received at ' + string(document.create_time)"
Las variables y funciones exactas a las que se puede hacer referencia en una expresión las determina el servicio que la evalúa. Consulte la documentación del servicio para obtener más información.
Representación JSON |
---|
{ "expression": string, "title": string, "description": string, "location": string } |
Campos | |
---|---|
expression | Representación textual de una expresión en la sintaxis del lenguaje de expresión común. |
title | Opcional. Título de la expresión, es decir, una cadena corta que describe su propósito. Esto puede usarse, por ejemplo, en interfaces de usuario que permiten introducir la expresión. |
description | Opcional. Descripción de la expresión. Este texto es más largo y describe la expresión, por ejemplo, al pasar el cursor sobre ella en una interfaz de usuario. |
location | Opcional. Cadena que indica la ubicación de la expresión para el informe de errores, por ejemplo, un nombre de archivo y una posición en el archivo. |
Configuración de auditoría
Especifica la configuración de auditoría de un servicio. Esta configuración determina qué tipos de permisos se registran y qué identidades, si las hay, quedan exentas del registro. Una configuración de auditoría (AuditConfig) debe tener una o más configuraciones de registro (AuditLogConfig).
Si hay AuditConfigs tanto para allServices
como para un servicio específico, se utiliza la unión de las dos AuditConfigs para ese servicio: se habilitan los log_types especificados en cada AuditConfig y se eximen los exceptedMembers en cada AuditLogConfig.
Ejemplo de política con múltiples AuditConfigs:
{
"auditConfigs": [
{
"service": "allServices",
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:[email protected]"
]
},
{
"logType": "DATA_WRITE"
},
{
"logType": "ADMIN_READ"
}
]
},
{
"service": "sampleservice.googleapis.com",
"auditLogConfigs": [
{
"logType": "DATA_READ"
},
{
"logType": "DATA_WRITE",
"exemptedMembers": [
"user:[email protected]"
]
}
]
}
]
}
Para sampleservice, esta política habilita el registro de DATA_READ, DATA_WRITE y ADMIN_READ. También exime [email protected]
del registro de DATA_READ y [email protected]
del registro de DATA_WRITE.
Representación JSON |
---|
{
"service": string,
"auditLogConfigs": [
{
object ( |
Campos | |
---|---|
service | Especifica un servicio que se habilitará para el registro de auditoría. Por ejemplo, |
auditLogConfigs[] | La configuración para el registro de cada tipo de permiso. |
Configuración del registro de auditoría
Proporciona la configuración para registrar un tipo de permiso. Ejemplo:
{
"auditLogConfigs": [
{
"logType": "DATA_READ",
"exemptedMembers": [
"user:[email protected]"
]
},
{
"logType": "DATA_WRITE"
}
]
}
Esto habilita el registro de 'DATA_READ' y 'DATA_WRITE', mientras que exime a [email protected] del registro de DATA_READ.
Representación JSON |
---|
{
"logType": enum ( |
Campos | |
---|---|
logType | El tipo de registro que habilita esta configuración. |
exemptedMembers[] | Especifica las identidades que no generan registro para este tipo de permiso. Sigue el mismo formato que |
Tipo de registro
Lista de tipos de permisos válidos para los que se puede configurar el registro. Las escrituras del administrador siempre se registran y no son configurables.
Enumeraciones | |
---|---|
LOG_TYPE_UNSPECIFIED | Caso predeterminado. Nunca debería ser así. |
ADMIN_READ | El administrador lee. Ejemplo: CloudIAM getIamPolicy |
DATA_WRITE | Escritura de datos. Ejemplo: Los usuarios de CloudSQL crean |
DATA_READ | Lecturas de datos. Ejemplo: Lista de usuarios de CloudSQL |