Configura el control de acceso en una configuración

Para controlar el acceso a tus recursos en Google Cloud, 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 tu implementación, Deployment Manager llama a la API de IAM para establecer 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 en tu nombre. Debes otorgar la función roles/owner básica 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 la consola de Google Cloud de tu proyecto.

    Ve 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 la consola de Google Cloud, expande el menú desplegable Roles para 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, agrega una vinculación a la política de IAM 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 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.

    Si usas accessControl para administrar cuentas de servicio, obtén más información sobre cómo administrar cuentas de servicio.

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

User 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, lee la documentación de IAM.