Fazer login usando um arquivo de configuração
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 compartilhar um arquivo de configuração de login para usar ao autenticar com a CLI gcloud. Para mais informações sobre como acessar clusters, consulte Escolher um método de acesso para fazer login nos clusters.
Fluxo de trabalho de login
Confira a seguir o fluxo de trabalho que o serviço de identidade do GKE usa para fazer login em clusters configurados usando um arquivo de configuração de login. O fluxo exato depende do tipo de provedor de identidade usado.
Fluxo de trabalho OIDC
Com os provedores OIDC, um administrador de cluster registra o serviço de identidade do GKE como um aplicativo cliente para o provedor de identidade e configura cada cluster. Eles podem adicionar controles de acesso detalhados usando o controle de acesso baseado em papéis (RBAC) do Kubernetes, se necessário.
É possível fazer login nos clusters das seguintes maneiras:
Acesso à linha de comando
- Autenticar: execute o comando
gcloud anthos auth login
e insira suas credenciais de login do OIDC. Isso recupera um token de identidade do provedor. - Atualize o Kubeconfig: o token recuperado é adicionado automaticamente ao arquivo kubeconfig.
- Cluster de acesso: use
kubectl
para interagir com o cluster. O servidor da API Kubernetes usa o serviço de identidade do GKE para validar seu token e autorizar o acesso.
Acesso ao console do Google Cloud
- Iniciar login: ao fazer login no console do Google Cloud, você é redirecionado para a página de login do provedor de identidade.
- Autenticar: insira suas credenciais e faça login.
- Cluster de acesso: volte ao console do Google Cloud para visualizar e gerenciar os recursos do cluster.
Fluxo de trabalho LDAP
Com os provedores LDAP, um administrador de cluster configura o serviço de identidade do GKE para cada cluster, o que inclui as credenciais do cliente LDAP. Os administradores do cluster podem adicionar um controle de acesso refinado usando o controle de acesso baseado em papéis (RBAC) do Kubernetes, se necessário.
Acesso à linha de comando
- Inicie o login: execute o comando
gcloud anthos auth login
e digite suas credenciais de login LDAP. - Geração de token: o serviço de identidade do GKE consulta o servidor LDAP, recupera os atributos de usuário e os empacota em um token de curta duração (STS). Suas credenciais LDAP não são armazenadas localmente.
- Atualização do Kubeconfig: o token STS é adicionado automaticamente ao arquivo
kubeconfig
. - Acesso ao cluster: use
kubectl
para interagir com o cluster. O servidor da API Kubernetes usa o serviço de identidade do GKE para validar seu token e autorizar o acesso. Por padrão, o token expira depois de uma hora, exigindo que o usuário faça login novamente.
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.
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]
Substitua:
[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. Para mais informações, consulte Escolher um método de autenticação.
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
Para se conectar a uma máquina remota e autenticar um cluster com SSH, o arquivo de configuração de autenticação precisa estar na máquina remota e você precisa conseguir acessar o provedor OpenID da máquina local.
Na máquina local, execute o comando a seguir:
ssh [USER_NAME]@[REMOTE_MACHINE] -L [LOCAL_PORT]:localhost:[REMOTE_PORT]
Substitua:
[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