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 instalar kubectl, 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.

  • 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.

  • Ative as APIs GKE Hub and Kubernetes Engine.

    Ative as APIs

gcloud

Execute o seguinte comando para ativar as APIs necessárias na 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

  1. No console do Google Cloud, acesse a página Recursos do GKE Enterprise.

    Acesse os recursos do GKE Enterprise

  2. 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

  1. 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.
  2. Clique em Atualizar serviço de identidade para abrir o painel de configuração.
  3. 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.
  4. 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

  1. Selecione New Open ID Connect para criar uma nova configuração do OIDC.
  2. 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.
  3. Especifique o ID do cliente retornado ao registrar o GKE Identity Service com seu provedor no campo ID do cliente.
  4. 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.
  5. Especifique o URI em que as solicitações de autorização são feitas para seu provedor de identidade no campo Emissor URL.
  6. Clique em Próxima para definir os atributos do OIDC.

Azure AD

  1. Selecione New Azure Active Directory para criar uma nova configuração do Azure AD.
  2. 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.
  3. Especifique o ID do cliente retornado ao registrar o GKE Identity Service com seu provedor no campo ID do cliente.
  4. 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.
  5. Especifique o locatário que será a conta do Azure AD a ser autenticada no Locatário.
  6. Clique em Próxima para definir os atributos do Azure AD.

LDAP

  1. Selecione LDAP para criar uma configuração LDAP.
  2. 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.
  3. Clique em Próxima.
  4. Especifique o nome do host (obrigatório), o tipo de conexão LDAP e o certificado de CA codificado em base64 do servidor LDAP.
  5. Clique em Próxima para configurar o servidor.
  6. Especifique o nome distinto, o filtro, os atributos de login e o identificador do usuário.
  7. Clique em Avançar para definir os detalhes do usuário.
  8. Se você optar por usar grupos, especifique o nome distinto, o filtro e o atributo do identificador do grupo.
  9. Clique em Próxima para definir os detalhes do grupo.
  10. Especifique o nome de usuário e a senha da conta de serviço.
  11. Clique em Concluído para definir o nome da conta de serviço.

Definir atributos

Os atributos 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.

OIDC

  • Preencha os atributos de configuração:

    • URI de redirecionamento kubectl: a porta e o URL de redirecionamento usados pela CLI gcloud e especificados pelo administrador da plataforma no registro, geralmente no formato http://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.

Azure AD

  • Preencha os atributos de configuração:

    • URI de redirecionamento kubectl: a porta e o URL de redirecionamento usados pela CLI gcloud e especificados pelo administrador da plataforma no registro, geralmente no formato http://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.

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 saber mais 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 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 serviço de identidade do GKE poderá usar o endpoint userinfo do provedor de identidade para receber informações de grupos quando um usuário fizer login pela linha de comando. Isso permite que você use grupos de segurança para autorização se tiver um provedor (como o Okta) que fornece declarações de grupo a partir desse endpoint. Se não for definido, ele 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 A porta e o URL de redirecionamento usados pela CLI gcloud 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 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

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 no objeto ldap do ClientConfig. 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 Um nome para identificar essa configuração LDAP String
servidor
host yes 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 "certificateAuthorityData" não vai 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. Precisa ser fornecido apenas para conexões ldaps e startTLS. String
usuário
baseDN yes 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 é userPrincipleName. 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 a identidade do usuário depois da autenticação. 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 um endereço de e-mail ou nome distinto (DN) completo. Por exemplo, definir loginAttribute como sAMAccountName eidentifierAttribute como userPrincipleName permitiria que um usuário fizesse login como bsmith, mas as políticas de RBAC reais para o usuário seriam gravadas como bsmith@example.com. Recomendamos o uso de userPrincipleName, já que ele será exclusivo para cada usuário. Se não for especificado, o padrão será userPrincipleName. 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 em relação à 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 serviço de identidade do GKE gerencie sua configuração, por exemplo, se quiser usar uma ou mais opções de autenticação diferentes, é possível desativar esse recurso seguindo as instruções em Como desativar o gerenciamento do serviço de identidade do GKE.

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 serviço de identidade do GKE 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:

  1. Crie um arquivo chamado fleet-default.yaml e o preencha conforme Criar o arquivo de configuração.

  2. 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
    
  3. 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
    
  4. 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
    
  5. 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

  1. 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.

  2. 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

  1. No console do Google Cloud, acesse a página Recursos do GKE Enterprise.

    Acesse os recursos do GKE Enterprise

  2. 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

Em caso de problemas durante a configuração, consulte o guia de solução de problemas.