Configurar clusters do serviço de identidade do GKE com LDAP
Este documento é destinado a administradores de cluster ou operadores de aplicativos que querem configurar o serviço de identidade do GKE em clusters individuais, permitindo que desenvolvedores e outros usuários façam login nos clusters com os detalhes de identidade atuais de um provedor de Linguagem de marcação para autorização de segurança (SAML). O guia pressupõe que você leu a visão geral do serviço de identidade do GKE. As instruções neste documento presumem que o sGKE Identity Service já tenha sido registrado com seu provedor de identidade como um aplicativo cliente.
Antes de começar
- Verifique se o administrador da plataforma forneceu todas as informações necessárias em Registrar o serviço de identidade do GKE com seu provedor antes de iniciar a configuração.
Verifique se você tem as seguintes ferramentas de linha de comando instaladas:
- Use a versão 466.0.0 da CLI do Google Cloud ou uma versão mais recente, que inclui
gcloud
, a ferramenta de linha de comando para interagir com o Google Cloud. Se você precisar instalar a Google Cloud CLI, consulte o guia de instalação. kubectl
para executar comandos em clusters do Kubernetes. Se precisar instalarkubectl
, siga estas instruções.
Se você estiver usando o Cloud Shell como ambiente shell para interagir com o Google Cloud, essas ferramentas estarão instaladas.
- Use a versão 466.0.0 da CLI do Google Cloud ou uma versão mais recente, que inclui
Verifique se você inicializou a CLI gcloud para uso com o projeto em que os clusters estão registrados.
Configurar o cluster
O serviço de identidade do GKE usa um tipo de recurso personalizado (CRD) especial do Kubernetes para configurar os clusters chamados ClientConfig, com campos para informações sobre o provedor de identidade e os parâmetros necessários para retornar as informações do usuário.
kubectl
Para editar o ClientConfig padrão, conecte-se ao cluster
por meio do kubectl
e execute o seguinte comando:
kubectl --kubeconfig=KUBECONFIG_PATH edit ClientConfigs default -n kube-public
Substitua KUBECONFIG_PATH
pelo caminho para o
arquivo kuneconfig do cluster, por exemplo, $HOME/.kube/config
.
Um editor de texto carrega o recurso ClientConfig do cluster. Adicione o objeto saml
conforme indicado no snippet.
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: NAME
saml:
idpEntityID: ENTITY_ID
idpSingleSignOnURI: SIGN_ON_URI
idpCertificateDataList: IDP_CA_CERT
userAttribute: USER_ATTRIBUTE
groupsAttribute: {'<var name="user attribute">GROUPS_ATTRIBUTE</var>'}}
userPrefix: USER_PREFIX
groupPrefix: GROUP_PREFIX
attributeMapping:
ATTRIBUTE_KEY_1 : ATTRIBUTE_CEL_EXPRESSION_1
ATTRIBUTE_KEY_2 : ATTRIBUTE_CEL_EXPRESSION_2
certificateAuthorityData: CERTIFICATE_STRING
preferredAuthentication: PREFERRED_AUTHENTICATION
server: <>
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
A tabela a seguir descreve os campos do objeto saml
do ClientConfig. Os
campos que você precisa adicionar dependem do provedor de identidade e das opções de configuração escolhidas pelo administrador da plataforma ao configurar o provedor para o serviço de identidade do GKE.
Campo | Obrigatório | Descrição | Formato |
---|---|---|---|
nome | Sim | O nome que você quer usar para identificar essa configuração, normalmente o nome do provedor de identidade. O nome de configuração precisa começar com uma letra seguida por até 39 letras minúsculas, números ou hifens, mas não pode terminar com um hífen. | String |
idpEntityID | Sim | O ID da entidade SAML do provedor de SAML, especificado em um formato de URI. Por exemplo, https://www.idp.com/saml . |
String do URL |
idpSingleSignOnURI | sim | O endpoint de SSO do provedor SAML, especificado em um formato URI. Por exemplo, https://www.idp.com/saml/sso . |
String do URL |
idpCertificateDataList | Sim | Corresponde aos certificados do provedor de identidade usados para verificar a resposta SAML. Esses certificados precisam ser codificados em base64 padrão e formatados no formato PEM. Apenas dois certificados são aceitos para facilitar a rotação de certificados do provedor de identidade. | String |
userAttribute | Não | O nome do atributo na resposta SAML que contém o nome de usuário. | String |
groupsAttribute | Não | Nome do atributo na resposta SAML que contém as informações sobre o grupo do usuário. | String |
userPrefix | Não | O prefixo que você quer adicionar ao início das declarações do usuário para evitar conflitos com nomes existentes, se não quiser usar o prefixo padrão. | String |
groupPrefix | Não | O prefixo que você quer adicione ao início dos nomes dos grupos de segurança para evitar conflitos com nomes existentes nas suas regras de controle de acesso se você tiver configurações para vários provedores de identidade (normalmente o nome do provedor). | String |
attributeMapping | Não | O mapeamento de atributos adicionais do usuário. | String |
certificateAuthorityData | Não | Se fornecida pelo administrador da plataforma, ela é uma string de certificado codificada em PEM
para o provedor de identidade. Inclua a string resultante em certificateAuthorityData como uma única linha. |
String |
preferredAuthentication | Não | Nome do método de autenticação preferido configurado no cluster. | String |
Depois de concluir o ClientConfig, salve o arquivo, que atualiza o ClientConfig no cluster. Se você cometeu erros de sintaxe, será solicitado que reedite a configuração para corrigi-los.
A seguir
Depois que a configuração for aplicada, defina o acesso do usuário a clusters.