Usar a federação de identidade da carga de trabalho para o GKE


Neste documento, mostramos como ativar e configurar a federação de identidade da carga de trabalho para o GKE nos seus clusters do Google Kubernetes Engine (GKE). A federação de identidade da carga de trabalho para GKE permite que as cargas de trabalho nos clusters do GKE representem as contas de serviço do Identity and Access Management (IAM) para acessar os serviços do Google Cloud. Para saber mais sobre como funciona a federação de identidade da carga de trabalho do GKE e as limitações, consulte a federação de identidade da carga de trabalho para o GKE.

Antes de começar

Antes de começar, verifique se você realizou as tarefas a seguir:

  • Ativar a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a Google Cloud CLI para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. Se você instalou a CLI gcloud anteriormente, instale a versão mais recente executando gcloud components update.

Ativar a federação de identidade da carga de trabalho para o GKE

É possível ativar a federação de identidade da carga de trabalho para o GKE em clusters e pools de nós usando a CLI do Google Cloud ou o console do Google Cloud. A federação de identidade da carga de trabalho do GKE precisa estar ativada no nível do cluster antes de ser ativada para o GKE em pools de nós.

Os clusters do Autopilot ativam a federação de identidade da carga de trabalho para o GKE por padrão. Para configurar pods do Autopilot para usar a federação de identidade da carga de trabalho no GKE, consulte Configurar aplicativos para usar a federação de identidade da carga de trabalho para o GKE.

Criar um novo cluster

É possível ativar a federação de identidade da carga de trabalho para o GKE em um novo cluster padrão usando a CLI gcloud ou o console do Google Cloud.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Para ativar a federação de identidade da carga de trabalho para o GKE em um novo cluster, execute o seguinte comando:

    gcloud container clusters create CLUSTER_NAME \
        --region=COMPUTE_REGION \
        --workload-pool=PROJECT_ID.svc.id.goog
    

    Substitua:

    • CLUSTER_NAME: o nome do novo cluster;
    • COMPUTE_REGION: a região do Compute Engine do cluster. Para clusters zonais, use --zone=COMPUTE_ZONE.
    • PROJECT_ID: é seu ID do projeto no Google Cloud.

Console

Para ativar a federação de identidade da carga de trabalho para o GKE em um novo cluster, faça o seguinte:

  1. Acesse a página Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. Na caixa de diálogo Criar cluster do GKE Standard, clique em Configurar.

  4. No menu de navegação, na seção Cluster, clique em Segurança.

  5. Marque a caixa de seleção Ativar identidade de carga de trabalho.

  6. Continue configurando o cluster e clique em Criar.

Atualizar um cluster atual

É possível ativar a federação de identidade da carga de trabalho para o GKE em um cluster padrão atual usando a CLI gcloud ou o console do Google Cloud. Os pools de nós atuais não são afetados, mas todos os novos pools de nós no cluster usam a federação de identidade da carga de trabalho para o GKE.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Para ativar a federação de identidade da carga de trabalho para o GKE em um cluster atual, execute o seguinte comando:

    gcloud container clusters update CLUSTER_NAME \
        --region=COMPUTE_REGION \
        --workload-pool=PROJECT_ID.svc.id.goog
    

    Substitua:

    • CLUSTER_NAME: o nome do cluster atual.
    • COMPUTE_REGION: a região do Compute Engine do cluster. Para clusters zonais, use --zone=COMPUTE_ZONE.
    • PROJECT_ID: é seu ID do projeto no Google Cloud.

Console

Para ativar a federação de identidade da carga de trabalho para o GKE em um cluster atual, faça o seguinte:

  1. Acesse a página do Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que você quer modificar.

  3. Na página de detalhes do cluster, na seção Segurança, clique em Editar a federação de identidade da carga de trabalho do GKE.

  4. Na caixa de diálogo Editar Identidade da carga de trabalho, marque a caixa de seleção Ativar Identidade da carga de trabalho.

  5. Clique em Salvar.

Migrar as cargas de trabalho atuais para a federação de identidade da carga de trabalho do GKE

Depois de ativar a federação de identidade da carga de trabalho para o GKE em um cluster atual, migre as cargas de trabalho em execução para usar a federação de identidade da carga de trabalho para o GKE. Selecione a estratégia de migração ideal para seu ambiente. É possível criar novos pools de nós com a federação de identidade da carga de trabalho para o GKE ativada ou atualizar os pools de nós atuais para ativar a federação de identidade da carga de trabalho para o GKE.

.

Recomendamos a criação de novos pools de nós se você também precisar modificar seus aplicativos para que sejam compatíveis com a federação de identidade da carga de trabalho do GKE.

Todos os novos pools de nós criados por padrão para usar a federação de identidade da carga de trabalho do GKE, se o cluster estiver com esse recurso ativado. Para criar um novo pool de nós com a federação de identidade da carga de trabalho para GKE ativada, execute o seguinte comando:

gcloud container node-pools create NODEPOOL_NAME \
    --cluster=CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --workload-metadata=GKE_METADATA

Substitua:

  • NODEPOOL_NAME: o nome do novo pool de nós.
  • CLUSTER_NAME: o nome do cluster atual que tem a federação de identidade da carga de trabalho para o GKE ativada.

A sinalização --workload-metadata=GKE_METADATA configura o pool de nós para usar o servidor de metadados do GKE. Recomendamos que você inclua a sinalização para que a criação do pool de nós falhe se a federação de identidade da carga de trabalho para o GKE não estiver ativada no cluster.

Atualizar um pool de nós

É possível ativar manualmente a federação de identidade da carga de trabalho para o GKE em pools de nós atuais depois de ativar a federação de identidade da carga de trabalho para o GKE no cluster.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Para modificar um pool de nós atual e usar a federação de identidade da carga de trabalho para o GKE, execute o seguinte comando:

    gcloud container node-pools update NODEPOOL_NAME \
        --cluster=CLUSTER_NAME \
        --region=COMPUTE_REGION \
        --workload-metadata=GKE_METADATA
    

    Se um cluster tiver a federação de identidade da carga de trabalho para GKE ativada, será possível desativá-la seletivamente em um pool de nós específico especificando explicitamente --workload-metadata=GCE_METADATA. Consulte Como proteger os metadados do cluster para mais informações.

Console

Para modificar um pool de nós atual e usar a federação de identidade da carga de trabalho para o GKE, siga estas etapas:

  1. Acesse a página do Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que você quer modificar.

  3. Clique na guia Nós.

  4. Na seção Pool de nós, clique no nome do pool de nós que você quer redimensionar.

  5. Na página Detalhes do pool de nós, clique em Editar.

  6. Na página Editar pool de nós, na seção Segurança, marque a caixa de seleção Ativar servidor de metadados do GKE.

  7. Clique em Save.

Configurar aplicativos para usar a federação de identidade da carga de trabalho para o GKE

Depois de ativar a federação de identidade da carga de trabalho para o GKE, configure seus aplicativos para autenticar no Google Cloud usando a federação de identidade da carga de trabalho do GKE antes de migrar os aplicativos para os novos pools de nós.

Atribua uma conta de serviço do Kubernetes ao aplicativo e configure-a para atuar como uma conta de serviço do IAM.

As etapas a seguir mostram como configurar seus aplicativos para usar a federação de identidade da carga de trabalho do GKE, se ela estiver ativada no cluster.

  1. Receba as credenciais do cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=COMPUTE_REGION
    

    Substitua:

    • CLUSTER_NAME: o nome do cluster com a federação de identidade da carga de trabalho para o GKE ativada.
    • COMPUTE_REGION: a região do Compute Engine do cluster.
  2. Crie o namespace que será usado para a conta de serviço do Kubernetes. Também é possível usar o namespace padrão ou qualquer namespace existente.

    kubectl create namespace NAMESPACE
    
  3. Crie uma conta de serviço do Google para o aplicativo usar: Também é possível usar qualquer conta de serviço do Kubernetes em qualquer namespace, incluindo a conta de serviço default.

    kubectl create serviceaccount KSA_NAME \
        --namespace NAMESPACE
    

    Substitua:

    • KSA_NAME: o nome da nova conta de serviço do Kubernetes.
    • NAMESPACE, o nome do namespace do Kubernetes da conta de serviço.
  4. Crie uma conta de serviço do IAM para seu aplicativo ou use uma conta de serviço do IAM atual. É possível usar qualquer conta de serviço do Google em qualquer projeto na organização. Para o Config Connector, aplique o objeto IAMServiceAccount à conta de serviço escolhida.

    gcloud

    1. No Console do Google Cloud, ative o Cloud Shell.

      Ativar o Cloud Shell

      Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

    2. Para criar uma nova conta de serviço de IAM usando a CLI gcloud, execute o comando a seguir.

      gcloud iam service-accounts create GSA_NAME \
          --project=GSA_PROJECT
      

      Substitua:

      • GSA_NAME: o nome da nova conta de serviço do IAM.
      • GSA_PROJECT, o ID do projeto do Google Cloud da conta de serviço do IAM.

    Config Connector

    Para usar uma conta de serviço do Google nova ou existente com o Config Connector, aplique o arquivo de configuração a seguir.

    Observação: esta etapa requer o Config Connector. Siga estas instruções para instalar o Config Connector no cluster.

    apiVersion: iam.cnrm.cloud.google.com/v1beta1
    kind: IAMServiceAccount
    metadata:
      name: [GSA_NAME]
    spec:
      displayName: [DISPLAY_NAME]
    Para implantar esse manifesto, faça o download dele para sua máquina como service-account.yaml.

    Use kubectl para aplicar o manifesto:

    kubectl apply -f service-account.yaml
    

    Para ver informações sobre como autorizar contas de serviço do Google a acessar as APIs do Google Cloud, consulte Como entender as contas de serviço.

  5. Verifique se a conta de serviço do IAM tem os papéis necessários. É possível conceder outros papéis usando o seguinte comando:

    gcloud projects add-iam-policy-binding GSA_PROJECT \
        --member "serviceAccount:GSA_NAME@GSA_PROJECT.iam.gserviceaccount.com" \
        --role "ROLE_NAME"
    

    Substitua:

    • GSA_PROJECT, o ID do projeto do Google Cloud da conta de serviço do IAM.
    • GSA_NAME: o nome da conta de serviço do IAM.
    • ROLE_NAME: o papel do IAM a ser atribuído à conta de serviço, como roles/spanner.viewer.
  6. Permita que a conta de serviço do Kubernetes atue como a conta de serviço do IAM. Para isso, adicione uma vinculação de política do IAM entre as duas contas de serviço. Essa vinculação permite que a conta de serviço do Kubernetes atue como a conta de serviço do Google.

    gcloud

    1. No Console do Google Cloud, ative o Cloud Shell.

      Ativar o Cloud Shell

      Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

    2. No seu ambiente de desenvolvimento, execute este comando:

      gcloud iam service-accounts add-iam-policy-binding GSA_NAME@GSA_PROJECT.iam.gserviceaccount.com \
          --role roles/iam.workloadIdentityUser \
          --member "serviceAccount:PROJECT_ID.svc.id.goog[NAMESPACE/KSA_NAME]"
      

    Config Connector

    Observação: esta etapa requer o Config Connector. Siga estas instruções para instalar o Config Connector no cluster.

    apiVersion: iam.cnrm.cloud.google.com/v1beta1
    kind: IAMPolicy
    metadata:
      name: iampolicy-workload-identity-sample
    spec:
      resourceRef:
        apiVersion: iam.cnrm.cloud.google.com/v1beta1
        kind: IAMServiceAccount
        name: [GSA_NAME]
      bindings:
        - role: roles/iam.workloadIdentityUser
          members:
            - serviceAccount:[PROJECT_ID].svc.id.goog[[K8S_NAMESPACE]/[KSA_NAME]]
    Para implantar esse manifesto, faça o download dele para sua máquina como policy-binding.yaml. Substitua GSA_NAME, PROJECT_ID NAMESPACE e KSA_NAME pelos valores correspondentes do seu ambiente. Depois, execute:

    kubectl apply -f policy-binding.yaml
    
  7. Anote a conta de serviço do Kubernetes com o endereço de e-mail da conta de serviço do IAM.

    kubectl

    1. No Console do Google Cloud, ative o Cloud Shell.

      Ativar o Cloud Shell

      Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

    2. No seu ambiente de desenvolvimento, execute este comando:

      kubectl annotate serviceaccount KSA_NAME \
          --namespace NAMESPACE \
          iam.gke.io/gcp-service-account=GSA_NAME@GSA_PROJECT.iam.gserviceaccount.com
      

    yaml

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      annotations:
        iam.gke.io/gcp-service-account: GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
      name: KSA_NAME
      namespace: NAMESPACE
    
  8. Atualize a especificação do pod para programar as cargas de trabalho em nós que usam a federação de identidade da carga de trabalho para o GKE e para usar a conta de serviço anotada do Kubernetes.

    spec:
      serviceAccountName: KSA_NAME
      nodeSelector:
        iam.gke.io/gke-metadata-server-enabled: "true"
    
  9. Aplique a configuração atualizada ao cluster:

    kubectl apply -f DEPLOYMENT_FILE
    

    Substitua DEPLOYMENT_FILE pelo caminho para a especificação de pod atualizada.

Verificar a federação de identidade da carga de trabalho para a configuração do GKE

Verifique se as contas de serviço estão configuradas corretamente. Para isso, crie um pod com a conta de serviço do Kubernetes que executa a imagem do contêiner específico do SO e conecte-se a ele com uma sessão interativa.

Linux

Crie um pod que use a conta de serviço do Kubernetes anotada, e curl o endpoint service-accounts.

  1. Salve a configuração a seguir como wi-test.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: workload-identity-test
      namespace: NAMESPACE
    spec:
      containers:
      - image: google/cloud-sdk:slim
        name: workload-identity-test
        command: ["sleep","infinity"]
      serviceAccountName: KSA_NAME
      nodeSelector:
        iam.gke.io/gke-metadata-server-enabled: "true"
    

    A imagem google/cloud-sdk inclui a Google Cloud CLI, que é uma maneira conveniente de consumir as APIs Google Cloud. Pode levar algum tempo para fazer o download da imagem.

  2. Crie o pod:

    kubectl apply -f wi-test.yaml
    
  3. Abra uma sessão interativa no pod:

    kubectl exec -it workload-identity-test \
      --namespace NAMESPACE \
      -- /bin/bash
    
  4. Execute o seguinte comando dentro do pod para receber o e-mail da conta de serviço:

    curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/email
    

    Se as contas de serviço estiverem configuradas corretamente, o endereço de e-mail da conta de serviço do Google será listado como a identidade ativa (e única). Isso demonstra que, por padrão, o pod atua como a autoridade da conta de serviço do IAM ao chamar as APIs do Google Cloud.

  5. Execute o seguinte comando dentro do pod para receber um token:

    curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token
    

    Se um erro for retornado, consulte Solução de problemas.

Windows

Crie um pod com a conta de serviço do Kubernetes que executa a imagem do contêiner servercore:

  1. Salve o seguinte manifesto:

    apiVersion: v1
    kind: Pod
    metadata:
      name: workload-identity-test
      namespace: NAMESPACE
    spec:
      containers:
      - image: IMAGE_NAME
        name: workload-identity-test
        command: ["powershell.exe", "sleep", "3600"]
      serviceAccountName: KSA_NAME
      nodeSelector:
        kubernetes.io/os: windows
        cloud.google.com/gke-os-distribution: windows_ltsc
        iam.gke.io/gke-metadata-server-enabled: "true"
    

    Substitua IMAGE_NAME por um dos seguintes valores de imagem do núcleo do servidor de contêiner:

    Imagem do nó do Windows Server Imagem de contêiner servercore
    WINDOWS_LTSC,
    WINDOWS_LTSC_CONTAINERD
    mcr.microsoft.com/windows/servercore:ltsc2019
    WINDOWS_SAC,
    WINDOWS_SAC_CONTAINERD

    Verifique o mapeamento de versões entre a versão do nó do GKE e a versão do Windows SAC. Para o Windows Server versão 1909, especifique mcr.microsoft.com/windows/servercore:1909. Caso contrário, especifique mcr.microsoft.com/windows/servercore:20H2.

  2. Abra uma sessão interativa no pod:

    kubectl exec -it workload-identity-test \
      --namespace NAMESPACE -- powershell
    
  3. Execute o seguinte comando do PowerShell dentro do pod para receber o e-mail da conta de serviço:

    Invoke-WebRequest  -Headers @{"Metadata-Flavor"="Google"} -Uri  http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/email  -UseBasicParsing
    

    Se as contas de serviço estiverem configuradas corretamente, o endereço de e-mail da conta de serviço do Google será listado como a identidade ativa (e única). Isso demonstra que, por padrão, o pod usa a autoridade da conta de serviço do Google ao chamar APIs Google Cloud.

  4. Execute o seguinte comando dentro do pod para receber um token:

    Invoke-WebRequest  -Headers @{"Metadata-Flavor"="Google"} -Uri  http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token  -UseBasicParsing
    

    Se um erro for retornado, consulte Solução de problemas.

Usar a federação de identidade da carga de trabalho para GKE do seu código

A autenticação nos serviços do Google Cloud usando o código segue o mesmo processo que a autenticação usando o servidor de metadados do Compute Engine. Quando você usa a federação de identidade da carga de trabalho para o GKE, suas solicitações para o servidor de metadados da instância são roteadas para o servidor de metadados do GKE. O código atual que autentica usando o servidor de metadados da instância (como o código que usa as bibliotecas de cliente do Google Cloud) funcionará sem precisar de modificações.

Usar cota de um projeto diferente com a federação de identidade da carga de trabalho para o GKE

Em clusters que executam o GKE na versão 1.24 ou posterior, é possível configurar a conta de serviço do Kubernetes para usar a cota de um projeto diferente do Google Cloud ao fazer chamadas para os métodos GenerateAccessToken e GenerateIdToken na API Service Account Credentials do IAM. Isso permite evitar o uso de toda a cota no projeto principal e, em vez disso, usar cota de outros projetos para os serviços no cluster.

Para configurar um projeto de cota com a federação de identidade da carga de trabalho para GKE, faça o seguinte:

  1. Conceda a permissão serviceusage.services.use no projeto de cota à conta de serviço do Kubernetes.

    gcloud projects add-iam-policy-binding \
    --role=roles/serviceusage.serviceUsageConsumer \
    --member=serviceAccount:PROJECT_ID.svc.id.goog[NAMESPACE/KSA_NAME] \
    QUOTA_PROJECT_ID
    

    Substitua QUOTA_PROJECT_ID pelo ID do projeto da cota.

  2. Anote a conta de serviço do Kubernetes com o projeto de cota:

    kubectl annotate serviceaccount KSA_NAME \
    --namespace NAMESPACE \
    iam.gke.io/credential-quota-project=QUOTA_PROJECT_ID
    

Para verificar se a configuração funciona corretamente, faça o seguinte:

  1. Crie um pod e inicie uma sessão de shell seguindo as instruções em Verificar a federação de identidade da carga de trabalho para a configuração do GKE.

  2. Faça uma solicitação de token da conta de serviço:

    curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token
    
  3. Acesse a página API IAM Service Accounts Credentials no console do Google Cloud do seu projeto de cota:

    Acesse APIs

  4. Verifique se há alterações no tráfego.

Limpar

Para parar de usar a federação de identidade da carga de trabalho do GKE, revogue o acesso à conta de serviço do IAM e desative a federação de identidade da carga de trabalho para o GKE no cluster.

Revogação do acesso

  1. Revogue o acesso à conta de serviço do IAM:

    gcloud

    1. No Console do Google Cloud, ative o Cloud Shell.

      Ativar o Cloud Shell

      Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

    2. No seu ambiente de desenvolvimento, execute este comando:

      gcloud iam service-accounts remove-iam-policy-binding GSA_NAME@GSA_PROJECT.iam.gserviceaccount.com \
          --role roles/iam.workloadIdentityUser \
          --member "serviceAccount:PROJECT_ID.svc.id.goog[NAMESPACE/KSA_NAME]"
      

      Substitua:

      • PROJECT_ID, o ID do projeto do cluster do GKE;
      • NAMESPACE, o nome do namespace do Kubernetes em que a conta de serviço do Kubernetes está localizada;
      • KSA_NAME, o nome da conta de serviço do Kubernetes que terá o acesso revogado;
      • GSA_NAME: o nome da conta de serviço do IAM.
      • GSA_PROJECT, o ID do projeto da conta de serviço do IAM.

    Config Connector

    Se você usou o Config Connector para criar a conta de serviço, exclua-a com kubectl.

    kubectl delete -f service-account.yaml
    

    Pode levar até 30 minutos para que os tokens em cache expirem. É possível verificar se os tokens em cache já expiraram com este comando:

    gcloud auth list
    

    Os tokens em cache expiram se a saída desse comando não incluir mais GSA_NAME@GSA_PROJECT.iam.gserviceaccount.com.

  2. Remova a anotação da conta de serviço do Kubernetes. Esta etapa é opcional porque o acesso foi revogado pelo IAM.

    kubectl annotate serviceaccount KSA_NAME \
        --namespace NAMESPACE iam.gke.io/gcp-service-account-
    

Desativar a federação de identidade da carga de trabalho para o GKE

Só é possível desativar a federação de identidade da carga de trabalho para clusters do GKE Standard.

gcloud

  1. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Desative a federação de identidade da carga de trabalho para o GKE em cada pool de nós:

    gcloud container node-pools update NODEPOOL_NAME \
        --cluster=CLUSTER_NAME \
        --workload-metadata=GCE_METADATA
    

    Repita esse comando em cada pool de nós no cluster.

  3. Desative a federação de identidade da carga de trabalho para o GKE no cluster:

    gcloud container clusters update CLUSTER_NAME \
        --disable-workload-identity
    

Console

  1. Acesse a página do Google Kubernetes Engine no console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Na lista de clusters, clique no nome do cluster que você quer modificar.

  3. Clique na guia Nós.

  4. Para desativar a federação de identidade da carga de trabalho do GKE em cada pool de nós, faça o seguinte para cada pool de nós na seção Pools de nós:

    1. Clique no nome do pool de nós que você quer modificar.
    2. Na página Detalhes do pool de nós, clique em Editar.
    3. Na página Editar pool de nós, na seção Segurança, desmarque a caixa de seleção Ativar servidor de metadados do GKE.
    4. Clique em Save.
  5. Para desativar a federação de identidade da carga de trabalho do GKE para o cluster, faça o seguinte:

    1. Clique na guia Detalhes.
    2. Na seção Segurança, ao lado de Identidade da carga de trabalho, clique em Editar.
    3. Na caixa de diálogo Editar Identidade da carga de trabalho, desmarque a caixa de seleção Ativar Identidade da carga de trabalho.
    4. Clique em Salvar.

Desativar a federação de identidade da carga de trabalho para o GKE na sua organização

Do ponto de vista da segurança, a federação de identidade da carga de trabalho para GKE permite que o GKE declare identidades de conta de serviço do Kubernetes que podem ser autenticadas e autorizadas nos recursos do Google Cloud. Se você é um administrador que realizou ações para isolar cargas de trabalho de recursos do Google Cloud, como desativar a criação de contas de serviço ou desativar a criação de chave de contas de serviço, talvez também queira desativar a Identidade da carga de trabalho para sua organização.

Consulte estas instruções para desativar a federação de identidade da carga de trabalho do GKE na sua organização.

Solução de problemas

Para informações sobre solução de problemas, consulte Solução de problemas da federação de identidade da carga de trabalho para o GKE.

A seguir