Âmbitos de acesso no GKE


Esta página descreve os âmbitos de acesso predefinidos concedidos aos nós nos clusters do Google Kubernetes Engine (GKE). Ao ler esta página, fica a saber mais sobre os âmbitos de acesso predefinidos que são concedidos aos clusters e como pode configurar âmbitos de acesso personalizados, se necessário.

Esta página destina-se a especialistas e operadores de segurança que criam e gerem clusters, e têm de compreender o acesso predefinido concedido aos clusters e como modificar esse acesso, se necessário. Para saber mais sobre as funções comuns e as tarefas de exemplo que referimos no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Trusted Cloud by S3NS

O que são âmbitos de acesso?

Os âmbitos de acesso são o método antigo de concessão de autorizações para os seus nós e para as cargas de trabalho executadas nos seus nós se as cargas de trabalho usarem credenciais predefinidas da aplicação (ADC). Os âmbitos de acesso definem os âmbitos de OAuth usados em chamadas de API a partir de bibliotecas cliente ou da CLI gcloud.

Recomendamos que não especifique os seus próprios âmbitos de acesso. Em alternativa, deve usar autorizações de IAM ou controlo de acesso baseado em funções (CABF) do Kubernetes para conceder acesso a contas de serviço IAM específicas ou contas de serviço do Kubernetes.

Âmbitos de acesso predefinidos

Quando cria um novo cluster do GKE,o Trusted Cloud atribui um conjunto predefinido de âmbitos de acesso aos nós com base na conta de serviço usada pelos nós. Estes âmbitos de acesso ativam funcionalidades específicas para o GKE. Também pode definir âmbitos de acesso manualmente através da flag --scopes quando criar clusters padrão, clusters do Autopilot> ou grupos de nós. Não pode modificar os âmbitos de acesso em pools de nós existentes. Em alternativa, crie um novo conjunto de nós com os novos âmbitos e migre as cargas de trabalho para esse conjunto de nós.

As secções seguintes descrevem os âmbitos de acesso predefinidos que o GKE adiciona aos nós com base no facto de especificar ou não uma conta de serviço personalizada e de especificar ou não manualmente âmbitos de acesso.

Clusters do Autopilot

Conta de serviço Especificou manualmente os âmbitos de acesso? Âmbitos de acesso que o GKE adiciona
Conta de serviço predefinida do Compute Engine Não
  • https://www.googleapis.com/auth/devstorage.read_only
  • https://www.googleapis.com/auth/service.management.readonly
  • https://www.googleapis.com/auth/servicecontrol
  • https://www.googleapis.com/auth/trace.append
  • https://www.googleapis.com/auth/logging.write: adicionado se o Cloud Logging estiver ativado
  • https://www.googleapis.com/auth/monitoring: adicionado se o Cloud Monitoring estiver ativado
Sim Âmbitos especificados manualmente
Conta de serviço personalizada Não https://www.googleapis.com/auth/cloud-platform
Sim Âmbitos especificados manualmente

Clusters padrão

Conta de serviço Âmbitos de acesso especificados manualmente? Âmbitos de acesso do GKE
Conta de serviço predefinida do Compute Engine Não
  • https://www.googleapis.com/auth/devstorage.read_only
  • https://www.googleapis.com/auth/service.management.readonly
  • https://www.googleapis.com/auth/servicecontrol
  • https://www.googleapis.com/auth/trace.append
  • https://www.googleapis.com/auth/logging.write: adicionado se o Cloud Logging estiver ativado
  • https://www.googleapis.com/auth/monitoring: adicionado se o Cloud Monitoring estiver ativado
Sim
  • Âmbitos especificados manualmente
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/logging.write: adicionado se o Cloud Logging estiver ativado
  • https://www.googleapis.com/auth/monitoring: adicionado se o Cloud Monitoring estiver ativado
Conta de serviço personalizada Não
  • https://www.googleapis.com/auth/userinfo.email
  • https://www.googleapis.com/auth/cloud-platform
Sim
  • Âmbitos especificados manualmente
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/logging.write: adicionado se o Cloud Logging estiver ativado
  • https://www.googleapis.com/auth/monitoring: adicionado se o Cloud Monitoring estiver ativado

Configure uma conta de serviço personalizada para cargas de trabalho

O IAM é o sistema de controlo de acesso para conceder funções autorizadas a utilizadores e contas de serviço no seuTrusted Cloud projeto. Uma conta de serviço é uma conta Google especial que executa tarefas, como implementar aplicações, em seu nome. Use o IAM para criar uma conta de serviço e, em seguida, use associações de políticas do IAM para proteger a conta.

Se as suas cargas de trabalho exigirem acesso ao Compute Engine, conceda à conta de serviço a função de administrador do Compute Engine. Se as suas cargas de trabalho precisarem de extrair imagens privadas do Artifact Registry, consulte o artigo Configurar o controlo de acesso para repositórios do Artifact Registry.

Criar uma conta de serviço

Para criar uma conta de serviço personalizada com o nome kubernetes-engine-node-sa, execute os seguintes comandos:

export NODE_SA_NAME=kubernetes-engine-node-sa
gcloud iam service-accounts create $NODE_SA_NAME \
  --display-name "GKE Node Service Account"
export NODE_SA_EMAIL=`gcloud iam service-accounts list --format='value(email)' \
  --filter='displayName:GKE Node Service Account'`

Conceda funções mínimas

Para configurar a conta de serviço com as funções e as autorizações mínimas necessárias para o funcionamento do nó do GKE, execute os seguintes comandos, em que $PROJECT é o ID do projeto:

export PROJECT=`gcloud config get-value project`
gcloud projects add-iam-policy-binding $PROJECT \
  --member serviceAccount:$NODE_SA_EMAIL \
  --role roles/monitoring.metricWriter
gcloud projects add-iam-policy-binding $PROJECT \
  --member serviceAccount:$NODE_SA_EMAIL \
  --role roles/monitoring.viewer
gcloud projects add-iam-policy-binding $PROJECT \
  --member serviceAccount:$NODE_SA_EMAIL \
  --role roles/logging.logWriter

Conceda funções adicionais

Para conceder à conta de serviço a função Administrador do Compute Engine, execute o seguinte comando:

gcloud projects add-iam-policy-binding $PROJECT \
  --member serviceAccount:$NODE_SA_EMAIL \
  --role roles/compute.admin

Para saber como conceder acesso a contas de serviço a imagens privadas armazenadas no Artifact Registry, consulte o artigo Conceder acesso a clusters do Google Kubernetes Engine.

Crie um cluster ou um conjunto de nós com a conta de serviço personalizada

Para criar um cluster que use a conta de serviço personalizada, execute o seguinte comando:

gcloud container clusters create --service-account=$NODE_SA_EMAIL

Para criar um node pool num cluster existente:

gcloud container node-pools create --service-account=$NODE_SA_EMAIL