Compute Engine puede extraer contenedores directamente de los repositorios de Artifact Registry para que puedas ejecutar cargas de trabajo alojadas en contenedores en instancias de máquina virtual (VM). Puedes configurar los roles y los permisos de acceso de las cuentas de servicio para controlar cómo las VMs acceden a los artefactos o los suben en los distintos proyectos.
Permisos necesarios
La cuenta de servicio de Compute Engine necesita acceso a Artifact Registry para extraer imágenes de contenedor.
Según la configuración de la política de la organización, es posible que a la cuenta de servicio predeterminada
se le otorgue automáticamente el rol de editor en tu
proyecto. Te recomendamos inhabilitar la concesión automática de roles; para ello,
aplica la restricción de la política de la
organización iam.automaticIamGrantsForDefaultServiceAccounts. Si creaste tu organización después del 3 de mayo de 2024, esta
restricción se aplica de forma predeterminada.
Si inhabilitas la concesión automática de roles, debes decidir qué roles se deben otorgar a las cuentas de servicio predeterminadas y, luego, otorgar estos roles a ti mismo.
Si la cuenta de servicio predeterminada ya tiene el rol de editor, te recomendamos que reemplaces el rol de editor por roles menos permisivos.Para modificar de forma segura los roles de la cuenta de servicio, usa Policy Simulator para ver el impacto del cambio y, luego, otorga y revoca los roles adecuados.
A continuación, se incluyen algunos ejemplos de los roles y los permisos de acceso obligatorios para diferentes situaciones:
- Para extraer imágenes de contenedor de los repositorios de Artifact Registry, debes otorgar a la cuenta de servicio de Compute Engine el rol de lector de Artifact Registry (
roles/artifactregistry.reader). Además, asegúrate de que el alcance de accesoread-onlyesté configurado para los buckets de almacenamiento de Cloud Storage. - Deseas que la instancia de VM se suba a repositorios. En este caso, debes configurar un permiso de acceso con acceso de escritura al almacenamiento:
read-write,cloud-platformofull-control. - La instancia de VM se encuentra en un proyecto diferente al de los repositorios a los que deseas acceder. En el proyecto con los repositorios, otorga los permisos necesarios a la cuenta de servicio de la instancia.
- Los repositorios están en el mismo proyecto, pero no quieres que la cuenta de servicio predeterminada tenga el mismo nivel de acceso en todos los repositorios. En este caso, debes otorgar los permisos adecuados al nivel de repositorio y revocar los permisos de Artifact Registry a nivel de proyecto.
- La VM está asociada con una cuenta de servicio personalizada. Asegúrate de que la cuenta de servicio tenga los permisos y el permiso de acceso necesarios.
- Usas funciones personalizadas para otorgar permisos, y la función personalizada no incluye los permisos necesarios de Artifact Registry. Agrega los permisos necesarios a la función.