Este documento destina-se a administradores de clusters ou operadores de aplicações que querem configurar o GKE Identity Service nos respetivos clusters. Tem instruções sobre como configurar o serviço de identidade do GKE ao nível da frota nos seus clusters com o seu fornecedor de identidade preferencial.
Ativar APIs
Para começar, tem de ativar as APIs relevantes.
Consola
Certifique-se de que o projeto onde os clusters estão registados está selecionado.
-
Enable the GKE Hub and Kubernetes Engine APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
gcloud
Execute o seguinte comando para ativar as APIs necessárias para a configuração:
gcloud services enable
gkehub.googleapis.com
container.googleapis.com
Configure clusters
Para configurar os seus clusters de modo a usar o fornecedor escolhido, o GKE Identity Service precisa que especifique detalhes sobre o fornecedor de identidade, as informações nos tokens JWT que fornece para identificação do utilizador e outras informações facultadas quando regista o GKE Identity Service como uma aplicação cliente.
Por exemplo, se o seu fornecedor criar tokens de identidade com os seguintes campos (entre outros), em que iss
é o URI do fornecedor de identidade, sub
identifica o utilizador e groupList
lista os grupos de segurança aos quais o utilizador pertence:
{ 'iss': 'https://server.example.com' 'sub': 'u98523-4509823' 'groupList': ['developers@example.corp', 'us-east1-cluster-admins@example.corp'] ... }
… a sua configuração terá os seguintes campos correspondentes:
issueruri: 'https://server.example.com' username: 'sub' group: 'groupList' ...
O administrador da plataforma ou quem gere a identidade na sua organização deve fornecer-lhe a maioria das informações de que precisa para criar a configuração. Para ver configurações de exemplo de alguns fornecedores de identidade usados com frequência, consulte Configurações específicas do fornecedor.
O GKE Identity Service permite-lhe criar ou atualizar e aplicar esta configuração a partir da Google Cloud consola ou através da CLI do Google Cloud.
Consola
Ative o serviço de identidade do GKE
Na Google Cloud consola, aceda à página Gestor de funcionalidades.
Clique em Ativar no painel Serviço de identidade e, de seguida, clique novamente em Ativar no painel apresentado. Isto cria uma nova instância do controlador do GKE Identity Service para gerir o ciclo de vida do GKE Identity Service nos clusters da sua frota.
Selecione clusters
- Na página Gestor de funcionalidades, clique em Detalhes no painel Serviço de identidade para abrir o painel de detalhes do serviço. Apresenta os clusters do seu projeto e o respetivo estado do serviço de identidade do GKE ao nível da frota.
- Clique em Atualizar serviço de identidade para abrir o painel de configuração.
- Selecione os clusters que quer configurar. Só é possível selecionar tipos de clusters suportados. Pode escolher clusters individuais ou especificar que quer que todos os clusters sejam configurados com a mesma configuração de identidade. Se tiver configurado predefinições ao nível da frota, a configuração é reconciliada com a predefinição. Para mais informações, consulte o artigo Configure as predefinições ao nível da frota.
- No menu pendente Fornecedor de identidade, escolha como quer configurar o cluster. Se o cluster tiver uma configuração do GKE Identity Service existente, pode optar por atualizá-la. Se um cluster registado existente tiver uma configuração do GKE Identity Service que quer usar, pode optar por copiar essa configuração para os clusters selecionados. Para criar uma configuração completamente nova, siga as instruções do fornecedor escolhido, conforme descrito na secção seguinte.
Defina os detalhes do fornecedor
Os detalhes do fornecedor que tem de adicionar dependem do tipo de fornecedor de identidade que quer usar para a sua configuração.
OIDC
- Selecione Novo Open ID Connect para criar uma nova configuração do OIDC.
- Especifique o nome que quer usar para identificar esta configuração no campo Nome do fornecedor, normalmente o nome do fornecedor de identidade. Este nome tem de começar por uma letra, seguida de até 39 letras minúsculas, números ou hífenes, e não pode terminar com um hífen. Não pode editar este nome depois de criar uma configuração.
- Especifique o ID de cliente devolvido quando registar o serviço de identidade do GKE junto do seu fornecedor no campo ID de cliente.
- Especifique o segredo do cliente que tem de ser partilhado entre a aplicação cliente e o fornecedor de identidade no campo Segredo do cliente.
- Especifique o URI onde os pedidos de autorização são feitos ao seu fornecedor de identidade no campo URL do emissor.
- Clique em Seguinte para definir os atributos OIDC.
Azure AD
- Selecione Novo Azure Active Directory para criar uma nova configuração do Azure AD.
- Especifique o nome que quer usar para identificar esta configuração no campo Nome do fornecedor, normalmente o nome do fornecedor de identidade. Este nome tem de começar por uma letra, seguida de até 39 letras minúsculas, números ou hífenes, e não pode terminar com um hífen. Não pode editar este nome depois de criar uma configuração.
- Especifique o ID de cliente devolvido quando registar o serviço de identidade do GKE junto do seu fornecedor no campo ID de cliente.
- Especifique o segredo do cliente que tem de ser partilhado entre a aplicação cliente e o fornecedor de identidade no campo Segredo do cliente.
- Especifique o inquilino que é a conta do Azure AD a ser autenticada no Inquilino.
- Clique em Seguinte para definir os atributos do Azure AD.
LDAP
- Selecione LDAP para criar uma nova configuração LDAP.
- Especifique o nome que quer usar para identificar esta configuração no campo Nome do fornecedor, normalmente o nome do fornecedor de identidade. Este nome tem de começar por uma letra, seguida de até 39 letras minúsculas, números ou hífenes, e não pode terminar com um hífen. Não pode editar este nome depois de criar uma configuração.
- Clicar em Seguinte.
- Especifique o nome do anfitrião (obrigatório), o tipo de ligação LDAP e o certificado da AC codificado em base64 do servidor LDAP.
- Clique em Seguinte para configurar o servidor.
- Especifique o nome distinto, o filtro, o atributo de início de sessão e o atributo de identificador do utilizador.
- Clique em Seguinte para definir os detalhes do utilizador.
- Se optar por usar grupos, especifique o nome distinto, o filtro e o atributo identificador do grupo.
- Clique em Seguinte para definir os detalhes do grupo.
- Especifique o nome de utilizador e a palavra-passe da conta de serviço.
- Clique em Concluído para definir o nome da conta de serviço.
Defina atributos
Os atributos que tem de adicionar dependem do seu fornecedor de identidade e das opções de configuração escolhidas pelo administrador da plataforma quando configura o fornecedor para o serviço de identidade do GKE.
OIDC
Preencha os atributos de configuração:
kubectl
URI de redirecionamento: o URL e a porta de redirecionamento usados pela CLI gcloud e especificados pelo administrador da plataforma no registo, normalmente no formatohttp://localhost:PORT/callback
.- Autoridade de certificação (opcional): se fornecido pelo administrador da plataforma, uma string de certificado codificada em PEM para o fornecedor de identidade.
- Group Claim (afirmação de grupo) (opcional): a afirmação JWT (nome do campo) que o seu fornecedor usa para devolver os grupos de segurança de uma conta.
- Prefixo do grupo (opcional): o prefixo que quer antepor aos nomes dos grupos de segurança para evitar conflitos com os nomes existentes nas suas regras de controlo de acesso se tiver configurações para vários fornecedores de identidade (normalmente, o nome do fornecedor).
- Proxy (opcional): endereço do servidor proxy a usar para estabelecer ligação ao fornecedor de identidade, se aplicável. Pode ter de definir esta opção se, por exemplo, o seu cluster estiver numa rede privada e precisar de se ligar a um fornecedor de identidade público. Por exemplo:
http://user:password@10.10.10.10:8888
. - Âmbitos (opcional): âmbitos adicionais exigidos pelo seu fornecedor de identidade. O Microsoft Azure e o Okta requerem o âmbito
offline_access
. Clique em Adicionar âmbito para adicionar mais âmbitos, se necessário. - Reivindicação do utilizador (opcional): a reivindicação JWT (nome do campo) que o seu fornecedor usa para identificar uma conta. Se não especificar um valor aqui, o serviço de identidade do GKE usa "sub", que é a reivindicação de ID do utilizador usada por muitos fornecedores. Pode escolher outras reivindicações, como "email" ou "nome", consoante o fornecedor OpenID. As reivindicações que não sejam "email" têm o prefixo do URL do emissor para evitar conflitos de nomenclatura.
- Prefixo do utilizador (opcional): o prefixo que quer anteposto às reivindicações do utilizador para evitar conflitos com nomes existentes, se não quiser usar o prefixo predefinido.
- Parâmetros adicionais (opcional): quaisquer parâmetros adicionais necessários para a sua configuração, especificados como a chave e o valor do parâmetro. Clique em Adicionar parâmetro para adicionar mais parâmetros, se necessário.
- Ativar token de acesso (opcional): se ativado, permite o suporte de grupos para fornecedores de OIDC, como o Okta.
- Implemente Google Cloud o proxy da consola (opcional): se estiver ativado, é implementado um proxy que permite que a Google Cloud consola se ligue a um fornecedor de identidade no local que não seja acessível publicamente através da Internet.
Azure AD
Preencha os atributos de configuração:
kubectl
URI de redirecionamento: o URL e a porta de redirecionamento usados pela CLI gcloud e especificados pelo administrador da plataforma no registo, normalmente no formatohttp://localhost:PORT/callback
.- Reivindicação do utilizador (opcional): a reivindicação JWT (nome do campo) que o seu fornecedor usa para identificar uma conta. Se não especificar um valor aqui, o GKE Identity Service usa um valor na ordem de "email", "preferred_username" ou "sub" para obter os detalhes do utilizador.
- Proxy (opcional): endereço do servidor proxy a usar para estabelecer ligação ao fornecedor de identidade, se aplicável. Pode ter de definir esta opção se, por exemplo, o seu cluster estiver numa rede privada e precisar de se ligar a um fornecedor de identidade público. Por exemplo:
http://user:password@10.10.10.10:8888
.
Adicionar Fornecedor de identidade
- Se tiver fornecedores de identidade adicionais que queira configurar para a sua frota, tem a opção de os adicionar aqui. Siga os passos para especificar fornecedores de identidade adicionais.
Atualize a configuração
- Clique em Atualizar configuração. Isto instala o GKE Identity Service, se necessário (apenas para clusters do EKS; os clusters do GKE já têm o GKE Identity Service instalado por predefinição) e aplica a configuração do cliente nos clusters selecionados.
gcloud
Crie o ficheiro de configuração
O GKE Identity Service usa um tipo de recurso personalizado (CRD) do Kubernetes denominado ClientConfig para a configuração do cluster, com campos para todas as informações de que o GKE Identity Service precisa para interagir com o fornecedor de identidade.
As secções seguintes fornecem as configurações para OIDC e LDAP, onde cria um ficheiro denominado auth-config.yaml
com a sua configuração.
OIDC
O ficheiro seguinte mostra uma configuração oidc
e uma configuração azuread
. Para mais informações sobre quando usar oidc
ou azuread
, consulte o artigo Configurações específicas do fornecedor.
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: NAME
proxy: PROXY_URL
oidc:
certificateAuthorityData: CERTIFICATE_STRING
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
deployCloudConsoleProxy: PROXY_BOOLEAN
extraParams: EXTRA_PARAMS
groupsClaim: GROUPS_CLAIM
groupPrefix: GROUP_PREFIX
issuerURI: ISSUER_URI
kubectlRedirectURI: http://localhost:PORT/callback
scopes: SCOPES
userClaim: USER_CLAIM
userPrefix: USER_PREFIX
- name: NAME
proxy: PROXY_URL
azureAD:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
tenant: TENANT_UUID
kubectlRedirectURI: http://localhost:PORT/callback
Se tiver configurado mais do que um fornecedor de identidade, pode listar várias configurações de autenticação no ficheiro auth-config.yaml
sob a âncora authentication
no mesmo formato que na configuração anterior.
A tabela seguinte descreve os campos do objeto ClientConfig oidc
e azuread
. A maioria dos campos é opcional. Os campos que tem de adicionar dependem do seu fornecedor de identidade e das opções de configuração escolhidas pelo administrador da plataforma quando configura o fornecedor para o serviço de identidade do GKE.
Campo | Obrigatória | Descrição | Formato |
---|---|---|---|
nome | sim | O nome que quer usar para identificar esta configuração, normalmente o nome do fornecedor de identidade. Um nome de configuração tem de começar por uma letra, seguida de até 39 letras minúsculas, números ou hífenes, e não pode terminar com um hífen. | String |
certificateAuthorityData | Não | Se fornecido pelo administrador da plataforma, uma string de certificado com codificação PEM para o fornecedor de identidade. Inclua a string resultante em certificateAuthorityData como uma única linha. |
String |
clientID | Sim | O identificador do cliente devolvido quando registar o serviço de identidade do GKE junto do seu fornecedor. | String |
clientSecret | Sim | O segredo do cliente devolvido quando regista o serviço de identidade do GKE junto do seu fornecedor. | String |
deployCloudConsoleProxy | Não | Especifica se é implementado um proxy que permite que a Google Cloud consola se ligue a um fornecedor de identidade no local que não seja acessível publicamente através da Internet. Por predefinição, esta opção está definida como false . |
Booleano |
extraParams | Não | Parâmetros adicionais de chave=valor a enviar para o fornecedor de identidade, especificados como uma lista separada por vírgulas; por exemplo, `prompt=consent,access_type=offline`. | Lista delimitada por vírgulas |
enableAccessToken | Não | Se estiver ativado, o GKE Identity Service pode usar o ponto final userinfo do fornecedor de identidade para obter informações de grupos quando um utilizador inicia sessão a partir da linha de comandos. Isto permite-lhe usar grupos de segurança para autorização se tiver
um fornecedor (como o Okta) que forneça reivindicações de grupos a partir deste ponto final. Se não estiver definido, considera-se que é false . |
Booleano |
groupsClaim | Não | A reivindicação JWT (nome do campo) que o seu fornecedor usa para devolver os grupos de segurança de uma conta. | String |
groupPrefix | Não | O prefixo que quer antepor aos nomes dos grupos de segurança para evitar conflitos com os nomes existentes nas suas regras de controlo de acesso se tiver configurações para vários fornecedores de identidade (normalmente, o nome do fornecedor). | String |
issuerURI | Sim | O URI onde os pedidos de autorização são feitos ao seu fornecedor de identidade. O URI tem de usar HTTPS. | String de URL |
kubectlRedirectURI | Sim | O URL de redirecionamento e a porta usados pela CLI gcloud e especificados pelo administrador da plataforma no registo, normalmente no formato http://localhost:PORT/callback . |
String de URL |
âmbitos | Sim | Âmbitos adicionais a enviar para o fornecedor OpenID. Por exemplo, o Microsoft Azure e o Okta
requerem o âmbito offline_access . |
Lista delimitada por vírgulas |
userClaim | Não | A reivindicação JWT (nome do campo) que o seu fornecedor usa para identificar uma conta de utilizador. Se não especificar um valor aqui, o serviço de identidade do GKE usa "sub", que é a reivindicação de ID do utilizador usada por muitos fornecedores. Pode escolher outras reivindicações, como "email" ou "nome", consoante o fornecedor OpenID. As reivindicações que não sejam "email" têm o prefixo do URL do emissor para evitar conflitos de nomenclatura. | String |
userPrefix | Não | O prefixo que quer anteposto às reivindicações do utilizador para evitar conflitos com nomes existentes, se não quiser usar o prefixo predefinido. | String |
inquilino | Sim | O tipo de conta do Azure AD a autenticar. Os valores suportados são o ID do inquilino ou o nome do inquilino para contas pertencentes a um inquilino específico. O nome do inquilino também é conhecido como o domínio principal. Para ver detalhes sobre como encontrar estes valores, consulte o artigo Encontre o ID do inquilino e o nome do domínio principal do Microsoft Azure AD. | String |
proxy | Não | Endereço do servidor proxy a usar para estabelecer ligação ao fornecedor de identidade, se aplicável. Pode ter de definir esta opção se, por exemplo, o seu cluster estiver numa rede privada e precisar de se ligar a um fornecedor de identidade público. Por exemplo: http://user:password@10.10.10.10:8888 . |
String |
SAML
O ficheiro seguinte mostra uma configuração SAML
:
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: GROUPS_ATTRIBUTE
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: <>
A tabela seguinte descreve os campos do objeto ClientConfig saml
. Os campos que tem de adicionar dependem do seu fornecedor de identidade e das opções de configuração escolhidas pelo administrador da plataforma quando configura o fornecedor para o serviço de identidade do GKE.
Campo | Obrigatória | Descrição | Formato |
---|---|---|---|
nome | sim | O nome que quer usar para identificar esta configuração, normalmente o nome do fornecedor de identidade. Um nome de configuração tem de começar por uma letra, seguida de até 39 letras minúsculas, números ou hífenes, e não pode terminar com um hífen. | String |
idpEntityID | Sim | O ID da entidade SAML para o fornecedor SAML, especificado num formato URI. Por exemplo: https://www.idp.com/saml . |
String de URL |
idpSingleSignOnURI | Sim | O ponto final de SSO do fornecedor de SAML, especificado num formato de URI. Por exemplo: https://www.idp.com/saml/sso . |
String de URL |
idpCertificateDataList | Sim | Corresponde aos certificados do fornecedor de identidade usados para validar a resposta SAML. Estes certificados têm de estar codificados em Base64 padrão e no formato PEM. Só é suportado um máximo de dois certificados para facilitar a rotação de certificados do fornecedor de identidade. | String |
userAttribute | Não | Nome do atributo na resposta SAML que contém o nome de utilizador. | String |
groupsAttribute | Não | Nome do atributo na resposta SAML que contém as informações do grupo do utilizador. | String |
userPrefix | Não | O prefixo que quer anteposto às reivindicações do utilizador para evitar conflitos com nomes existentes, se não quiser usar o prefixo predefinido. | String |
groupPrefix | Não | O prefixo que quer antepor aos nomes dos grupos de segurança para evitar conflitos com os nomes existentes nas suas regras de controlo de acesso se tiver configurações para vários fornecedores de identidade (normalmente, o nome do fornecedor). | String |
attributeMapping | Não | O mapeamento de atributos de utilizador adicionais. | String |
certificateAuthorityData | Não | Se fornecido pelo administrador da plataforma, uma string de certificado com codificação PEM para o fornecedor 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 |
LDAP
O ficheiro seguinte mostra uma configuração ldap
.
apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
metadata:
name: default
namespace: kube-public
spec:
authentication:
- name: ldap
ldap:
server:
host: HOST_NAME
connectionType: CONNECTION_TYPE
certificateAuthorityData: CERTIFICATE_AUTHORITY_DATA
user:
baseDn: BASE_DN
loginAttribute: LOGIN_ATTRIBUTE
filter: FILTER
identifierAttribute: IDENTIFIER_ATTRIBUTE
group:
baseDn: BASE_DN
filter: FILTER
identifierAttribute: IDENTIFIER_ATTRIBUTE
serviceAccount:
simpleBindCredentials:
dn: DISTINGUISHED_NAME
password: PASSWORD
A tabela seguinte descreve os campos no objeto ClientConfig ldap
. Os campos que tem de adicionar dependem do seu fornecedor de identidade e das opções de configuração escolhidas pelo administrador da plataforma quando configura o fornecedor para o serviço de identidade do GKE:
Campo | Obrigatória | Descrição | Formato |
---|---|---|---|
nome | sim | Um nome para identificar esta configuração LDAP | String |
servidor | |||
anfitrião | sim | Nome do anfitrião ou endereço IP do servidor LDAP. A porta é opcional e a predefinição é 389, se não for especificada. Por exemplo, ldap.server.example.com ou 10.10.10.10:389 .
|
String |
connectionType | sim | Tipo de ligação LDAP a usar quando se liga ao servidor LDAP. Se starttls ou ldaps for especificado, o campo certificateAuthorityData não deve estar vazio.
|
String |
certificateAuthorityData | Obrigatório para determinados tipos de ligação LDAP | Contém um certificado da autoridade de certificação em formato PEM codificado em Base64 para o servidor LDAP. Tem de ser fornecido apenas para ligações ldaps e startTLS .
|
String |
utilizador | |||
baseDN | sim | A localização da subárvore no diretório LDAP para pesquisar entradas de utilizadores. | String no formato DN. |
loginAttribute | não | O nome do atributo que corresponde ao nome de utilizador introduzido. É usado para encontrar o utilizador na base de dados LDAP, por exemplo, (<LoginAttribute>=<username>) , e é combinado com o campo de filtro opcional. A predefinição é userPrincipalName .
|
String |
filtrar | não | Filtro opcional a aplicar quando pesquisa o utilizador. Isto pode ser usado para restringir ainda mais as contas de utilizador autorizadas a iniciar sessão. Se não for especificado, o fuso horário predefinido é (objectClass=User) .
|
String |
identifierAttribute | não | Determina que atributo usar como a identidade do utilizador após a autenticação.
Isto é diferente do campo loginAttribute para permitir que os utilizadores iniciem sessão com um nome de utilizador, mas que o respetivo identificador real seja um endereço de email ou um nome distinto (DN) completo. Por exemplo, definir loginAttribute
como sAMAccountName e identifierAttribute como userPrincipalName
permitiria que um utilizador iniciasse sessão como bsmith , mas as políticas RBAC reais para o utilizador seriam escritas como bsmith@example.com .
Recomendamos a utilização de userPrincipalName , uma vez que este valor é exclusivo para cada utilizador. Se não for especificado, a predefinição é userPrincipalName .
|
String |
group (Campo opcional) | |||
baseDN | sim | A localização da subárvore no diretório LDAP para pesquisar entradas de grupos. | String |
filtrar | não | Filtro opcional a usar quando pesquisar grupos aos quais um utilizador pertence. Isto pode ser usado para fazer a correspondência explícita apenas de determinados grupos, de modo a reduzir a quantidade de grupos devolvidos para cada utilizador. A predefinição é (objectClass=Group) .
|
String |
identifierAttribute | não | O nome de identificação de cada grupo ao qual um utilizador pertence. Por exemplo, se esta opção estiver definida como distinguishedName , os RBACs e outras expetativas de grupos devem ser escritos como DNs completos. Se não for especificado, a predefinição é distinguishedName .
|
String |
serviceAccount/simpleBindCredentials | |||
dn | sim | O nome distinto do utilizador da conta de serviço. | String |
palavra-passe | sim | A palavra-passe do utilizador da conta de serviço. | String |
Ative o serviço de identidade do GKE
Para ativar o GKE Identity Service para o seu projeto, execute o seguinte comando:
gcloud container fleet identity-service enable
Isto cria uma nova instância do controlador do serviço de identidade do GKE para gerir o ciclo de vida do serviço de identidade do GKE nos clusters da sua frota. Só tem de executar este comando uma vez por projeto para usar o serviço de identidade do GKE com todos os clusters suportados registados na frota do seu projeto.
Opcionalmente, pode ativar o serviço de identidade do GKE com uma configuração predefinida ao nível da frota. Com esta configuração, a configuração do fornecedor do GKE Identity Service que especificar é aplicada automaticamente a todos os clusters do GKE registados na sua frota durante a criação do cluster. Google Cloud Pode saber mais sobre como o fazer em Configure as predefinições ao nível da frota.
Aplique a configuração a um cluster
Para instalar o GKE Identity Service, se necessário (apenas para clusters do EKS; todos os outros tipos de clusters suportados já têm o GKE Identity Service instalado por predefinição) e aplicar a configuração a um cluster, execute o seguinte comando:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
Substitua CLUSTER_NAME
pelo nome exclusivo do cluster na frota.
Após a execução deste comando, a configuração é gerida pelo controlador do GKE Identity Service. Quaisquer alterações locais feitas à configuração do cliente do serviço de identidade do GKE são reconciliadas pelo controlador com a configuração especificada nesta configuração.
Isto permite que o GKE Identity Service obtenha informações dos Grupos Google para contas de utilizadores que iniciam sessão com o respetivo ID Google. Esta configuração é aplicável a clusters no Google Distributed Cloud (VMware e bare metal) a partir da versão 1.13 do GKE Enterprise. Para saber mais sobre a funcionalidade Grupos do Google, consulte o artigo Configure o gateway de ligação com o Grupos do Google.
Tenha em atenção que, se tiver uma configuração existente no cluster para quaisquer opções de autenticação, aplicam-se as seguintes condições:
- Se tiver configurações ao nível do cluster para fornecedores de OIDC, a aplicação de uma configuração do GKE Identity Service ao nível da frota ao cluster substitui todas as especificações de autenticação existentes.
- Se tiver configurações ao nível do cluster existentes para fornecedores que não são suportados para a configuração ao nível da frota, esta configuração falha. Tem de remover a configuração do fornecedor existente para aplicar a configuração ao nível da frota.
Se já não quiser que o controlador do GKE Identity Service faça a gestão da sua configuração, por exemplo, se quiser usar uma opção ou opções de autenticação diferentes, pode desativar esta funcionalidade seguindo as instruções em Desativar a gestão do GKE Identity Service.
Configurações específicas do fornecedor
Esta secção fornece orientações de configuração para fornecedores de OIDC (como o Azure AD e o Okta), incluindo um exemplo de configuração que pode copiar e editar com os seus próprios detalhes.
Azure AD
Esta é a configuração predefinida para configurar o GKE Identity Service com o Azure AD. A utilização desta configuração permite que o GKE Identity Service obtenha informações de utilizadores e grupos do Azure AD, e permite-lhe configurar o controlo de acesso baseado em funções (RBAC) do Kubernetes com base em grupos. No entanto, a utilização desta configuração limita a obtenção de aproximadamente 200 grupos por utilizador.
Se precisar de obter mais de 200 grupos por utilizador, consulte as instruções para o Azure AD (avançado).
...
spec:
authentication:
- name: oidc-azuread
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc
extraParams: prompt=consent, access_type=offline
issuerURI: https://login.microsoftonline.com/TENANT_ID/v2.0
kubectlRedirectURI: http://localhost:PORT/callback
scopes: openid,email,offline_access
userClaim: email
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Azure AD (avançado)
Esta configuração opcional para o Azure AD permite que o serviço de identidade do GKE obtenha informações de utilizadores e grupos sem limite no número de grupos por utilizador, através da API Microsoft Graph. Para ver informações sobre as plataformas que suportam esta configuração, consulte o artigo Configuração avançada para o Azure AD.
Se precisar de obter menos de 200 grupos por utilizador, recomendamos que use a configuração predefinida com um ponto de ancoragem oidc
no seu ClientConfig. Para mais informações, consulte as instruções
para o Azure AD.
Todos os campos na configuração de exemplo são obrigatórios.
...
spec:
authentication:
- name: azure
azureAD:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
tenant: TENANT_UUID
kubectlRedirectURI: http://localhost:PORT/callback
groupFormat: GROUP_FORMAT
userClaim: USER_CLAIM
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Substitua GROUP_FORMAT pelo formato no qual quer obter informações do grupo. Este campo pode assumir valores correspondentes a ID
ou NAME
dos grupos de utilizadores. Esta definição só está disponível para clusters em implementações do Google Distributed Cloud (no local).
Okta
A imagem seguinte mostra como configurar a autenticação usando utilizadores e grupos com o Okta como fornecedor de identidade. Esta configuração permite que o serviço de identidade do GKE obtenha reivindicações de utilizadores e grupos através de um token de acesso e do ponto final userinfo do Okta.
...
spec:
authentication:
- name: okta
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc
enableAccessToken: true
extraParams: prompt=consent
groupsClaim: groups
issuerURI: https://OKTA_ISSUER_URI/
kubectlRedirectURI: http://localhost:PORT/callback
scopes: offline_access,email,profile,groups
userClaim: email
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Configure predefinições ao nível da frota
Pode ativar o GKE Identity Service com uma configuração predefinida ao nível da frota. Com esta configuração, todos os novos clusters do GKE no Google Cloud registados durante a criação do cluster ou cluster do GKE têm o serviço de identidade do GKE ativado automaticamente no cluster com a configuração que especificar. Se tiver clusters de membros da frota existentes quando ativa esta funcionalidade, estes não são atualizados automaticamente com as predefinições da frota, embora possa optar por aplicar-lhes a configuração predefinida. Para mais informações sobre a gestão da configuração ao nível da frota, consulte o artigo Faça a gestão das funcionalidades ao nível da frota.
Para configurar o GKE Identity Service com uma configuração predefinida ao nível da frota, faça o seguinte:
- Crie um ficheiro com o nome
fleet-default.yaml
e preencha-o de acordo com o artigo Crie o ficheiro de configuração. Ative o serviço de identidade do GKE com a configuração predefinida ao nível da frota:
gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
Para modificar a configuração predefinida ao nível da frota ou adicionar uma se o GKE Identity Service já estiver ativado na sua frota sem esta funcionalidade, execute o seguinte comando:
gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
Os clusters de membros da frota existentes que registou antes de configurar a configuração predefinida ao nível da frota não herdam automaticamente a configuração predefinida. Para aplicar a configuração predefinida a um cluster de membros da frota existente, execute o seguinte comando:
gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
Para desativar as predefinições ao nível da frota para o serviço de identidade do GKE, execute o seguinte comando para remover a configuração predefinida:
gcloud container fleet identity-service delete --fleet-default-member-config
Valide a configuração do serviço de identidade
Depois de concluir a configuração ao nível da frota, pode verificar se os clusters na sua frota foram configurados com êxito com a configuração do serviço de identidade que especificou.
Consola
Na Google Cloud consola, aceda à página Gestor de funcionalidades.
Aceda ao Gestor de funcionalidades
Todas as funcionalidades ativadas são apresentadas como Ativadas no respetivo painel.
Clique em DETALHES no painel Serviço de identidade. Um painel de detalhes apresenta o estado dos seus clusters registados.
gcloud
Execute o seguinte comando:
gcloud container fleet identity-service describe
O que se segue?
Depois de configurar os clusters, continue a configurar o acesso do utilizador.