Para usar el Administrador de infraestructura y crear, actualizar o borrar una implementación, debes usar una cuenta de servicio. Infra Manager ejecuta Terraform con la identidad de esta cuenta de servicio.
No necesitas una cuenta de servicio para ver información sobre las implementaciones de Infra Manager.
En esta página, se explica cómo configurar una cuenta de servicio para que puedas implementar recursos con el Administrador de infraestructura.
Antes de comenzar
- Habilita el servicio de Infra Manager.
- Crea una cuenta de servicio o identifica una cuenta de servicio existente para usarla con Infra Manager.
Otorga acceso a la cuenta de servicio
Para usar el Administrador de infraestructura y crear, actualizar o borrar una implementación, un usuario individual necesita acceso a la cuenta de servicio.
Otorga al usuario el rol de IAM de Usuario de cuenta de servicio (roles/iam.serviceAccountUser
) para la cuenta de servicio.
Otorga permisos para Infra Manager
Para trabajar con Infra Manager, la cuenta de servicio necesita el
rol de agente de Infra Manager (roles/config.agent
).
Esto otorga permisos a Infra Manager para crear, actualizar y borrar recursos.
Para obtener detalles sobre cómo otorgar permisos a las cuentas de servicio, consulta Administra el acceso a las cuentas de servicio.
Otorga permiso de lectura para el bucket de almacenamiento
Puedes usar un bucket de almacenamiento para almacenar las configuraciones de Terraform que implementa Infra Manager.
Si usas un bucket de almacenamiento para las configuraciones y este bucket de almacenamiento está en un proyecto diferente del proyecto en el que ejecutas Infra Manager, debes asegurarte de que la cuenta de servicio que usas para llamar a Infra Manager tenga permiso de lectura para el bucket. Si quieres obtener detalles sobre los permisos de Cloud Storage, consulta Permisos de IAM para Cloud Storage.
Si el bucket de almacenamiento está en el mismo proyecto que Infra Manager y le otorgaste roles/config.agent
a la cuenta de servicio, el permiso de lectura al bucket ya está habilitado.
Para obtener detalles sobre cómo subir una configuración a un bucket de almacenamiento, consulta Cómo subir una configuración de Terraform.
Otorga permisos para los recursos definidos en la configuración
Para crear y administrar los recursos de Google Cloud que se definen en la configuración de Terraform, la cuenta de servicio necesita permisos específicos para estos recursos.
Permisos específicos para los recursos de Google Cloud que se definen en la configuración de Terraform que implementas. Por ejemplo, el permiso para crear una instancia de VM de Compute Engine es
compute.instances.create
.Permisos específicos para los recursos de Google Cloud que se definen en la configuración de Terraform de la implementación que actualizas.
Por ejemplo, supongamos que tu implementación aprovisiona una VM de Compute Engine y, luego, actualizas la implementación con una configuración que no incluye una VM de Compute Engine. En este caso, cuando actualices la revisión, la cuenta de servicio necesitará lo siguiente:
Permisos para los recursos definidos en la nueva configuración
Los permisos de los recursos que se borrarán, como la VM de Compute Engine en este ejemplo
Si necesitas ayuda para identificar los permisos necesarios para los recursos en las configuraciones de Terraform, consulta Elige roles predefinidos.
Para obtener detalles sobre cómo otorgar permisos a las cuentas de servicio, consulta Administra el acceso a las cuentas de servicio.
Otorga acceso a los proyectos
Se requieren permisos adicionales si la cuenta de servicio está en un proyecto diferente al proyecto en el que se ejecuta el servicio de Infra Manager.
Para otorgar estos permisos adicionales, sigue estos pasos:
En el proyecto que tiene la cuenta de servicio, asegúrate de que no se aplique la restricción de la política de la organización
iam.disableCrossProjectServiceAccountUsage
. Esta restricción se aplica de forma predeterminada.Para inhabilitar esta restricción de política de la organización, ejecuta el siguiente comando:
gcloud resource-manager org-policies disable-enforce iam.disableCrossProjectServiceAccountUsage --project=SERVICE_ACCOUNT_PROJECT_ID
Reemplaza SERVICE_ACCOUNT_PROJECT_ID por el ID del proyecto que contiene la cuenta de servicio.
En el proyecto que tiene la cuenta de servicio, otorga el rol
roles/iam.serviceAccountUser
al agente de servicio de Infra Manager del proyecto en el que creas implementaciones:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-config.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountUser"
Reemplaza los valores de marcador de posición en el comando anterior por los siguientes:
- SERVICE_ACCOUNT_PROJECT_ID: Es el ID del proyecto que contiene la cuenta de servicio.
- INFRA_MANAGER_PROJECT_NUMBER: Es el número del proyecto en el que crearás las implementaciones. Esto forma el ID de correo electrónico del agente de servicio:
service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-config.iam.gserviceaccount.com
Para permitir que Infra Manager cree trabajos de Cloud Build en nombre de la cuenta de servicio, otorga a la cuenta de servicio el rol
roles/iam.serviceAccountTokenCreator
. Este rol es para el agente de servicio de Infra Manager del proyecto en el que creas implementaciones:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member="serviceAccount:service-INFRA_MANAGER_PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"
¿Qué sigue?
- Obtén información sobre IAM.
- Obtén más información sobre Terraform con Google Cloud.
- Implementa la infraestructura con Infra Manager.
- Actualiza una implementación.
- Consulta el estado de una implementación.