Configurar clusters com o GKE Identity Service no nível da frota
Este documento é destinado a administradores de cluster ou operadores de aplicativos que querem configurar o GKE Identity Service nos clusters deles. Ele contém instruções sobre como configurar o serviço de identidade do GKE no nível da frota nos clusters com o provedor de identidade de sua preferência.
Ativar APIs
Para começar, ative as APIs relevantes.
Console
Verifique se o projeto em que os clusters estão registrados está selecionado.
-
Enable the GKE Hub and Kubernetes Engine APIs.
gcloud
Execute o seguinte comando para ativar as APIs necessárias para configuração:
gcloud services enable
gkehub.googleapis.com
container.googleapis.com
Configurar clusters
Para configurar os clusters para usar o provedor escolhido, o GKE Identity Service precisa especificar detalhes sobre o provedor de identidade, as informações nos tokens JWT fornecidos para identificação do usuário e outras informações fornecidas ao registrar o GKE Identity Service como um aplicativo cliente.
Por exemplo, se seu provedor criar tokens de identidade com os seguintes campos (entre outros), em que iss
é o URI do provedor de identidade, sub
identifica o usuário e groupList
lista os grupos de segurança a que o usuário pertence:
{ 'iss': 'https://server.example.com' 'sub': 'u98523-4509823' 'groupList': ['developers@example.corp', 'us-east1-cluster-admins@example.corp'] ... }
...a configuração terá os seguintes campos correspondentes:
issueruri: 'https://server.example.com' username: 'sub' group: 'groupList' ...
O administrador da plataforma ou quem gerencia a identidade na sua organização, deve fornecer a você a maior parte das informações necessárias para criar a configuração. Veja exemplos de configurações de alguns provedores de identidade usados com frequência em Configurações específicas do provedor.
O GKE Identity Service permite criar ou atualizar e aplicar essa configuração no Console do Google Cloud ou usando a Google Cloud CLI.
Console
Ativar o GKE Identity Service
No console do Google Cloud, acesse a página Gerenciador de recursos.
Clique em Ativar no painel Serviço de identidade e em Ativar novamente no painel que aparece. Isso cria uma nova instância do controlador do GKE Identity Service para gerenciar o ciclo de vida do GKE Identity Service nos clusters da frota.
Selecionar clusters
- Na página Gerenciador de recursos, clique em Detalhes no painel Serviço de identidade para abrir o painel de detalhes do serviço. Isso exibe os clusters do projeto e o status do GKE Identity Service no nível da frota.
- Clique em Atualizar serviço de identidade para abrir o painel de configuração.
- Selecione os clusters que você quer configurar. Somente tipos de cluster compatíveis podem ser selecionados. É possível escolher clusters individuais ou especificar que todos os clusters sejam configurados com a mesma configuração de identidade. Se você tiver configurado padrões em nível de frota, a configuração será reconciliada de volta para o padrão. Para mais informações, consulte Configurar padrões no nível da frota.
- Na lista suspensa Provedor de identidade, escolha como você quer configurar os clusters. Se o cluster tiver uma configuração existente do GKE Identity Service, você poderá optar por atualizá-la. Se um cluster registrado atual tiver uma configuração do GKE Identity Service que você queira usar, é possível copiar essa configuração para os clusters selecionados. Para criar uma configuração completamente nova, siga as instruções para o provedor escolhido, conforme descrito na próxima seção.
Definir informações do provedor
Os detalhes do provedor que você precisa adicionar dependem do tipo de provedor de identidade que você quer usar para a configuração.
OIDC
- Selecione New Open ID Connect para criar uma configuração do OIDC.
- Especifique o nome que você quer usar para identificar essa configuração no campo Nome do provedor, geralmente o nome do provedor de identidade. O nome 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. Depois de criar uma configuração, não será possível editar o nome.
- Especifique o ID do cliente retornado ao registrar o GKE Identity Service com seu provedor no campo ID do cliente.
- Especifique a chave secreta do cliente que precisa ser compartilhada entre o aplicativo cliente e o provedor de identidade no campo Chave secreta do cliente.
- Especifique o URI em que as solicitações de autorização são feitas para seu provedor de identidade no campo Emissor URL.
- Clique em Próxima para definir os atributos do OIDC.
Azure AD
- Selecione Novo Azure Active Directory para criar uma nova configuração do Azure AD.
- Especifique o nome que você quer usar para identificar essa configuração no campo Nome do provedor, geralmente o nome do provedor de identidade. O nome 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. Depois de criar uma configuração, não será possível editar o nome.
- Especifique o ID do cliente retornado ao registrar o GKE Identity Service com seu provedor no campo ID do cliente.
- Especifique a chave secreta do cliente que precisa ser compartilhada entre o aplicativo cliente e o provedor de identidade no campo Chave secreta do cliente.
- Especifique o locatário que será a conta do Azure AD a ser autenticada no Locatário.
- Clique em Próxima para definir os atributos do Azure AD.
LDAP
- Selecione LDAP para criar uma configuração LDAP.
- Especifique o nome que você quer usar para identificar essa configuração no campo Nome do provedor, geralmente o nome do provedor de identidade. O nome 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. Depois de criar uma configuração, não será possível editar o nome.
- Clique em Próxima.
- Especifique o nome do host (obrigatório), o tipo de conexão LDAP e o certificado de CA codificado em base64 do servidor LDAP.
- Clique em Próxima para configurar o servidor.
- Especifique o nome distinto, o filtro, os atributos de login e o identificador do usuário.
- Clique em Avançar para definir os detalhes do usuário.
- Se você optar por usar grupos, especifique o nome distinto, o filtro e o atributo do identificador do grupo.
- Clique em Próxima para definir os detalhes do grupo.
- Especifique o nome de usuário e a senha da conta de serviço.
- Clique em Concluído para definir o nome da conta de serviço.
Definir atributos
Os atributos 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 GKE Identity Service.
OIDC
Preencha os atributos de configuração:
- URI de redirecionamento
kubectl
: o URL de redirecionamento e a porta usados pela gcloud CLI e especificados pelo administrador da plataforma no registro, geralmente no formatohttp://localhost:PORT/callback
. - Autoridade certificadora (opcional): se fornecida pelo administrador da plataforma, uma string de certificado codificada em PEM para o provedor de identidade.
- Reivindicação de grupo (opcional): a declaração do JWT (nome do campo) que o provedor usa para retornar os grupos de segurança de uma conta.
- Prefixo do grupo (opcional): é o prefixo que você quer anexar aos nomes dos grupos de segurança para evitar conflitos com os nomes atuais nas regras de controle de acesso caso tenha configurações para vários provedores de identidade (geralmente o nome do provedor).
- Proxy (opcional): endereço do servidor proxy a ser usado para se conectar ao provedor de identidade, se aplicável. Talvez seja necessário defini-lo se, por exemplo, o cluster estiver em uma rede particular e precisar se conectar a um provedor de identidade público. Por exemplo,
http://user:password@10.10.10.10:8888
. - Escopos (opcional): quaisquer escopos adicionais exigidos pelo seu provedor de identidade. O Microsoft Azure e o Okta exigem o escopo
offline_access
. Clique em Adicionar escopo para adicionar mais escopos, se necessário. - Declaração de usuário (opcional): a declaração do JWT (nome do campo) que seu provedor usa para identificar uma conta. Se você não especificar um valor aqui, o GKE Identity Service usará "sub", que é a declaração do User ID usada por muitos provedores. Você pode escolher outras declarações, como "e-mail" ou "nome", dependendo do provedor OpenID. Declarações que não sejam "email" são prefixadas com o URL do emissor para evitar conflitos de nomenclatura.
- Prefixo do usuário (opcional): é o prefixo que você quer adicionar ao prefixo do usuário para evitar conflitos com nomes atuais caso não queira usar o prefixo padrão.
- Parâmetros adicionais (opcional): quaisquer parâmetros extras necessários para a configuração, especificados como Chave e Valor. Clique em Adicionar parâmetro para adicionar mais parâmetros, se necessário.
- Ativar token de acesso (opcional): se ativado, ele permite o suporte de grupos para provedores OIDC, como Okta.
- Implantar o proxy do Console do Google Cloud (opcional): se ativado, um proxy será implantado para permitir que o Console do Google Cloud se conecte a um provedor de identidade local que não seja acessível publicamente pela Internet.
- URI de redirecionamento
Azure AD
Preencha os atributos de configuração:
- URI de redirecionamento
kubectl
: o URL de redirecionamento e a porta usados pela gcloud CLI e especificados pelo administrador da plataforma no registro, geralmente no formatohttp://localhost:PORT/callback
. - Declaração de usuário (opcional): a declaração do JWT (nome do campo) que seu provedor usa para identificar uma conta. Se você não especificar um valor aqui, o serviço de identidade do GKE usará um valor na ordem "email", "preferred_username" ou "sub" para buscar os detalhes do usuário.
- Proxy (opcional): endereço do servidor proxy a ser usado para se conectar ao provedor de identidade, se aplicável. Talvez seja necessário defini-lo se, por exemplo, o cluster estiver em uma rede particular e precisar se conectar a um provedor de identidade público. Por exemplo,
http://user:password@10.10.10.10:8888
.
- URI de redirecionamento
Adicionar provedor de identidade
- Se você tiver outros provedores de identidade para configurar, terá a opção de adicioná-los aqui. Siga as etapas para especificar outros provedores de identidade.
Atualizar a configuração
- Clique em Atualizar configuração. Isso instala o GKE Identity Service, se necessário (somente clusters do EKS, os clusters do GKE já têm o GKE Identity Service instalado por padrão) e aplica a configuração do cliente nos clusters selecionados.
gcloud
Crie o arquivo de configuração
O GKE Identity Service usa um tipo de recurso personalizado (CRD, na sigla em inglês) do Kubernetes chamado ClientConfig para configuração de cluster, com campos para todas as informações de que o GKE Identity Service precisa para interagir com o provedor de identidade.
As seções a seguir fornecem as configurações do OIDC e LDAP onde você cria um arquivo chamado auth-config.yaml
com sua configuração.
OIDC
O arquivo a seguir mostra uma configuração oidc
e uma configuração azuread
. Para mais informações sobre quando usar oidc
ou azuread
, consulte Configurações específicas do provedor.
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 você configurou mais de um provedor de identidade, é possível listar várias configurações de autenticação no arquivo auth-config.yaml
na âncora authentication
no mesmo formato da configuração anterior.
A tabela a seguir descreve os campos do objeto oidc
e azuread
do ClientConfig. A maioria dos campos é opcional. 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 |
certificateAuthorityData | Não | Se fornecida pelo administrador da plataforma, uma string de certificado codificada em PEM para o provedor de identidade. Inclua a string
resultante em certificateAuthorityData como uma única linha. |
String |
clientID | Sim | O identificador do cliente retornado ao registrar o GKE Identity Service no seu provedor. | String |
clientSecret | Sim | A chave secreta do cliente retornada ao registrar o GKE Identity Service com seu provedor. | String |
deployCloudConsoleProxy | Não | Especifica se um proxy é implantado que permite que o console do Cloud se conecte a um provedor de identidade local que não seja acessível publicamente pela Internet. Por padrão, essa opção é definida como false . |
Booleano |
extraParams | Não | Parâmetros de chave=valor adicionais a serem enviados ao provedor 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 ativado, o GKE Identity Service poderá usar o endpoint userinfo do provedor de identidade para receber informações de grupos quando um usuário fizer login a partir da linha de comando. Isso permite que você use grupos de segurança para autorização se
tiver um provedor (como o Okta) que forneça declarações de grupo a partir desse endpoint. Se
não for definido, será considerado false . |
Booleano |
groupsClaim | Não | A declaração do JWT (nome do campo) que seu provedor usa para retornar os grupos de segurança de uma conta. | String |
groupPrefix | Não | O prefixo que você quer adicionar aos 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 |
issuerURI | Sim | O URI em que as solicitações de autorização são feitas para seu provedor de identidade. O URI precisa usar HTTPS. | String do URL |
kubectlRedirectURI | Sim | O URL de redirecionamento e a porta usados pela gcloud CLI e especificados pelo administrador da plataforma no registro, geralmente no formato http://localhost:PORT/callback . |
String do URL |
escopos | Sim | Outros escopos a serem enviados ao provedor OpenID. Por exemplo, o Microsoft Azure e o Okta
exigem o escopo offline_access . |
Lista delimitada por vírgulas |
userClaim | Não | A declaração do JWT (nome do campo) que o provedor usa para identificar uma conta de usuário. Se você não especificar um valor aqui, o GKE Identity Service usará "sub", que é a declaração do User ID usada por muitos provedores. Você pode escolher outras declarações, como "e-mail" ou "nome", dependendo do provedor OpenID. Declarações que não sejam "email" são prefixadas com o URL do emissor para evitar conflitos de nomenclatura. | String |
userPrefix | Não | Se você não quiser usar o prefixo padrão, o prefixo que você quer adicionar ao nome do usuário evita conflitos com nomes existentes. | String |
locatário | Sim | O tipo de conta do Azure AD a ser autenticada. Os valores aceitos são o ID ou o nome do locatário das contas que pertencem a um locatário específico. O nome do locatário também é conhecido como domínio principal. Veja detalhes sobre como encontrar esses valores em Encontrar o ID do locatário e o nome de domínio principal do Microsoft Azure AD. | String |
proxy | Não | Endereço do servidor proxy a ser usado para se conectar ao provedor de identidade, se aplicável. Talvez seja necessário defini-lo se, por exemplo, o cluster estiver em uma rede particular e precisar se conectar a um provedor de identidade público. Por exemplo, http://user:password@10.10.10.10:8888 . |
String |
SAML
O arquivo a seguir 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 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 de SAML, especificado em formato de 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 | Se você não quiser usar o prefixo padrão, o prefixo que você quer adicionar ao nome do usuário evita conflitos com nomes existentes. | String |
groupPrefix | Não | O prefixo que você quer adicionar aos 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, 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 |
LDAP
O arquivo a seguir 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 a seguir descreve os campos do objeto ldap
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 | Um nome para identificar essa configuração LDAP | String |
servidor | |||
host | sim | Nome do host ou endereço IP do servidor LDAP. A porta é opcional e o padrão será 389, se não for especificada. Por exemplo, ldap.server.example.com ou 10.10.10.10:389 .
|
String |
connectionType | sim | Tipo de conexão LDAP a ser usada na conexão com o servidor LDAP. Se starttls ou ldaps for especificado, o campo certificationAuthorityData não poderá ficar em branco.
|
String |
certificateAuthorityData | Obrigatório para determinados tipos de conexão LDAP | Contém um certificado de autoridade de certificação no formato PEM codificado em Base64 para o servidor LDAP. Isso precisa ser fornecido apenas para
conexões ldaps e startTLS .
|
String |
usuário | |||
baseDN | sim | O local da subárvore no diretório LDAP para pesquisar entradas de usuário. | String no formato DN. |
loginAttribute | não | O nome do atributo que corresponde ao nome de usuário de entrada. Isso é usado para encontrar o usuário no banco de dados LDAP, por exemplo, (<LoginAttribute>=<username>) e é combinado com o campo de filtro opcional. O padrão é userPrincipalName .
|
String |
filtro | não | Filtro opcional a ser aplicado ao pesquisar o usuário. Isso pode ser usado para restringir ainda mais as contas de usuário que têm permissão para fazer login. Se não for especificado, (objectClass=User) assumirá como padrão.
|
String |
identifierAttribute | não | Determina qual atributo usar como identidade do usuário depois de ser autenticado.
Isso é diferente do campo loginAttribute para permitir que os usuários façam login com um nome de usuário, mas tenham o identificador real como um endereço de e-mail ou nome distinto (DN) completo. Por exemplo, definir loginAttribute como sAMAccountName e identifierAttribute como userPrincipalName permitiria que um usuário fizesse login como bsmith , mas as políticas reais do RBAC para o usuário seriam gravadas como bsmith@example.com .
É recomendável usar userPrincipalName , porque ele será exclusivo para cada usuário. Se não for especificado, o padrão será userPrincipalName .
|
String |
grupo (campo opcional) | |||
baseDN | sim | O local da subárvore no diretório LDAP para pesquisar as entradas do grupo. | String |
filtro | não | Filtro opcional a ser usado ao pesquisar grupos a que um usuário pertence. Isso pode ser usado para corresponder explicitamente apenas a determinados grupos de modo a reduzir a quantidade de grupos retornados para cada usuário. O padrão é (objectClass=Group) .
|
String |
identifierAttribute | não | O nome de identificação de cada grupo a que um usuário pertence. Por exemplo, se isso for definido como distinguishedName , os RBACs e outras expectativas do grupo serão gravados como DNs completos. Se não for especificado, o padrão será distinguishedName .
|
String |
serviceAccount/simpleBindCredentials | |||
dn | sim | O nome distinto do usuário da conta de serviço. | String |
senha | sim | A senha do usuário da conta de serviço. | String |
Ativar o GKE Identity Service
Para ativar o serviço de identidade do GKE no seu projeto, execute o seguinte comando:
gcloud container fleet identity-service enable
Isso cria uma nova instância do controlador do GKE Identity Service para gerenciar o ciclo de vida do GKE Identity Service nos clusters da frota. Você só precisa executar esse comando uma vez por projeto para usar o GKE Identity Service com todos os clusters compatíveis registrados na frota do projeto.
Como alternativa, é possível ativar o serviço de identidade do GKE com uma configuração padrão no nível da frota. Com essa configuração, a configuração do provedor do GKE Identity Service especificada é aplicada automaticamente a todos os clusters do GKE no Google Cloud registrados na sua frota durante a criação do cluster. Saiba mais sobre como fazer isso em Configurar padrões no nível da frota.
Aplicar a configuração a um cluster
Para instalar o GKE Identity Service, se necessário (somente clusters EKS, todos os outros tipos de cluster com suporte já têm o GKE Identity Service instalado por padrã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.
Ao executar esse comando, a configuração é gerenciada pelo controlador do serviço de identidade do GKE. Todas as alterações locais feitas na configuração do cliente do serviço de identidade do GKE serão reconciliadas de volta pelo controlador para a configuração especificada nesta configuração.
Isso permite que o GKE Identity Service recupere informações dos Grupos do Google para contas de usuário que fazem login com o ID do Google. Essa configuração é aplicável a clusters no Google Distributed Cloud (VMware e bare metal) a partir da versão 1.13 do GKE Enterprise. Veja mais informações sobre o recurso Grupos do Google em Configurar o gateway do Connect com o Grupos do Google.
Se você já tiver uma configuração no cluster para qualquer opção de autenticação, os seguintes itens se aplicam:
- Se você já tiver configurações no nível do cluster para provedores OIDC, a aplicação de uma configuração do serviço de identidade do GKE no nível da frota vai substituir todas as especificações de autenticação atuais.
- Se você já tiver configurações no nível do cluster para provedores que não são compatíveis com a configuração no nível da frota, essa configuração falhará. Remova a configuração do provedor atual para aplicar a configuração no nível da frota.
Se você não quiser mais que o controlador do GKE Identity Service gerencie a configuração, por exemplo, se quiser usar uma opção ou opções de autenticação diferentes, desative esse recurso seguindo as instruções em Como desativar o gerenciamento do GKE Identity Service.
Configurações específicas do provedor
Nesta seção, fornecemos orientações para a configuração de provedores OIDC (como Azure AD e Okta), incluindo um exemplo de configuração que pode ser copiada e editada com seus próprios detalhes.
Azure AD
Essa é a configuração padrão do GKE Identity Service com o Azure AD. O uso dessa configuração permite que o GKE Identity Service receba informações de usuários e grupos do Azure AD, além de permitir configurar o controle de acesso baseado em função (RBAC) do Kubernetes com base em grupos. No entanto, o uso dessa configuração limita a recuperação de aproximadamente 200 grupos por usuário.
Se você precisar recuperar mais de 200 grupos por usuário, 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)
Essa configuração opcional para o Azure AD permite que o GKE Identity Service recupere informações de usuários e grupos sem limite no número de grupos por usuário usando a API Microsoft Graph. Para saber mais sobre as plataformas compatíveis com essa configuração, consulte Configuração avançada para o Azure AD.
Se você precisar recuperar menos de 200 grupos por usuário, recomendamos que
use a configuração padrão com uma âncora oidc
no ClientConfig. Para mais informações, consulte as instruções do Azure AD.
Todos os campos da 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 em que você quer recuperar as informações do grupo. Esse campo pode ter valores correspondentes a ID
ou NAME
dos grupos de usuários. Essa configuração só está disponível para clusters em implantações do Google Distributed Cloud (no local).
Okta
Veja a seguir como configurar a autenticação usando usuários e grupos com o Okta como seu provedor de identidade. Essa configuração permite que o GKE Identity Service recupere declarações de usuários e grupos usando um token de acesso e o endpoint 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.
...
Configurar padrões no nível da frota
É possível ativar o serviço de identidade do GKE com uma configuração padrão no nível da frota. Usando essa configuração, todo novo cluster do GKE no Google Cloud registrado durante a criação do cluster ou cluster do GKE terá o serviço de identidade do GKE ativado automaticamente no cluster com a configuração que você especificar. Se você tiver clusters de membros da frota quando ativar esse recurso, eles não serão atualizados automaticamente com os padrões da frota, mas você pode aplicar sua configuração padrão a eles. Para mais informações sobre como gerenciar a configuração no nível da frota, consulte Gerenciar recursos no nível da frota.
Para definir o serviço de identidade do GKE com uma configuração padrão no nível da frota, faça o seguinte:
- Crie um arquivo chamado
fleet-default.yaml
e o preencha conforme Criar o arquivo de configuração. Ative o serviço de identidade do GKE com uma configuração padrão no nível da frota:
gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
Para modificar a configuração padrão atual no nível da frota ou adicionar uma se o serviço de identidade do GKE já estiver ativado na sua frota sem esse recurso, execute o seguinte comando:
gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
Os clusters de membros da frota registrados antes da configuração padrão no nível da frota não herdam automaticamente a configuração padrão. Para aplicar a configuração padrão a um cluster de membro da frota, execute o seguinte comando:
gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
Para desativar os padrões no nível da frota para o GKE Identity Service, execute o seguinte comando para remover a configuração padrão:
gcloud container fleet identity-service delete --fleet-default-member-config
Verificar as configurações do serviço de identidade
Depois de concluir a configuração no nível da frota, será possível verificar se os clusters na sua frota foram configurados com a configuração do serviço de identidade especificada.
Console
No console do Google Cloud, acesse a página Gerenciador de recursos.
Acessar o gerenciador de recursos
Todos os recursos ativados aparecem como Ativados no painel.
Clique em DETALHES no painel Serviço de identidade. Um painel de detalhes exibe o status dos clusters registrados.
gcloud
Execute este comando:
gcloud container fleet identity-service describe
A seguir
Depois de configurar os clusters, continue a configurar o acesso do usuário.