O GKE Identity Service permite-lhe iniciar sessão em clusters configurados a partir da linha de comandos através de um nome de utilizador e uma palavra-passe de um fornecedor de identidade de terceiros. Siga as instruções nesta página se o administrador do cluster tiver optado por partilhar um ficheiro de configuração de início de sessão para usar na autenticação com a CLI gcloud. Para mais informações sobre como aceder a clusters, consulte o artigo Escolha um método de acesso para iniciar sessão em clusters.
Fluxo de trabalho de início de sessão
Segue-se o fluxo de trabalho que o GKE Identity Service usa para lhe permitir iniciar sessão em clusters configurados através de um ficheiro de configuração de início de sessão. O fluxo exato depende do tipo de fornecedor de identidade usado.
Fluxo de trabalho do OIDC
Com os fornecedores OIDC, um administrador do cluster regista o GKE Identity Service como uma aplicação cliente para o fornecedor de identidade e configura cada cluster. Se necessário, podem adicionar um controlo de acesso detalhado através do controlo de acesso baseado em funções (CABF) do Kubernetes.
Pode iniciar sessão em clusters das seguintes formas:
Acesso à linha de comandos
- Autentique: execute o comando
gcloud anthos auth login
e introduza as suas credenciais de início de sessão do OIDC. Isto obtém um token de identidade do fornecedor. - Atualize o kubeconfig: o token obtido é adicionado automaticamente ao seu ficheiro kubeconfig.
- Aceder ao cluster: use
kubectl
para interagir com o cluster. O servidor da API Kubernetes usa o serviço de identidade do GKE para validar o seu token e autorizar o acesso.
Acesso àGoogle Cloud console
- Iniciar sessão: quando inicia sessão a partir da Google Cloud consola, é redirecionado para a página de início de sessão do fornecedor de identidade.
- Autentique: introduza as suas credenciais e inicie sessão com êxito.
- Aceder ao cluster: regresse à Google Cloud consola para ver e gerir os recursos do cluster.
Fluxo de trabalho LDAP
Com os fornecedores de LDAP, um administrador do cluster configura o serviço de identidade do GKE para cada cluster, o que inclui as credenciais do cliente LDAP. Os administradores de clusters podem adicionar um controlo de acesso detalhado através do controlo de acesso baseado em funções (CABF) do Kubernetes, se necessário.
Acesso à linha de comandos
- Inicie sessão: execute o comando
gcloud anthos auth login
e introduza as suas credenciais de início de sessão do LDAP. - Geração de tokens: o serviço de identidade do GKE consulta o servidor LDAP, obtém os atributos do utilizador e agrupa estes atributos num token de curta duração (STS). As suas credenciais LDAP não são armazenadas localmente.
- Atualização do Kubeconfig: o token STS é adicionado automaticamente ao seu ficheiro
kubeconfig
. - Acesso ao cluster: use
kubectl
para interagir com o seu cluster. O servidor da API Kubernetes usa o serviço de identidade do GKE para validar o seu token e autorizar o acesso. Por predefinição, o token expira após uma hora, o que exige que o utilizador inicie sessão novamente.
Para se autenticar em clusters a partir da linha de comandos, tem de executar gcloud
comandos de autenticação, usando um ficheiro de configuração de início de sessão fornecido pelo administrador do cluster.
Obtenha o ficheiro de configuração
A CLI gcloud assume um nome de ficheiro e uma localização predefinidos na sua máquina local para o ficheiro de configuração de autenticação. O seu administrador pode copiar o ficheiro para o seu computador. Se o ficheiro lhe for fornecido manualmente e precisar de o guardar no seu computador, use as predefinições para simplificar os comandos de gcloud
autenticação.
Use os seguintes comandos para copiar o ficheiro de configuração de autenticação para a localização predefinida:
Linux
mkdir -p $HOME/.config/google/anthos/ cp [AUTH_CONFIG_FILE] $HOME/.config/google/anthos/kubectl-anthos-config.yaml
onde [AUTH_CONFIG_FILE] é o nome do ficheiro 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
onde [AUTH_CONFIG_FILE] é o nome do ficheiro 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"
onde [AUTH_CONFIG_FILE] é o nome do ficheiro de configuração de autenticação. Por exemplo, kubectl-anthos-config.yaml
.
Se você ou o seu administrador optarem por usar um nome de ficheiro ou uma localização diferente (por exemplo, se o administrador estiver a fornecer o ficheiro num URL seguro), pode especificar esta opção através da flag --login-config
com cada um dos seus pedidos de autenticação. Consulte a secção seguinte para ver mais detalhes.
Autentique-se no cluster
Execute comandos gcloud
para autenticar com os seus 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 o seguinte:
[CLUSTER_NAME] (opcional) especifica o nome do seu cluster. Se esta flag for omitida, é-lhe pedido que escolha entre os clusters especificados no ficheiro de configuração de autenticação.
[USER_NAME] (opcional) especifica o nome de utilizador das credenciais armazenadas no ficheiro
kubeconfig
. O valor predefinido é[CLUSTER_NAME]-anthos-default-user
.[AUTH_CONFIG_FILE_PATH] (opcional) especifica o caminho personalizado ou o URL onde o ficheiro de configuração de autenticação está armazenado ou alojado. Pode omitir este parâmetro se o ficheiro estiver na localização predefinida. Exemplo:
--login-config /path/to/custom/authentication-config.yaml
[CA_CERT_PEM_FILE] (opcional) especifica o caminho para um ficheiro de certificado PEM da sua CA. Se o ficheiro de configuração de autenticação estiver alojado de forma segura, pode usar uma ligação HTTPS para aceder ao ficheiro. Exemplo:
--login-config-cert my-cert.pem
[CLUSTER_KUBECONFIG] (opcional) especifica o caminho personalizado para o ficheiro
kubeconfig
do seu cluster. Os tokens de ID OIDC devolvidos pelo seu fornecedor OpenID são armazenados no ficheirokubeconfig
.Use esta flag se o seu ficheiro
kubeconfig
estiver numa localização diferente da predefinição. Se esta flag for omitida, os tokens de autenticação são adicionados ao ficheirokubeconfig
na localização predefinida. Exemplo:--kubeconfig /path/to/custom.kubeconfig
Exemplos:
Autentique-se num cluster específico:
gcloud anthos auth login --cluster my-production-cluster
Use um comando para selecionar o cluster com o qual se autenticar:
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 ficheiro de configuração de autenticação alojado:
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 comando para selecionar uma opção de autenticação. Para mais informações, consulte o artigo Escolha um método de autenticação.
Introduza as suas credenciais no ecrã de consentimento baseado no navegador que é aberto. Se isto for bem-sucedido, o ficheiro
kubeconfig
deve conter agora um token de ID que os comandoskubectl
vão usar para autenticar com o servidor da API Kubernetes no seu cluster.Verifique se a autenticação foi bem-sucedida executando um dos comandos
kubectl
para aceder a um recurso no seu cluster. Por exemplo, se tiver acesso ao recurso "nodes" no cluster (este acesso é configurado pelo administrador do cluster), deve conseguir executar o seguinte comando e ver os nós do cluster:kubectl get nodes --kubeconfig [CLUSTER_KUBECONFIG]
Para obter informações de resolução de problemas relacionadas com o acesso de utilizadores, consulte o artigo Resolva problemas de acesso de utilizadores.
Escolha um método de autenticação
Se o administrador do cluster tiver configurado vários fornecedores de identidade para o seu cluster (por exemplo, um fornecedor OIDC e um servidor LDAP) e não tiver configurado um fornecedor predefinido para o seu cluster, é-lhe pedido que selecione uma opção de autenticação no momento do início de sessão, como no exemplo seguinte:
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]
Introduza uma opção numérica e, em seguida, continue a iniciar sessão conforme descrito em Autentique-se no cluster acima.
A opção de autenticação escolhida é guardada até que o administrador do cluster altere o fornecedor predefinido para este cluster ou até que a altere. Para alterar a opção de autenticação preferida, use a flag --set-preferred-authentication
.
gcloud anthos auth login --set-preferred-authentication
Deve ver um resultado semelhante ao exemplo seguinte, que lhe permite escolher uma nova opção de autenticação preferencial:
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]
Use SSH para autenticar a partir de uma máquina remota
Para estabelecer ligação a uma máquina remota e autenticar-se num cluster com SSH, o ficheiro de configuração de autenticação tem de estar na máquina remota e tem de conseguir aceder ao seu fornecedor OpenID a partir da máquina local.
Na sua máquina local, execute o seguinte comando:
ssh [USER_NAME]@[REMOTE_MACHINE] -L [LOCAL_PORT]:localhost:[REMOTE_PORT]
Substitua o seguinte:
[USER_NAME] e [REMOTE_MACHINE] são os valores padrão usados para iniciar sessão com SSH.
[LOCAL_PORT] é uma porta aberta à sua escolha na máquina local que vai usar para aceder à máquina remota.
[REMOTE_PORT] é a porta que configurou para o URL de redirecionamento do OIDC. Pode encontrar esta informação no campo
kubectlRedirectURI
do ficheiro de configuração de autenticação.
Na shell SSH, execute o seguinte comando para iniciar a autenticação:
gcloud anthos auth login --login-config [AUTH_CONFIG_FILE]
onde [AUTH_CONFIG_FILE] é o caminho do seu ficheiro de configuração de autenticação na máquina remota.
No seu computador local, num navegador, aceda a http://localhost:[LOCAL_PORT]/login e conclua o fluxo de início de sessão do OIDC.
Agora, o ficheiro kubeconfig na sua máquina remota tem o token de que precisa para aceder ao cluster.
Na shell SSH, verifique se tem acesso ao cluster:
kubectl --kubeconfig [CLUSTER_KUBECONFIG] get nodes