Paquete google.iam.v1

Index

IAMPolicy

Información general de la API

Administra las políticas de Identity and Access Management (IAM).

Cualquier implementación de una API que ofrezca funciones de control de acceso implementa la interfaz de google.iam.v1.IAMPolicy.

Modelo de datos

El control de acceso se aplica cuando una (cuenta de usuario o de servicio) principal realiza alguna acción en un recurso expuesto por un servicio. Los recursos, que se identifican con nombres similares a las URI, son la unidad de especificación de control de acceso. Las implementaciones de servicio pueden elegir el nivel de detalle del control de acceso y los permisos admitidos para sus recursos. Por ejemplo, un servicio de bases de datos puede permitir que el control de acceso se especifique solo en el nivel de tabla, mientras que otro puede permitir que el control de acceso se especifique en el nivel de columna.

Estructura de la política

Consulta google.iam.v1.Policy

Esta no es una API de estilo CRUD de manera intencional porque las políticas de control de acceso se crean y borran implícitamente con los recursos a los que están vinculados.

AuditConfig

Especifica la configuración de auditoría para un servicio. La configuración determina los tipos de permisos que se registran, y qué identidades, si las hay, están exentas del registro. Un AuditConfig debe tener un AuditLogConfig o más.

Si hay AuditConfigs para allServices y un servicio específico, se usa la unión de los dos AuditConfigs para ese servicio: se habilitan los log_types especificados en cada AuditConfig, y se hacen exenciones para los exempted_members en cada AuditLogConfig.

Ejemplo de una política con varios AuditConfigs:

{
  "audit_configs": [
    {
      "service": "allServices"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
          "exempted_members": [
            "user:jose@example.com"
          ]
        },
        {
          "log_type": "DATA_WRITE",
        },
        {
          "log_type": "ADMIN_READ",
        }
      ]
    },
    {
      "service": "sampleservice.googleapis.com"
      "audit_log_configs": [
        {
          "log_type": "DATA_READ",
        },
        {
          "log_type": "DATA_WRITE",
          "exempted_members": [
            "user:aliya@example.com"
          ]
        }
      ]
    }
  ]
}

Para sampleservice, esta política habilita el registro de DATA_READ, DATA_WRITE y ADMIN_READ. También exime a jose@example.com del registro de DATA_READ, y a aliya@example.com del registro de DATA_WRITE.

Campos
service

string

Especifica un servicio que se habilitará para el registro de auditoría. Por ejemplo: storage.googleapis.com, cloudsql.googleapis.com. allServices es un valor especial que abarca todos los servicios.

audit_log_configs[]

AuditLogConfig

La configuración para el registro de cada tipo de permiso.

AuditLogConfig

Proporciona la configuración para el registro de un tipo de permiso. Ejemplo:

{
  "audit_log_configs": [
    {
      "log_type": "DATA_READ",
      "exempted_members": [
        "user:jose@example.com"
      ]
    },
    {
      "log_type": "DATA_WRITE",
    }
  ]
}

Así se habilita el registro de DATA_READ y DATA_WRITE, y se exime a jose@example.com del registro de DATA_READ.

Campos
log_type

LogType

El tipo de registro que habilita esta configuración.

exempted_members[]

string

Especifica las identidades que no provocan registros para este tipo de permiso. Sigue el mismo formato de Binding.members.

ignore_child_exemptions

bool

Especifica si las principales pueden estar exentas del mismo LogType en las políticas de recursos de nivel inferior. Si es verdadero, se ignorarán las exenciones de nivel inferior.

LogType

La lista de tipos de permiso válidos para los que se puede configurar el registro. Las escrituras de administradores siempre se registran y no son configurables.

Enums
LOG_TYPE_UNSPECIFIED Caso predeterminado. Nunca debería aparecer esto.
ADMIN_READ Lecturas de administrador. Ejemplo: CloudIAM getIamPolicy
DATA_WRITE Escrituras de datos. Ejemplo: CloudSQL Users create
DATA_READ Lecturas de datos. Ejemplo: CloudSQL Users list

Vinculación

Asocia a los members con una role.

Campos
role

string

Función asignada a los members. Por ejemplo, roles/viewer, roles/editor o roles/owner.

members[]

string

Especifica qué identidades solicitan acceso al recurso de Cloud Platform, los members pueden contener los siguientes valores:

  • allUsers: un identificador especial que representa a cualquier persona que esté en Internet; independientemente de si tienen una Cuenta de Google o no.

  • allAuthenticatedUsers: un identificador especial que representa a cualquier persona que esté autenticada con una Cuenta de Google o una cuenta de servicio.

  • user:{emailid}: una dirección de correo electrónico que representa una Cuenta de Google específica. Por ejemplo, alice@example.com.

  • serviceAccount:{emailid}: una dirección de correo electrónico que representa una cuenta de servicio. Por ejemplo, my-other-app@appspot.gserviceaccount.com.

  • group:{emailid}: una dirección de correo electrónico que representa a un grupo de Google. Por ejemplo, admins@example.com.

  • domain:{domain}: el dominio de G Suite (principal) que representa a todos los usuarios de ese dominio. Por ejemplo, google.com o example.com.

condition

Expr

La condición asociada a esta vinculación. NOTA: Si una condición no se satisface, no se permitirá el acceso de los usuarios mediante la vinculación actual. Las diferentes vinculaciones, incluidas sus condiciones, se examinan de manera independiente.

GetIamPolicyRequest

Mensaje de solicitud para el método GetIamPolicy.

Campos
resource

string

OBLIGATORIO. El recurso para el cual se solicita la política. Consulta la documentación de operación a fin de conocer el valor adecuado para este campo.

options

GetPolicyOptions

OPCIONAL: Un objeto GetPolicyOptions para especificar opciones en GetIamPolicy. Solo Cloud IAM usa este campo.

GetPolicyOptions

Encapsula la configuración proporcionada a GetIamPolicy.

Campos
requested_policy_version

int32

Opcional: La versión del formato de política que se mostrará. Los valores aceptables son 0 y 1. Si el valor es 0, o se omite el campo, se mostrará la versión del formato de política 1.

Policy

Define una política de Identity and Access Management (IAM). Se usa para especificar políticas de control de acceso a los recursos de Cloud Platform.

Una Policy consiste en una lista de bindings. Una binding vincula una lista de members a una role, en la que los miembros pueden ser cuentas de usuario, Grupos de Google, dominios de Google y cuentas de servicio. Una role es una lista identificada de permisos definidos por IAM.

Ejemplo de JSON

{
  "bindings": [
    {
      "role": "roles/owner",
      "members": [
        "user:mike@example.com",
        "group:admins@example.com",
        "domain:google.com",
        "serviceAccount:my-other-app@appspot.gserviceaccount.com"
      ]
    },
    {
      "role": "roles/viewer",
      "members": ["user:sean@example.com"]
    }
  ]
}

Ejemplo de YAML

bindings:
- members:
  - user:mike@example.com
  - group:admins@example.com
  - domain:google.com
  - serviceAccount:my-other-app@appspot.gserviceaccount.com
  role: roles/owner
- members:
  - user:sean@example.com
  role: roles/viewer

Consulta la guía para desarrolladores de IAM, a fin de ver una descripción de IAM y sus características.

Campos
version

int32

Obsoleto

bindings[]

Binding

Asocia una lista de members a una role. bindings sin miembros generarán un error.

audit_configs[]

AuditConfig

Especifica la configuración de Cloud Audit Logging para esta política.

etag

bytes

etag se usa para el control de simultaneidad optimista, como una forma de evitar que las actualizaciones simultáneas de una política se reemplacen entre sí. Se recomienda encarecidamente que los sistemas usen la etag en el ciclo de lectura, modificación y escritura para realizar actualizaciones de políticas a fin de evitar condiciones de carrera: se muestra una etag en la respuesta a getIamPolicy. Se espera que los sistemas incluyan esa etag en la solicitud para setIamPolicy a fin de garantizar que el cambio se aplique a la misma versión de la política.

Si no se proporciona ninguna etag en la llamada a setIamPolicy, se reemplaza la política existente.

SetIamPolicyRequest

Mensaje de solicitud para el método SetIamPolicy.

Campos
resource

string

OBLIGATORIO. El recurso para el que se especifica la política. Consulta la documentación de operación a fin de conocer el valor adecuado para este campo.

policy

Policy

OBLIGATORIO. La política completa que se debe aplicar al resource. El tamaño de la política se limita a unas pocas decenas de KB. Las políticas vacías se consideran válidas, pero algunos servicios de Cloud Platform (como los proyectos) podrían rechazarlas.

update_mask

FieldMask

OPCIONAL. Una FieldMask que especifica los campos de la política que se deben modificar. Solo se modificarán los campos de la máscara. Si no se proporciona una, se utilizará la siguiente máscara predeterminada: paths: “bindings, etag”. Solo Cloud IAM usa este campo.

TestIamPermissionsRequest

Mensaje de solicitud para el método TestIamPermissions.

Campos
resource

string

OBLIGATORIO. El recurso para el que se solicitan los detalles de la política. Consulta la documentación de operación a fin de conocer el valor adecuado para este campo.

permissions[]

string

Corresponde al conjunto de permisos que se debe comprobar para el resource. No se permiten los permisos con comodines (p. ej., “*” o “storage.*”). Para obtener más información, consulta la Descripción general de IAM.

TestIamPermissionsResponse

Mensaje de respuesta para el método TestIamPermissions.

Campos
permissions[]

string

Un subconjunto de TestPermissionsRequest.permissions que posee el emisor.