Neste documento, fornecemos orientações de solução de problemas para acesso do usuário no GKE Identity Service.
gcloud anthos create-login-config não consegue acessar clientconfig
Esse problema ocorre em um dos seguintes casos:
- O arquivo kubeconfig transmitido para
gcloud anthos create-login-configestá incorreto. - O recurso personalizado ClientConfig não está presente no cluster. O GKE Identity Service não está instalado no cluster.
Mensagem de erro
failed to get clientconfig default in namespace kube-public
Solução
Para resolver esse problema, faça o seguinte:
- Verifique se você tem o arquivo kubeconfig correto para o cluster.
Para verificar se o recurso personalizado ClientConfig está no cluster, execute o seguinte comando:
kubectl --kubeconfig KUBECONFIG get clientconfig default -n kube-public
Se o ClientConfig não estiver presente no cluster, instale e configure o GKE Identity Service no cluster. Para mais informações sobre as opções de configuração de cluster, consulte Opções de configuração de clusters.
gcloud anthos create-login-config falha devido a um nome de cluster duplicado
Esse problema ocorre se você tentar criar uma configuração de login para um cluster em um arquivo que já contenha uma configuração de login para este cluster.
Mensagem de erro
error merging with file FILENAME because FILENAME contains a
cluster with the same name as the one read from KUBECONFIG.
Solução
Para resolver esse problema, use a sinalização --output para especificar um novo arquivo de destino.
Se você não fornecer --output, esses dados de configuração de login serão gravados em um
arquivo chamado kubectl-anthos-config.yaml no diretório atual.
gcloud anthos auth login falha com proxyconnect tcp
Esse problema ocorre quando há um erro nas configurações da variável de ambiente
https_proxy ou HTTPS_PROXY. Se houver um https:// especificado nas
variáveis de ambiente, as bibliotecas de cliente HTTP do GoLang poderão falhar se o
proxy estiver configurado para processar conexões HTTPS usando outros protocolos, como
SOCK5.
Mensagem de erro
proxyconnect tcp: tls: first record does not look like a TLS handshake
Solução
Para resolver esse problema, modifique as variáveis de ambiente https_proxy e HTTPS_PROXY
para omitir o https:// prefix. No Windows, modifique as variáveis
de ambiente do sistema.
Por exemplo, altere o valor da variável de ambiente
https_proxy de https://webproxy.example.com:8000 para
webproxy.example.com:8000.
O acesso ao cluster falha ao usar o kubeconfig gerado por gcloud anthos auth login
Esse problema ocorre quando o servidor da API Kubernetes não consegue autorizar o usuário por um dos seguintes motivos:
- Há um erro na configuração usada para fazer login com o comando
gcloud anthos auth login. - As políticas do RBAC necessárias estão incorretas ou ausentes para o usuário.
Mensagem de erro
Unauthorized
Solução
Para resolver esse problema, faça o seguinte:
Verifique a configuração usada para fazer login.
Configuração do OIDC
A seção
authentication.oidcno arquivo de configuração do cluster de usuário tem os camposgroupeusernameusados para definir as sinalizações--oidc-group-claime--oidc-username-claimno servidor da API Kubernetes. Quando o servidor da API é apresentado com o token de identidade de um usuário, ele encaminha o token para o GKE Identity Service, que retorna ogroup-claime ousername-claimextraídos de volta para o servidor da API. O servidor da API usa a resposta para verificar se o grupo ou usuário correspondente tem as permissões corretas.Verifique se as declarações definidas para
groupeuserna seçãoauthentication.oidcdo arquivo de configuração do cluster estão presentes no token de ID.Verificar as políticas de RBAC aplicadas.
Para saber como configurar as políticas corretas do RBAC para o GKE Identity Service, consulte Configurar o controle de acesso baseado em função (RBAC).
RBACs para grupos que não funcionam com provedores OIDC
Verificar se o token de ID tem as informações do grupo
Depois de executar o comando
gcloud anthos auth loginpara iniciar o fluxo de autenticação do OIDC, o token de ID será armazenado no arquivokubeconfigno campoid-token. Use jwt.io para decodificar o token de ID e verificar se ele contém as informações de grupo do usuário, conforme o esperado.Se o token de ID não tiver informações do grupo do usuário, configure corretamente o provedor OIDC para retornar as informações do grupo de acordo com a documentação do provedor OIDC. Por exemplo, se estiver usando a configuração OIDC do provedor de identidade Okta, siga a documentação do provedor para configurar grupos no token de ID.
Se o token de ID tiver informações de grupo, verifique se a chave de informações no token de ID corresponde ao campo
groupsClaimconfigurado na seçãooidc.Por exemplo, se o token de ID contiver informações do grupo na chave
groups:"groups" : ["group1", "group2" ...]o valor do campo
groupsClaimserágroupsna seçãooidc.Depois de modificar a configuração na seção
oidc, execute as instruções listadas em Configurar o acesso do usuário e Como acessar clusters novamente.
Solução de problemas de provedores de identidade
Se você tiver problemas para usar o OIDC ou LDAP com o cluster do GKE, siga as etapas desta seção para resolver problemas do GKE Identity Service e ajudar a determinar se há um problema com a configuração do provedor de identidade.
Ativar o registro de depuração do GKE Identity Service
Para ajudar a resolver problemas relacionados à identidade no cluster, ative o registro de depuração do GKE Identity Service.
Corrija o cluster atual com
kubectl patch:kubectl patch deployment ais \ -n anthos-identity-service --type=json \ -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--vmodule=cloud/identity/hybrid/charon/*=LOG_LEVEL"}]' \ --kubeconfig KUBECONFIGSubstitua:
LOG_LEVEL: para registros mais detalhados, defina esse valor no nível3ao resolver problemas.KUBECONFIG: o caminho para o arquivo kubeconfig do cluster de usuário.
Verificar o registro de contêiner do GKE Identity Service
Analise se há erros ou avisos no conteúdo dos registros de contêiner do GKE Identity Service.
Para analisar os registros, use
kubectl logs:kubectl logs -f -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIGSubstitua
KUBECONFIGpelo caminho para o arquivo kubeconfig do cluster de usuário.
Reinicie o pod do GKE Identity Service
Se os registros do contêiner mostrarem problemas, reinicie o pod do GKE Identity Service.
Para reiniciar o pod do GKE Identity Service, exclua o pod atual. Um novo pod é criado automaticamente como substituição.
kubectl delete pod -l k8s-app=ais \ -n anthos-identity-service \ --kubeconfig KUBECONFIGSubstitua
KUBECONFIGpelo caminho para o arquivo kubeconfig do cluster de usuário.
Resolver problemas de conectividade com o provedor de identidade
Se o pod do GKE Identity Service estiver em execução corretamente, teste a conectividade com o provedor de identidade remoto.
Inicie um pod movimentado no mesmo namespace que o pod do GKE Identity Service:
kubectl run curl --image=radial/busyboxplus:curl \ -n anthos-identity-service -- sleep 3000 \ --kubeconfig KUBECONFIGSubstitua
KUBECONFIGpelo caminho para o arquivo kubeconfig do cluster de usuário.Para verificar se é possível buscar o URL de descoberta, execute no pod movimentado e execute o comando
curl:kubectl exec pod/curl -n anthos-identity-service -- \ curl ISSUER_URL \ --kubeconfig KUBECONFIGSubstitua:
ISSUER_URL: o URL do emissor do provedor de identidade.KUBECONFIG: o caminho para o arquivo kubeconfig do cluster de usuário.
Uma resposta bem-sucedida é um resultado JSON com os endpoints detalhados do provedor de identidade.
Se o comando anterior não retornar o resultado esperado, entre em contato com o administrador do provedor de identidade para receber mais ajuda.
O login LDAP não está funcionando no cluster de administrador do Google Distributed Cloud
No momento, o LDAP é compatível apenas com o cluster de usuário do Google Distributed Cloud.