Control de acceso con la IAM

En esta página, se describe cómo Identity and Access Management (IAM) controla el acceso a App Lifecycle Manager. Está dirigido a administradores de plataformas, ingenieros de seguridad y operadores que configuran el acceso de los usuarios y las canalizaciones de implementación automatizadas.

El control de acceso en App Lifecycle Manager implica dos conceptos principales:

  • Roles de IAM para principales (usuarios, grupos y cuentas de servicio): Estos roles de IAM estándar controlan quién puede interactuar directamente con los recursos de App Lifecycle Manager (como ofertas de SaaS, unidades, versiones y lanzamientos) con la consola de Google Cloud , Google Cloud CLI o la API.
  • Permisos para cuentas de servicio especializadas: Estos permisos habilitan cuentas de servicio específicas que App Lifecycle Manager usa para realizar acciones automatizadas en tu nombre, como compilar artefactos o aprovisionar infraestructura con Terraform.

Distingue entre los permisos que tú (u otra principal) necesitas para administrar App Lifecycle Manager y los permisos que las cuentas de servicio subyacentes necesitan para ejecutar las tareas delegadas por App Lifecycle Manager.

Control de acceso de usuarios y principales

Para interactuar directamente con los recursos de App Lifecycle Manager, como ver las ofertas de SaaS o administrar los lanzamientos, una principal debe tener los roles de IAM predefinidos adecuados de App Lifecycle Manager. Una principal puede ser un usuario, un grupo o una cuenta de servicio que llama a la API.

Estos roles rigen las acciones que se realizan directamente en la API de App Lifecycle Manager o en la consola de Google Cloud .

Para ver los recursos existentes de App Lifecycle Manager (como ofertas, unidades, versiones y lanzamientos de SaaS), solo necesitas el rol de visualizador pertinente, como el rol de roles/saasservicemgmt.viewer. No es necesario configurar ni otorgar permisos a las cuentas de servicio especializadas para las operaciones de solo lectura.

Permisos para cuentas de servicio especializadas

Ciertas acciones automatizadas que realiza App Lifecycle Manager requieren cuentas de servicio específicas con los permisos adecuados:

  • Agente de servicio de App Lifecycle Manager (administrado por Google): Cuando creas tu primer recurso de App Lifecycle Manager, este aprovisiona automáticamente un agente de servicio administrado por Google. Este agente de servicio usa el rol de agente de servicio de App Lifecycle Manager (roles/saasservicemgmt.serviceAgent) para realizar operaciones en los servicios de Google Cloud en tu nombre.
  • Aprovisionamiento y administración de unidades (cuenta de servicio de ejecución de acciones, administrada por el usuario): Cuando App Lifecycle Manager aprovisiona, actualiza o borra una unidad, usa Infrastructure Manager, que se ejecuta con la cuenta de servicio de ejecución de acciones administrada por el usuario para ejecutar la configuración de Terraform.
  • Compila y sube artefactos (cuenta de servicio de creación de artefactos, administrada por el usuario, opcional): Cuando usas un sistema de compilación automatizado, como Cloud Build, la cuenta de servicio de creación de artefactos administrada por el usuario compila el artefacto de OCI de Terraform y lo envía a Artifact Registry. Esta cuenta de servicio es opcional si usas plantillas compuestas o envías imágenes de OCI de forma manual.

Estas cuentas de servicio, que se detallan en Cuentas de servicio de App Lifecycle Manager, requieren conjuntos de permisos específicos:

  • Permisos básicos: Las cuentas de servicio administradas por el usuario requieren roles para interactuar con los servicios principales, como Artifact Registry, Cloud Storage, Infra Manager y la IAM (por ejemplo, los roles roles/artifactregistry.writer, roles/config.admin y roles/iam.serviceAccountTokenCreator). Los roles necesarios para cada cuenta de servicio se indican en Cuentas de servicio de App Lifecycle Manager.
  • Permisos de recursos de Terraform (solo para la cuenta de servicio de ejecución de acciones): La cuenta de servicio de ejecución de acciones también debe tener los permisos de IAM para crear, modificar y borrar los recursos de Google Cloud específicos definidos en tu configuración de Terraform. Por ejemplo, si tu configuración de Terraform crea clústeres de Google Kubernetes Engine (GKE) y de instancias de Cloud SQL, la cuenta de servicio de ejecución de acciones necesita roles como roles/container.admin y roles/cloudsql.admin. Otorga estos roles en el proyecto en el que se crean esos recursos. Estos permisos se suman a los permisos básicos necesarios para ejecutar Infra Manager.

Otorgar permisos a estas cuentas de servicio permite que App Lifecycle Manager realice sus tareas automatizadas, actuando con una identidad distinta para los cambios en la infraestructura (cuenta de servicio de ejecución de acciones) o la administración de artefactos (cuenta de servicio de creación de artefactos). Estos permisos de la cuenta de servicio son independientes de los permisos que tú o las otras principales necesitan para ver o administrar los recursos de App Lifecycle Manager.

Roles predefinidos de App Lifecycle Manager

IAM proporciona roles predefinidos que otorgan acceso a recursos específicos de Google Cloud y evitan el acceso no autorizado a otros recursos.

En la siguiente tabla, se enumeran los roles de IAM de App Lifecycle Manager y los permisos que incluyen:

Rol Descripción Permisos
Administrador de App Lifecycle Manager (roles/saasservicemgmt.admin) Acceso completo a todos los recursos de App Lifecycle Manager. saasservicemgmt.rollouts.create
saasservicemgmt.rollouts.update
saasservicemgmt.rollouts.delete
saasservicemgmt.rolloutKinds.create
saasservicemgmt.rolloutKinds.update
saasservicemgmt.rolloutKinds.delete
saasservicemgmt.releases.create
saasservicemgmt.releases.update
saasservicemgmt.releases.delete
saasservicemgmt.units.create
saasservicemgmt.units.update
saasservicemgmt.units.delete
saasservicemgmt.unitKinds.create
saasservicemgmt.unitKinds.update
saasservicemgmt.unitKinds.delete
saasservicemgmt.unitOperations.create
saasservicemgmt.unitOperations.update
saasservicemgmt.unitOperations.delete
saasservicemgmt.tenants.create
saasservicemgmt.tenants.update
saasservicemgmt.tenants.delete
saasservicemgmt.saas.create
saasservicemgmt.saas.update
saasservicemgmt.saas.delete
resourcemanager.projects.get
resourcemanager.projects.list
saasservicemgmt.locations.list
saasservicemgmt.locations.get
saasservicemgmt.rollouts.list
saasservicemgmt.rollouts.get
saasservicemgmt.rolloutKinds.list
saasservicemgmt.rolloutKinds.get
saasservicemgmt.releases.list
saasservicemgmt.releases.get
saasservicemgmt.units.list
saasservicemgmt.units.get
saasservicemgmt.unitKinds.list
saasservicemgmt.unitKinds.get
saasservicemgmt.unitOperations.list
saasservicemgmt.unitOperations.get
saasservicemgmt.tenants.list
saasservicemgmt.tenants.get
saasservicemgmt.saas.list
saasservicemgmt.saas.get
Visualizador de App Lifecycle Manager (roles/saasservicemgmt.viewer) Lee los recursos de App Lifecycle Manager: versiones, lanzamientos, rolloutKinds, unidades, unitKinds, unitOperations, SaaS y usuarios. resourcemanager.projects.get
resourcemanager.projects.list
saasservicemgmt.locations.list
saasservicemgmt.locations.get
saasservicemgmt.rollouts.list
saasservicemgmt.rollouts.get
saasservicemgmt.rolloutKinds.list
saasservicemgmt.rolloutKinds.get
saasservicemgmt.releases.list
saasservicemgmt.releases.get
saasservicemgmt.units.list
saasservicemgmt.units.get
saasservicemgmt.unitKinds.list
saasservicemgmt.unitKinds.get
saasservicemgmt.unitOperations.list
saasservicemgmt.unitOperations.get
saasservicemgmt.tenants.list
saasservicemgmt.tenants.get
saasservicemgmt.saas.list
saasservicemgmt.saas.get

Permisos

Los permisos que debe tener el emisor para llamar a cada método se indican en la referencia de la API de REST.

¿Qué sigue?