Configurar o GKE Identity Service no nível da frota
Este documento é destinado a administradores de cluster ou operadores de aplicativos que configuram o GKE Identity Service nos clusters deles. Ele contém instruções sobre como configurar o GKE Identity Service no nível da frota em clusters com seu provedor de identidade de OpenID Connect (OIDC) preferido. As instruções neste documento presumem que o sGKE Identity Service já tenha sido registrado com seu provedor de identidade como um aplicativo cliente.
Para saber mais sobre o GKE Identity Service e outras opções de configuração, consulte as informações gerais. Para saber como acessar um cluster usando esse serviço como um desenvolvedor ou outro usuário do cluster, consulte Como acessar clusters com o GKE Identity Service.
Antes de começar
- Verifique se o administrador da plataforma forneceu todas as informações necessárias de Como configurar provedores OIDC para o GKE Identity Service antes de iniciar a configuração. Isso inclui o ID do cliente e o secret do GKE Identity Service.
- Verifique se os clusters que você quer configurar atendem aos pré-requisitos para a configuração no nível da frota. Para outros tipos de cluster e ambientes, consulte as Informações gerais do GKE Identity Service.
Verifique se você tem as seguintes ferramentas de linha de comando instaladas:
- A versão mais recente da Google Cloud CLI, 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
, consulte o guia de instalação.
Se você estiver usando o Cloud Shell como ambiente shell para interagir com o Google Cloud, essas ferramentas estarão instaladas.
- A versão mais recente da Google Cloud CLI, que inclui
Verifique se você inicializou a CLI gcloud para uso com o projeto em que os clusters estão registrados.
Se você não for o proprietário do projeto, precisará do papel Administrador do Hub GKE no projeto em que os clusters estão registrados para concluir as etapas de configuração.
Ativar APIs
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 Recursos do GKE Enterprise.
Na tabela Recursos, clique em Ativar na linha Identity Service e em Ativar novamente no painel que é exibido. 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 tabela Recursos, clique em Detalhes na linha Identity Service 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.
- 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
. - 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 seu 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 | No | 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 | No | 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 | No | 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 | No | 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 | No | A declaração do JWT (nome do campo) que seu provedor usa para retornar os grupos de segurança de uma conta. | String |
groupPrefix | No | 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 |
scopes | 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 | No | 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 | No | 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 | No | 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 |
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 , pois 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
Também é possível ativar o serviço de identidade do GKE com uma configuração padrão no nível da frota. Com esse processo, a configuração especificada é aplicada automaticamente a cada novo cluster registrado na sua frota. Para mais informações sobre as configurações padrão no nível da frota, consulte Configurar padrões no nível da frota.
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.
Aplicar a configuração a um cluster
Para instalar o GKE Identity Service se necessário (somente clusters EKS, os clusters do GKE 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.
Depois de aplicar a configuração do cluster, essa configuração é gerenciada pelo controlador do serviço de identidade do GKE e é considerada a "fonte da verdade". Todas as alterações locais feitas na configuração do cliente do serviço de identidade do GKE são reconciliadas pelo controlador com a configuração especificada nesta configuração.
Se você já tiver uma configuração no cluster para qualquer opção de autenticação, os seguintes itens se aplicam:
- Se você tiver configurações no nível do cluster para provedores OIDC, aplicar o controle do GKE Identity Service ao cluster substituirá todas as especificações de autenticação.
- 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
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
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 Anthos terá o serviço de identidade do GKE ativado no cluster com a configuração que você especificar. 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 uma configuração padrão, execute o seguinte comando:
gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
Os clusters registrados antes da definição da configuração padrão no nível da frota não herdam a configuração padrão automaticamente. Para aplicar a configuração padrão a um cluster que pertence a essa classe de clusters, execute o seguinte comando:
gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
Para remover a configuração padrão no nível da frota, execute o seguinte comando:
gcloud container fleet identity-service delete --fleet-default-member-config
Verificar a configuração 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 Recursos do GKE Enterprise.
Acesse o gerenciamento de atributos do GKE Enterprise
Todos os recursos ativados aparecem como Ativados na lista de recursos.
Clique em DETALHES no recurso Serviço de identidade. Um painel de detalhes exibe o status dos clusters registrados.
gcloud
Execute este comando:
gcloud container fleet identity-service describe
Configurar o acesso do usuário
Depois de configurar os clusters, continue a configurar o acesso do usuário.
Desativar o gerenciamento do GKE Identity Service no nível da frota
Se você não quiser mais que o Google Cloud gerencie a configuração e o ciclo de vida do GKE Identity Service, desative esse recurso. Desativar o gerenciamento no nível da frota não removerá o GKE Identity Service ou a configuração de autenticação do cluster. Portanto, os usuários ainda poderão se autenticar no cluster usando o provedor de identidade de terceiros configurado. No entanto, se você fizer edições manuais locais no cluster na configuração ou nos recursos do serviço de identidade do GKE, essas alterações não serão mais reconciliadas com um estado que corresponda a uma única fonte de verdade.
Desativar o gerenciamento no nível da frota de um cluster
Para desativar o gerenciamento em nível de frota em um cluster, execute o seguinte comando:
gcloud container fleet identity-service delete --membership=CLUSTER_NAME
...em que
CLUSTER_NAME
é o nome exclusivo do seu cluster na frota.
Desativar o gerenciamento no nível da frota para uma frota
Faça o seguinte para desativar o gerenciamento do GKE Identity Service no nível da frota para a sua frota.
Console
No console do Google Cloud, acesse a página Recursos do GKE Enterprise.
Na tabela Recursos, clique em Detalhes na linha Serviço de identidade e depois em Desativar o GKE Identity Service no painel que é exibido.
gcloud
Execute este comando:
gcloud container fleet identity-service disable
Depois de desativar o recurso da sua frota, não será mais possível visualizar ou atualizar o estado do GKE Identity Service do cluster no console do Google Cloud ou usando gcloud
.
Solução de problemas
Se você tiver problemas durante a configuração, consulte o guia de solução de problemas.