O agente de serviço do Container Registry é uma conta de serviço gerenciada pelo Google que age em nome do Container Registry ao interagir com os serviços do Google Cloud.
Para impor o princípio de segurança do menor privilégio, essa conta de serviço recebe o papel de Agente de serviço do Container Registry em projetos em que a API Container Registry foi ativada após 5 de outubro de 2020. Esse papel tem as seguintes permissões:
- Publicar tópicos:
pubsub.topics.publish
- Ler ACLs de objeto de armazenamento:
storage.objects.getIamPolicy
- Ler dados e metadados do objeto de armazenamento:
storage.objects.get
- Listar objetos de armazenamento em um bucket e ler metadados de objeto:
storage.objects.list
Anteriormente, a conta de serviço do Container Registry tinha o papel Editor. Como o papel de Editor concede permissões para criar e excluir a maioria dos recursos em um projeto, recomendamos restringir as permissões se sua conta de serviço do Container Registry tiver esse papel.
Como encontrar o ID da conta de serviço
A conta de serviço do Container Registry tem o seguinte ID:
service-[PROJECT_NUMBER]@containerregistry.iam.gserviceaccount.com
Para encontrar a conta de serviço, veja a lista de principais que têm acesso ao seu projeto.
Console
Acessar a página do IAM.
Para adicionar contas gerenciadas pelo Google à lista de principais, marque a caixa de seleção Incluir concessões do papel fornecidas pelo Google.
Para filtrar a lista, insira
containerregistry
no campo Filtro.
gcloud
Execute o seguinte comando para listar os principais que contêm a string
containerregistry
:
gcloud projects get-iam-policy PROJECT-ID \
--flatten="bindings[].members"
--filter="containerregistry"
Substitua PROJECT-ID pelo ID do projeto do Google Cloud.
Como verificar as permissões atuais
Para verificar as permissões atuais da conta de serviço do Container Registry, execute o 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"
Onde
- PROJECT-ID é o ID do projeto do Google Cloud;
- PROJECT-NUMBER é o número do projeto do Google Cloud;
É possível conseguir o ID e o número do projeto no Console do Google Cloud ou com os seguintes comandos:
PROJECT=$(gcloud config get-value project)
echo $PROJECT && gcloud projects list --filter="$PROJECT" --format="value(PROJECT_NUMBER)"
Como alterar as permissões
Para conceder o papel de Agente de serviço do Container Registry e revogar o papel de editor:
Conceda o papel Agente de serviço do Container Registry com o seguinte comando:
gcloud projects add-iam-policy-binding PROJECT-ID \ --member=serviceAccount:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com --role=roles/containerregistry.ServiceAgent
Revogue o papel de editor com o seguinte comando:
gcloud projects remove-iam-policy-binding PROJECT-ID \ --member=serviceAccount:service-PROJECT-NUMBER@containerregistry.iam.gserviceaccount.com --role=roles/editor