Establecer el control de acceso en una configuración

Para controlar el acceso a tus recursos en Google Cloud, usa Gestión de Identidades y Accesos (IAM). Con Gestión de identidades y accesos, puedes definir permisos que especifiquen quién tiene qué tipo de acceso a qué recursos de tu proyecto. Para obtener una introducción a IAM, consulta la descripción general de IAM.

Cuando implementas recursos, también puedes controlar quién tiene acceso a ellos configurando una política de gestión de identidades y accesos de forma preventiva en tu configuración. Por ejemplo, si tienes previsto crear temas de Pub/Sub que puedan gestionar usuarios específicos, puedes indicárselo a Deployment Manager especificando una política de IAM en tu configuración. Cuando creas o actualizas tu implementación, Deployment Manager llama a la API de gestión de identidades y accesos para definir los permisos adecuados en el recurso.

Antes de empezar

Usar políticas de gestión de identidades y accesos en Deployment Manager

Una política de gestión de identidades y accesos es un conjunto de usuarios y sus roles. Puedes definir una política de gestión de identidades y accesos a nivel de proyecto mediante roles básicos o predefinidos. Algunos servicios, como Cloud Pub/Sub, también admiten la configuración de políticas de IAM a nivel de recurso.

Si un servicio no admite la configuración de políticas de IAM a nivel de recurso, Deployment Manager devuelve un error NO_METHOD_TO_UPDATE_ACCESS_CONTROL.

Para ver una lista de los roles y los recursos a los que puedes aplicarlos, consulta el artículo Descripción de los roles.

Conceder permiso a Deployment Manager para definir políticas de gestión de identidades y accesos

Deployment Manager usa la cuenta de servicio de las APIs de Google para llamar a otras APIs de Google y gestionar recursos en tu nombre. Google Cloud Debes conceder a la cuenta de servicio de las APIs de Google de tu proyecto el rol básico roles/owner para que pueda aplicar las políticas de gestión de identidades y accesos que definas en tus configuraciones.

  1. Ve a la página de gestión de identidades y accesos en la Google Cloud consola de tu proyecto.

    Ir a la página de gestión de identidades y accesos

  2. Si se te solicita, selecciona tu proyecto en la lista.
  3. Busca la cuenta de servicio de las APIs de Google, que tiene la dirección de correo en el siguiente formato:

    [PROJECT_NUMBER]@cloudservices.gserviceaccount.com
    
  4. Asigna a la cuenta de servicio de las APIs los roles roles/owner:

    Consola

    1. En la Google Cloud consola, despliega el menú desplegable Roles de la cuenta de servicio de las APIs de Google y selecciona Proyecto > Propietario.
    2. Haz clic en Guardar para guardar los cambios.

    gcloud

    Con la CLI de Google Cloud, añade un enlace a la política de gestión de identidades y accesos del proyecto:

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
        --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/owner

    donde:

    • [PROJECT_ID] es el ID del proyecto.
    • [SERVICE_ACCOUNT_EMAIL] es el correo de la cuenta de servicio.

    Por ejemplo:

    gcloud projects add-iam-policy-binding database-images \
        --member serviceAccount:123456789012@cloudservices.gserviceaccount.com  \
        --role roles/owner

    API

    En la API, haz una solicitud POST a la siguiente URL, donde [PROJECT_ID] es el ID del proyecto:

    POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
    

    El cuerpo de la solicitud debe contener la lista de enlaces que quieras aplicar a este proyecto. El rol roles/owner debe formar parte de la vinculación. Por ejemplo:

    {
        "policy": {
            "version": "0",
            "bindings": [
                {
                    "role": "roles/owner",
                    "members": [
                        "user:example@gmail.com",
                        "serviceAccount:123456789012@cloudservices.gserviceaccount.com"
                    ]
                }
            ]
        }
    }
    

Definir una política de gestión de identidades y accesos en la configuración

A continuación, en tu configuración o plantilla, puedes definir una política de gestión de identidades y accesos siguiendo estas instrucciones:

  1. Añade la sección accessControl a la configuración de nivel superior de cada recurso al que quieras aplicar políticas de control de acceso.

  2. Especifica el gcpIamPolicy que quieras para el recurso. Cada política de gestión de identidades y accesos puede contener una lista de vinculaciones. Cada vinculación asocia una lista de miembros a un rol.

    Si usas accessControl para gestionar cuentas de servicio, consulta más información sobre cómo hacerlo.

Por ejemplo, en la siguiente sección accessControl se añaden enlaces que conceden estos roles a los usuarios:

Usuario Rol
alice@example.com roles/pubsub.editor
  • my-other-app@appspot.gserviceaccount.com
  • jane@example.com
roles/pubsub.publisher
resources:
- name: a-new-pubsub-topic
  type: pubsub.v1.topic
  properties:
    ...

  accessControl:
    gcpIamPolicy:
      bindings:
      - role: roles/pubsub.editor
        members:
        - "user:alice@example.com"
      - role: roles/pubsub.publisher
        members:
        - "user:jane@example.com"
        - "serviceAccount:my-other-app@appspot.gserviceaccount.com"

Para obtener más información sobre las políticas de gestión de identidades y accesos, consulta la documentación de IAM.