Como acessar clusters com o serviço de identidade do GKE
O serviço de identidade do GKE é um serviço de autenticação que permite usar os provedores de identidade existentes da organização para autenticar clusters em vários ambientes do GKE Enterprise. Dessa forma, você pode usar o mesmo ID para registrar clusters no Google Cloud, no local e em outras nuvens públicas. Este documento é destinado a desenvolvedores e outros usuários de cluster do GKE que precisam acessar clusters usando este serviço. Se você precisar fazer login em clusters usando o ID do Google Cloud pelo gateway de conexão, consulte Como usar o gateway de conexão.
Se você é um administrador de cluster ou plataforma que precisa configurar o serviço de identidade do GKE para sua organização ou equipe, consulte as Informações gerais do serviço para conhecer os ambientes de cluster compatíveis, outros pré-requisitos e os guias de configuração relevantes.
Faça login em clusters na linha de comando
Para autenticar clusters na linha de comando, execute os comandos de autenticação gcloud
usando um arquivo de configuração de login especial fornecido pelo administrador do cluster.
Antes de começar
Verifique se você tem as seguintes ferramentas de linha de comando instaladas:
- A versão mais recente da Google Cloud CLI, que inclui
gcloud
, a ferramenta de linha de comando para interagir com o Google Cloud. Se você precisar instalar a Google Cloud CLI, consulte o guia de instalação. kubectl
para executar comandos em clusters do Kubernetes. Se precisar instalarkubectl
, consulte o guia de instalação
- A versão mais recente da Google Cloud CLI, que inclui
Execute os comandos a seguir para instalar ou atualizar o componente
anthos-auth
:gcloud components update gcloud components install anthos-auth
Verifique se a ferramenta foi instalada com sucesso executando o seguinte comando:
gcloud anthos auth version
Se uma versão for retornada, sua instalação foi bem-sucedida.
Receber o arquivo de configuração
A CLI gcloud pressupõe um nome de arquivo e local padrão na máquina local para
o arquivo de configuração de autenticação. O administrador pode copiar o arquivo para sua máquina. Se você fornecer o arquivo
manualmente e precisar salvá-lo na sua máquina, use os padrões para simplificar os
comandos de autenticação gcloud
.
Use os comandos a seguir para copiar o arquivo de configuração de autenticação para o local padrão:
Linux
mkdir -p $HOME/.config/google/anthos/ cp [AUTH_CONFIG_FILE] $HOME/.config/google/anthos/kubectl-anthos-config.yaml
[AUTH_CONFIG_FILE] é o nome do arquivo de
configuração de autenticação. Por exemplo, kubectl-anthos-config.yaml
.
macOS
mkdir -p $HOME/Library/Preferences/google/anthos/ cp [AUTH_CONFIG_FILE] $HOME/Library/Preferences/google/anthos/kubectl-anthos-config.yaml
[AUTH_CONFIG_FILE] é o nome do arquivo de
configuração de autenticação. Por exemplo, kubectl-anthos-config.yaml
.
Windows
md "%APPDATA%\google\anthos" copy [AUTH_CONFIG_FILE] "%APPDATA%\google\anthos\kubectl-anthos-config.yaml"
[AUTH_CONFIG_FILE] é o nome do arquivo de
configuração de autenticação. Por exemplo, kubectl-anthos-config.yaml
.
Se você ou seu administrador optarem por usar um nome de arquivo ou local diferente (por exemplo, se o administrador estiver fornecendo o arquivo em um URL seguro), especifique isso usando a sinalização --login-config
com cada uma das solicitações de autenticação. Consulte a seção a seguir para mais detalhes.
Autenticar no cluster
Execute os comandos gcloud
para autenticar com os clusters:
Execute o comando
gcloud anthos auth login
para iniciar o fluxo de autenticação:gcloud anthos auth login \ --cluster [CLUSTER_NAME] \ --user [USER_NAME] \ --login-config [AUTH_CONFIG_FILE_PATH] \ --login-config-cert [CA_CERT_PEM_FILE] \ --kubeconfig [CLUSTER_KUBECONFIG]
onde:
[CLUSTER_NAME] (opcional) especifica o nome do cluster. Se essa sinalização for omitida, você será solicitado a escolher entre os clusters especificados no arquivo de configuração de autenticação.
[USER_NAME] (opcional) especifica o nome de usuário das credenciais armazenadas no arquivo
kubeconfig
. O valor padrão é[CLUSTER_NAME]-anthos-default-user
.[AUTH_CONFIG_FILE_PATH] opcional: especifica o caminho ou URL personalizado em que arquivo de configuração de autenticação é armazenado ou hospedado. É possível omitir esse parâmetro se o arquivo estiver no local padrão. Exemplo:
--login-config /path/to/custom/authentication-config.yaml
;[CA_CERT_PEM_FILE] (opcional) especifica o caminho para um arquivo de certificado PEM da CA. Se o arquivo de configuração de autenticação estiver hospedado com segurança, é possível usar uma conexão HTTPS para acessar o arquivo. Exemplo:
--login-config-cert my-cert.pem
[CLUSTER_KUBECONFIG] (opcional) especifica o caminho personalizado para o arquivo
kubeconfig
do cluster. Os tokens de ID OIDC retornados pelo seu provedor OpenID são armazenados no arquivokubeconfig
.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 arquivokubeconfig
no local padrão. Exemplo:--kubeconfig /path/to/custom.kubeconfig
Exemplos:
Autentique-se em um cluster específico:
gcloud anthos auth login --cluster my-production-cluster
Use um prompt para selecionar o cluster a ser autenticado:
gcloud anthos auth login
Resultado:
Please use the --cluster flag to specify a cluster from the list below: Source: $HOME/.config/google/anthos/kubectl-anthos-config.yaml 1. Cluster: projects/1000000000000/locations/global/memberships/gke-gcp-cluster ServerIP: https://104.198.180.50:440 2. Cluster: projects/1000000000000/locations/global/memberships/gke-baremetal-cluster ServerIP: https://104.198.180.51:440 3. Cluster: projects/1000000000000/locations/global/memberships/gke-onprem-cluster ServerIP: https://104.198.180.52:440 4. Cluster: projects/1000000000000/locations/global/memberships/gke-aws-cluster ServerIP: https://104.198.180.53:440
Use um arquivo de configuração de autenticação hospedada:
gcloud anthos auth login \ --cluster my-production-cluster \ --login-config HTTPS://my-secure-server/kubectl-anthos-config.yaml \ --login-config-cert my-cert.pem
Use um prompt para selecionar uma opção de autenticação. Saiba mais sobre isso, incluindo um exemplo, em Escolher uma opção de autenticação abaixo.
Digite suas credenciais na tela de consentimento baseada no navegador que é aberta. Se isso funcionar, o arquivo
kubeconfig
deverá conter um token de ID que os comandoskubectl
usarão para se autenticar com o servidor da API Kubernetes no cluster.Verifique se a autenticação foi bem-sucedida. Basta executar um dos comandos
kubectl
para acessar um recurso no cluster. Por exemplo, se você tiver acesso ao recurso "nós" no cluster (esse acesso é configurado pelo administrador do cluster), será possível executar o comando a seguir e visualizar os nós do cluster:kubectl get nodes --kubeconfig [CLUSTER_KUBECONFIG]
Para resolver problemas de acesso do usuário, consulte Resolver problemas de acesso do usuário.
Escolher um método de autenticação
Se o administrador do cluster tiver configurado vários provedores de identidade para o cluster (por exemplo, um provedor OIDC e um servidor LDAP) e não tiver configurado um provedor padrão para o cluster, você será solicitado a fazer login para selecionar uma opção de autenticação, como no exemplo a seguir:
gcloud anthos auth login
Please select your preferred authentication option for cluster [gke-onprem-ldap]
[1] LDAP Server
[2] OIDC
[3] cancel
Please enter your numeric choice:
1
Setting Preferred Authentication option to [LDAP Server]
Insira uma opção numérica e continue o login conforme descrito em Autenticar no cluster acima.
A opção de autenticação escolhida é salva até que o administrador do cluster altere o provedor padrão para o cluster ou você mesmo o altere. Para alterar sua opção de autenticação preferida, use a sinalização --set-preferred-authentication
.
gcloud anthos auth login --set-preferred-authentication
Você verá um resultado como o exemplo a seguir, que permite escolher uma nova opção de autenticação preferida:
Your current authentication method is [1] AD Server. Please select your preferred authentication option for cluster [gke-onprem-ldap]
[1] LDAP Server
[2] OIDC
[3] cancel
Please enter your numeric choice:
2
Setting Preferred Authentication option to [OIDC]
Como usar SSH para autenticação em uma máquina remota
Suponha que você queira usar SSH em uma máquina remota e utilizá-la para fazer a autenticação em um cluster. Para isso, é necessário que o arquivo de configuração de autenticação esteja na máquina remota, e você precisa conseguir acessar seu provedor Open ID da máquina local.
Na máquina local, execute o comando a seguir:
ssh [USER_NAME]@[REMOTE_MACHINE] -L [LOCAL_PORT]:localhost:[REMOTE_PORT]
em que:
[USER_NAME] e [REMOTE_MACHINE] são os valores padrão usados para fazer login com SSH;
[LOCAL_PORT] é uma porta aberta de sua escolha na máquina local que você usará para acessar a máquina remota;
[REMOTE_PORT] é a porta que você configurou para o URL de redirecionamento OIDC. Acesse o campo
kubectlRedirectURI
do arquivo de configuração de autenticação.
No shell SSH, execute o comando a seguir para iniciar a autenticação:
gcloud anthos auth login --login-config [AUTH_CONFIG_FILE]
[AUTH_CONFIG_FILE] é o caminho do arquivo de configuração de autenticação na máquina remota.
Na máquina local, em um navegador, acesse http://localhost:[LOCAL_PORT]/login e conclua o fluxo de login do OIDC.
Agora, o arquivo kubeconfig na sua máquina remota tem o token necessário para acessar o cluster.
No shell SSH, verifique se você tem acesso ao cluster:
kubectl --kubeconfig [CLUSTER_KUBECONFIG] get nodes
Fazer login em clusters no console do Google Cloud (somente provedores OIDC)
Siga as instruções em Trabalhar com clusters no console do Google Cloud.