Nesta página, descrevemos os escopos de acesso padrão concedidos aos nós nos clusters do Google Kubernetes Engine (GKE).
O que são escopos de acesso?
Os escopos de acesso são o método legado que concede permissões para seus nós e para cargas de trabalho em execução nos nós se elas usam credenciais padrão do aplicativo (ADC). Os escopos de acesso definem os escopos do OAuth usados nas chamadas de API das bibliotecas de cliente ou pela CLI gcloud.
Recomendamos que você não especifique seus próprios escopos de acesso. Em vez disso, é necessário usar permissões do IAM ou controle de acesso baseado em papéis (RBAC, na sigla em inglês) do Kubernetes para conceder acesso a contas de serviço específicas do IAM ou contas de serviço do Kubernetes.
Escopos de acesso padrão
Quando você cria um novo cluster do GKE, o Google Cloud atribui um
conjunto padrão de escopos de acesso aos nós com base na conta de serviço usada pelos
nós. Esses escopos de acesso permitem funcionalidades específicas para o GKE.
Também é possível definir escopos de acesso manualmente usando a sinalização --scopes
ao
criar
clusters padrão.
Clusters do Autopilot
ou pools de nós. Não é possível modificar os escopos de acesso nos pools de nós atuais. Em vez disso, crie um novo
pool de nós com os novos escopos e migre cargas de trabalho para ele.
As seções a seguir descrevem os escopos de acesso padrão que o GKE adiciona aos nós com base na especificação de uma conta de serviço personalizada e na especificação manual dos escopos de acesso.
Clusters do Autopilot
Conta de serviço | Você especificou manualmente os escopos de acesso? | Escopos de acesso adicionados pelo GKE |
---|---|---|
Conta de serviço padrão do Compute Engine | Não |
|
Sim | Escopos especificados manualmente | |
Conta de serviço personalizada | Não | https://www.googleapis.com/auth/cloud-platform |
Sim | Escopos especificados manualmente |
Clusters padrão
Conta de serviço | Escopos de acesso especificados manualmente? | Escopos de acesso do GKE |
---|---|---|
Conta de serviço padrão do Compute Engine | Não |
|
Sim |
|
|
Conta de serviço personalizada | Não |
|
Sim |
|
Como configurar uma conta de serviço personalizada em cargas de trabalho
O IAM é o sistema de controle de acesso para a concessão de papéis autorizados aos usuários e contas de serviço no projeto do Google Cloud. A conta de serviço é uma conta especial do Google que executa tarefas em seu nome, como a implantação de aplicativos. Use o IAM para criar uma conta de serviço e, em seguida, use as vinculações de política do IAM para proteger a conta.
Se as cargas de trabalho exigirem acesso ao Compute Engine, conceda à conta de serviço o papel Administrador do Compute Engine. Se as cargas de trabalho precisarem extrair imagens particulares do Artifact Registry, consulte Como configurar o controle de acesso para repositórios do Artifact Registry.
Crie uma conta de serviço
Para criar uma conta de serviço personalizada chamada 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'`
Conceder papéis mínimos
Para configurar a conta de serviço com os papéis e as permissões mínimos necessários 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
Conceder outros papéis
Para conceder o papel Administrador do Compute Engine à conta de serviço, execute o seguinte comando:
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/compute.admin
Para saber como conceder às contas de serviço acesso a imagens particulares armazenadas no Artifact Registry, consulte Como conceder acesso aos clusters do Google Kubernetes Engine.
Como criar um cluster ou pool de nós com a conta de serviço personalizada
Para criar um cluster que usa a conta de serviço personalizada, execute o seguinte comando:
gcloud container clusters create --service-account=$NODE_SA_EMAIL
Para criar um pool de nós em um cluster atual:
gcloud container node-pools create --service-account=$NODE_SA_EMAIL