Faça login usando um nome de domínio totalmente qualificado (FQDN)

O serviço de identidade do GKE permite que você faça login em clusters configurados a partir da linha de comando usando um nome de usuário e senha de um provedor de identidade de terceiros. Siga as instruções nesta página se o administrador do cluster tiver optado por permitir a autenticação diretamente no servidor do serviço de identidade do GKE com um nome de domínio totalmente qualificado (FQDN). Para provedores SAML, o acesso de login é compatível apenas com essa abordagem de autenticação.

Essa abordagem de autenticação é compatível apenas com clusters locais (Google Distributed Cloud) em VMware e bare metal, a partir da versão 1.29. Outros tipos de cluster não são suportados.

É preciso ter pelo menos a versão 477.0.0 da CLI gcloud para fazer login com o FQDN fornecido.

Fluxo de trabalho de login

Aqui estão as etapas do fluxo de trabalho quando um usuário faz login usando a abordagem de acesso FQDN:

  1. Iniciar login: o usuário executa o comando gcloud anthos auth login --server APISERVER-URL para iniciar o processo de login.
  2. Seleção de provedor de identidade: o usuário recebe uma lista de provedores de identidade configurados. O usuário seleciona o provedor onde suas credenciais são armazenadas.
  3. Autenticação com provedor de identidade: o processo de autenticação difere com base no protocolo do provedor de identidade escolhido:

    • OIDC: o usuário é redirecionado para a página de login do provedor OIDC. Após um login bem-sucedido, o provedor envia um código de volta ao serviço de identidade do GKE, que o troca por um token de acesso por meio de uma comunicação de canal traseiro.
    • SAML: o usuário é redirecionado para a página de login do provedor SAML. Após um login bem-sucedido, o provedor envia diretamente um token (declaração) de volta ao serviço de identidade do GKE, evitando um callback extra.
    • LDAP: em vez de redirecionar para um provedor externo, o serviço de identidade do GKE exibe uma página de login em que o usuário insere as credenciais LDAP, que é verificada diretamente com o servidor LDAP.
  4. Verificação de token e geração de arquivo kubeconfig: o serviço de identidade do GKE verifica o token recebido (ou declaração), cria um novo token para o usuário e envia de volta um arquivo kubeconfig contendo esse token.

  5. Acesso ao cluster: o usuário pode acessar o cluster usando comandos kubectl. O cliente kubectl envia automaticamente o token do arquivo kubeconfig com cada solicitação.

  6. Validação de token e autorização RBAC: o servidor da API Kubernetes recebe o token, o serviço de identidade do GKE verifica esse token e recupera as declarações do usuário (nome de usuário e grupos). Após a validação bem-sucedida, o servidor API executa verificações de controle de acesso baseado em função (RBAC) para determinar os recursos que o usuário está autorizado a acessar.

Faça login usando certificados SNI confiáveis

Os certificados SNI simplificam o acesso ao cluster aproveitando os certificados confiáveis já presentes em dispositivos corporativos. Os administradores podem especificar este certificado no momento da criação do cluster. Se o seu cluster usar um certificado SNI confiável no nível do cluster, use o comando nesta seção com o FQDN fornecido pelo seu administrador para fazer login no cluster e receber um token de acesso. Você também pode usar um arquivo kubeconfig seguro onde o token é armazenado após a autenticação bem-sucedida.

Execute o seguinte comando para autenticar no servidor:

gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE

Substitua:

  • APISERVER-URL: FQDN do servidor da API Kubernetes do cluster.
  • OUTPUT_FILE: use essa sinalização se o arquivo kubeconfig estiver em um local diferente do padrão. Se essa sinalização for omitida, os tokens de autenticação serão adicionados ao arquivo kubeconfig no local padrão. Por exemplo: --kubeconfig /path/to/custom.kubeconfig.

Fazer login usando certificados emitidos pela AC do cluster

Se você não usar um certificado SNI confiável no nível do cluster, o certificado usado pelo serviço de identidade será emitido pela autoridade certificadora (AC) do cluster. Os administradores distribuem esse certificado de CA para os usuários. Execute o seguinte comando usando o certificado de CA do cluster para fazer login no cluster:

gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --login-config-cert CLUSTER_CA_CERTIFICATE

Autenticação entre dispositivos

A autenticação entre dispositivos permite fazer login em clusters do Google Distributed Cloud (GDC) em dispositivos que não têm um navegador instalado. Você pode iniciar o processo de autenticação no dispositivo principal (que não tem um navegador instalado) e concluí-lo em um dispositivo secundário com um navegador instalado.

Siga as etapas abaixo para configurar a autenticação entre dispositivos.

  1. Fazer login no dispositivo principal

    Execute o comando a seguir para autenticar-se no servidor usando o dispositivo principal. Especifique o argumento --no-browser para indicar que o dispositivo usado para acessar o cluster não tem um navegador instalado.

    gcloud anthos auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --no-browser

    O serviço de identidade do GKE retorna um comando que precisa ser usado ao fazer login no segundo dispositivo. Este é um exemplo do comando:

    You are authorizing gcloud CLI without access to a web browser. Please run the following command on a machine with a web browser and copy its output back here.
    
    gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --remote-bootstrap="URL_TO_COPY_ON_THE_SECOND_DEVICE"
    
    Enter the output of the above command:
    

    Copie o comando gcloud.

  2. Fazer login nos clusters usando o segundo dispositivo

    Antes de fazer login no segundo dispositivo, verifique se o navegador está instalado e se há conectividade de rede com o servidor da API Kubernetes. Execute o comando copiado da etapa anterior no segundo dispositivo.

    gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --remote-bootstrap="URL_TO_COPY_ON_THE_SECOND_DEVICE"
    

    Ao tentar fazer login nesse dispositivo, uma mensagem de alerta será exibida. Siga o processo de autenticação padrão conforme ele é exibido no navegador. Depois da autenticação, você vai receber um código único. Copie esse código.

    WARNING: The following line enables access to your Cluster resources. ONLY COPY IT TO A MACHINE YOU TRUST AND RUN 'gcloud auth login --server APISERVER-URL --kubeconfig OUTPUT_FILE --no-browser' EARLY ON.
    
    Or_mHYQFm90efgJdwhajx0KeC_WXkuvBPuWv_83nFX9J_Eawm3tQcBpxBBWszj6Ix8dAWCgc1QjJBrlt67bzIYIBTexU7dc_ggtkMTNkG7wCIGYZ75zfg9P1gBshP33STe0ks-AoVonzk01YekMbyNugeYSO18CBwFhaDDSMABq4PI-clgbaSh8CPqrvDKRLenbvfD9BSK6SW945I0bOgPURxNzUX4sICWcvFozhQdLYICuwRM0AgarNFwoeh-0wbJGyRqUjq2NJbaYdf-VCaByiZaGPR2B1QVGXO7deKGtUnk1_tTFOnB6sJQvT6UJ8Ge5nkR38rqBeeGkYdlVIBTXShENG80An1Ve524xZupSzCHNSVTJqYg
    
  3. Concluir o login no dispositivo principal

    Cole o código copiado da etapa anterior no prompt do dispositivo principal.

    Enter the code you received on the other device: Or_mHYQFm90efgJdwhajx0KeC_WXkuvBPuWv_83nFX9J_Eawm3tQcBpxBBWszj6Ix8dAWCgc1QjJBrlt67bzIYIBTexU7dc_ggtkMTNkG7wCIGYZ75zfg9P1gBshP33STe0ks-AoVonzk01YekMbyNugeYSO18CBwFhaDDSMABq4PI-clgbaSh8CPqrvDKRLenbvfD9BSK6SW945I0bOgPURxNzUX4sICWcvFozhQdLYICuwRM0AgarNFwoeh-0wbJGyRqUjq2NJbaYdf-VCaByiZaGPR2B1QVGXO7deKGtUnk1_tTFOnB6sJQvT6UJ8Ge5nkR38rqBeeGkYdlVIBTXShENG80An1Ve524xZupSzCHNSVTJqYg
    

    O dispositivo usa esse código para gerar uma credencial que é salva em um arquivo kubeconfig. Esse arquivo permite o acesso ao cluster no dispositivo principal. Ao fazer login, a seguinte mensagem será exibida:

     You are logged in!
     Context is stored under the name '{cluster-name}'