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
Ve a la página de IAM.
Para añadir cuentas gestionadas por Google a la lista de principales, marca la casilla Incluir concesiones de roles proporcionadas por Google.
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:
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
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