Inicie sessão através de um ficheiro de configuração

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

  1. 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.
  2. Atualize o kubeconfig: o token obtido é adicionado automaticamente ao seu ficheiro kubeconfig.
  3. 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

  1. 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.
  2. Autentique: introduza as suas credenciais e inicie sessão com êxito.
  3. 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

  1. Inicie sessão: execute o comando gcloud anthos auth login e introduza as suas credenciais de início de sessão do LDAP.
  2. 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.
  3. Atualização do Kubeconfig: o token STS é adicionado automaticamente ao seu ficheiro kubeconfig.
  4. 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 gcloudautenticaçã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:

  1. 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 ficheiro kubeconfig.

      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 ficheiro kubeconfig 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.

  2. 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 comandos kubectl vão usar para autenticar com o servidor da API Kubernetes no seu cluster.

  3. Verifique se a autenticação foi bem-sucedida executando um dos comandos kubectlpara 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