Artifact Registry es el servicio recomendado para administrar imágenes de contenedor. Container Registry sigue siendo compatible, pero solo recibirá correcciones de seguridad críticas. Obtén más información sobre la transición a Artifact Registry.

Cuenta de servicio de Container Registry

El agente de servicio de Container Registry es una cuenta de servicio administrada por Google que actúa en nombre de Container Registry cuando interactúa con los servicios de Google Cloud.

A fin de aplicar el principio de privilegios mínimos de seguridad, se le otorga a esta cuenta de servicio la función de agente de servicio de Container Registry en proyectos en los que la API de Container Registry se habilitó después del 5 de octubre de 2020. Esta función tiene los siguientes permisos:

  • Temas de publicación: pubsub.topics.publish
  • LCA del objeto de almacenamiento de lectura: storage.objects.getIamPolicy
  • Lee datos y metadatos de objeto de almacenamiento: storage.objects.get
  • Enumera los objetos de almacenamiento de un bucket y lee los metadatos de objetos: storage.objects.list

Anteriormente, a la cuenta de servicio de Container Registry se le otorgó la función Editor. Dado que la función de editor otorga permisos para crear y borrar la mayoría de los recursos de un proyecto, te recomendamos que restrinjas los permisos si tu cuenta de servicio de Container Registry tiene esta función.

Busca el ID de la cuenta de servicio

La cuenta de servicio de Container Registry tiene el siguiente ID:

service-[PROJECT_NUMBER]@containerregistry.iam.gserviceaccount.com

Para encontrar la cuenta de servicio, consulta la lista de las principales que tienen acceso a tu proyecto.

Console

  1. Ir a la página IAM.

  2. Para agregar cuentas administradas por Google a la lista de principales, selecciona la casilla de verificación Incluir asignaciones de funciones proporcionadas por Google.

  3. Para filtrar la lista, ingresa containerregistry en el campo Filtro.

gcloud

Ejecuta el siguiente comando para enumerar los principales que contengan la string containerregistry:

gcloud projects get-iam-policy PROJECT-ID \
    --flatten="bindings[].members"
    --filter="containerregistry"

Reemplaza PROJECT-ID por el ID del proyecto de Google Cloud.

Verifica los permisos actuales

Para verificar los permisos actuales de tu cuenta de servicio de Container Registry, ejecuta el siguiente comando:

gcloud projects get-iam-policy PROJECT-ID  \
    --flatten="bindings[].members" \
    --format='table(bindings.role)' \
    --filter="bindings.members:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com"

Donde

  • PROJECT-ID es el ID del proyecto de Google Cloud.
  • PROJECT-NUMBER es el número de proyecto de Google Cloud.

Puedes obtener el ID y el número del proyecto en Google Cloud Console o con los siguientes comandos:

PROJECT=$(gcloud config get-value project)
echo $PROJECT && gcloud projects list --filter="$PROJECT" --format="value(PROJECT_NUMBER)"

Cambia los permisos

Para otorgar la función de agente de servicio de Container Registry y revocar la función de editor, sigue estos pasos:

  1. Otorga la función de Agente de servicio de Container Registry con el siguiente comando:

    gcloud projects add-iam-policy-binding PROJECT-ID \
    --member=serviceAccount:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com --role=roles/containerregistry.ServiceAgent
    
  2. Revoca la función de editor con el siguiente comando:

    gcloud projects remove-iam-policy-binding PROJECT-ID \
    --member=serviceAccount:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com --role=roles/editor