Conta de serviço do Container Registry

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

  1. Aceda à página IAM.

  2. Para adicionar contas geridas pela Google à lista de principais, selecione a caixa de verificação Incluir concessões de funções fornecidas pela Google.

  3. 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:

  1. 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
    
  2. 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