Cuenta de servicio de Container Registry

El agente de servicio de Container Registry es una cuenta de servicio gestionada por Google que actúa en nombre de Container Registry al interactuar con servicios de Google Cloud.

Para aplicar el principio de seguridad de mínimos privilegios, se ha concedido a esta cuenta de servicio el rol Agente de servicio de Container Registry en los proyectos en los que se habilitó la API Container Registry después del 5 de octubre del 2020. Este rol tiene los siguientes permisos:

  • Publicar temas: pubsub.topics.publish
  • Leer las LCAs de objetos de almacenamiento: storage.objects.getIamPolicy
  • Leer metadatos y datos de objetos de almacenamiento: storage.objects.get
  • Mostrar los objetos de almacenamiento de un segmento y leer los metadatos de un objeto: storage.objects.list

Antes, a la cuenta de servicio de Container Registry se le asignaba el rol Editor. Como el rol Editor concede permisos para crear y eliminar la mayoría de los recursos de un proyecto, te recomendamos que restrinjas los permisos si tu cuenta de servicio de Container Registry tiene este rol.

Buscar 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 principales que tienen acceso a tu proyecto.

Consola

  1. Ve a la página de IAM.

  2. Para añadir cuentas gestionadas por Google a la lista de principales, marca la casilla Incluir concesiones de roles proporcionadas por Google.

  3. Para filtrar la lista, introduce containerregistry en el campo Filtrar.

gcloud

Ejecuta el siguiente comando para enumerar las entidades que contienen la cadena containerregistry:

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

Sustituye PROJECT-ID por el ID de tu proyecto. Google Cloud

Verificando 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"

Dónde

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

Puedes obtener el ID y el número de proyecto en la Google Cloud consola o con los siguientes comandos:

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

Cambiar permisos

Para asignar el rol Agente de servicio de Container Registry y revocar el rol Editor, sigue estos pasos:

  1. Asigna el rol 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 el rol 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