Resolver problemas de acesso do usuário
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-config
está 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.oidc
no arquivo de configuração do cluster de usuário tem os camposgroup
eusername
usados para definir as sinalizações--oidc-group-claim
e--oidc-username-claim
no 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-claim
e ousername-claim
extraí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
group
euser
na seçãoauthentication.oidc
do 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 login
para iniciar o fluxo de autenticação do OIDC, o token de ID será armazenado no arquivokubeconfig
no 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
groupsClaim
configurado 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
groupsClaim
serágroups
na 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 KUBECONFIG
Substitua:
LOG_LEVEL
: para registros mais detalhados, defina esse valor no nível3
ao 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 KUBECONFIG
Substitua
KUBECONFIG
pelo 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 KUBECONFIG
Substitua
KUBECONFIG
pelo 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 KUBECONFIG
Substitua
KUBECONFIG
pelo 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 KUBECONFIG
Substitua:
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.