O agente de serviço do Container Registry é uma conta de serviço gerida pela Google que atua em nome do Container Registry quando interage com os Google Cloud serviços.
Para aplicar o princípio de segurança do menor privilégio, esta conta de serviço recebe a função de agente de serviço do Container Registry nos projetos em que a API Container Registry foi ativada após 5 de outubro de 2020. Esta função tem as seguintes autorizações:
- Publicar tópicos:
pubsub.topics.publish
- Ler LCAs de objetos de armazenamento:
storage.objects.getIamPolicy
- Ler dados e metadados de objetos de armazenamento:
storage.objects.get
- Listar objetos de armazenamento num contentor e ler metadados de objetos:
storage.objects.list
Anteriormente, à conta de serviço do Container Registry era atribuída a função de Editor. Uma vez que a função Editor concede autorizações para criar e eliminar a maioria dos recursos num projeto, recomendamos que restrinja as autorizações se a sua conta de serviço do Container Registry tiver esta função.
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, consulte a lista de responsáveis que têm acesso ao seu projeto.
Consola
Aceda à página IAM.
Para adicionar contas geridas pela Google à lista de principais, selecione a caixa de verificação Incluir concessões de funções fornecidas pela Google.
Para filtrar a lista, introduza
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 seu Google Cloud projeto.
A validar as autorizações atuais
Para verificar as autorizações atuais da sua 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 Google Cloud ID do projeto.
- PROJECT-NUMBER é o número do projeto Google Cloud .
Pode obter o ID e o número do projeto na Google Cloud consola ou com os seguintes comandos:
PROJECT=$(gcloud config get-value project)
echo $PROJECT && gcloud projects list --filter="$PROJECT" --format="value(PROJECT_NUMBER)"
Alterar autorizações
Para conceder a função de agente do serviço do Container Registry e revogar a função de editor:
Conceda a função de 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 a função 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