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
- Si quieres usar los ejemplos de línea de comandos de esta guía, instala la herramienta de línea de comandos`gcloud`.
- Si quieres usar los ejemplos de API de esta guía, configura el acceso a la API.
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.
- Ve a la página de gestión de identidades y accesos en la Google Cloud consola de tu proyecto.
- Si se te solicita, selecciona tu proyecto en la lista.
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
Asigna a la cuenta de servicio de las APIs los roles
roles/owner
:Consola
- En la Google Cloud consola, despliega el menú desplegable Roles de la cuenta de servicio de las APIs de Google y selecciona Proyecto > Propietario.
- 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:
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.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 |
|
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.