Define el control de acceso en una configuración

Para controlar el acceso a tus recursos en Google Cloud Platform, usa la administración de identidades y accesos (IAM). Con la IAM, puedes configurar permisos que especifican quién tiene qué tipo de acceso a qué recursos en 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 si configuras una Política de Cloud IAM con antelación. Por ejemplo, si planificas crear temas de Pub/Sub que determinados usuarios administrarán, puedes hacerlo en Deployment Manager si especificas una política de IAM en la configuración. Cuando creas o actualizas la implementación, Deployment Manager llama a la API de administración de identidades y accesos (IAM) para configurar los permisos adecuados en el recurso.

Antes de comenzar

Usa políticas de IAM en Deployment Manager

Una política de IAM es una colección de usuarios y sus funciones. Se configura a nivel de proyecto, ya sea con funciones básicas o predeterminadas. Algunos servicios, como Cloud Pub/Sub, también son compatibles con 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 mostrará el error NO_METHOD_TO_UPDATE_ACCESS_CONTROL.

Para obtener una lista de funciones y los recursos a los que puedes asignarlas, consulta Comprende las funciones.

Otorga permiso a Deployment Manager para configurar políticas de IAM

Deployment Manager usa la cuenta de servicio de las API de Google para llamar a otras API de Google y administrar los recursos de Google Cloud Platform en tu nombre. Debes otorgar la función básica roles/owner a tu cuenta de servicio de las API de Google de tu proyecto a fin de que pueda aplicar las políticas de IAM que definas en la configuración.

  1. Ve a la página de IAM en GCP Console de tu proyecto.

    Ir a la página IAM

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

    [PROJECT_NUMBER]@cloudservices.gserviceaccount.com
    
  4. Otorga a la cuenta de servicio de las API las funciones roles/owner:

    Console

    1. En Google Cloud Platform Console, expande el menú desplegable Funciones de la cuenta de servicio de las API de Google y selecciona Proyecto > Propietario.
    2. Haz clic en Guardar para guardar los cambios.

    gcloud

    Con la herramienta de línea de comandos de gcloud, agrega una vinculación a la política de Cloud IAM para el proyecto:

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

    en el que:

    • [PROJECT_ID] es el ID del proyecto.
    • [SERVICE_ACCOUNT_EMAIL] es el correo electrónico 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, realiza una solicitud POST a la siguiente URL, en la que [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 vinculaciones que deseas aplicar al proyecto. La función roles/owner debe ser parte de la vinculación. Por ejemplo:

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

Establece una política de IAM en tu configuración

Puedes seguir estas instrucciones para establecer una política de IAM en tu configuración o plantilla:

  1. Agrega la sección accessControl a la configuración de nivel superior para cada recurso en el que deseas aplicar las políticas de control de acceso.

  2. Especifica la gcpIamPolicy deseada para el recurso. Cada política de IAM puede contener una lista de vinculaciones. Cada vinculación une una lista de miembros a una función.

Por ejemplo, la siguiente sección accessControl agrega vinculaciones que otorgan estas funciones a los usuarios:

Usuario Función
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 IAM, consulta la documentación de IAM.