Para mais informações, consulte Visão geral do Active Directory.
Este documento pressupõe que você já sabe como aplicar arquivos de manifesto do Kubernetes e usar a ferramenta de linha de comando kubectl. Para mais informações, consulte Ferramenta de linha de comando (kubectl).
Antes de começar
Para ativar a integração do Active Directory, você precisa ter o seguinte:
- Um cluster do AlloyDB Omni implantado em um ambiente do Kubernetes
- Um keytab do servidor do Active Directory
Migrar do operador AlloyDB Omni no Kubernetes 1.4.0 para 1.5.0
Se você estiver usando a integração do Active Directory na versão 1.4.0 ou anterior do operador do AlloyDB Omni, migre para a versão 1.5.0.
Para migrar para a versão 1.5.0 do operador do AlloyDB Omni, siga estas etapas:
- Faça upgrade do operador do AlloyDB Omni para a versão 1.5.0.
- Crie um recurso de autenticação definido pelo usuário.
- Crie um novo manifesto de recurso UserDefinedAuthentication.
- Preencha spec.dbclusterRefcom o nome do DBCluster de destino.
- Preencha spec.keytabSecretRefcom o nome do secret do keytab.
- Copie as regras pg_hba.confrelevantes para a autenticação do Active Directory e do Kerberos no campospec.pgHbaEntries.
- Copie o pg_ident.conf rulesatual (se houver) no campospec.pgIdentEntries.
- Aplique esse novo manifesto, por exemplo, kubectl apply -f user-auth-crd.yaml.
 
- Remova a configuração de prévia e reimplante o cluster.
- Na definição do recurso DBCluster, remova todas as anotações que você usou anteriormente para configurar a integração do Active Directory, por exemplo, regras de autenticação baseada em host (HBA), regras de identificação e anotação de arquivo keytab.
- Exclua os ConfigMaps pg_hbaepg_identque você criou.
- Reaplique o manifesto atualizado do DBCluster.
 
Configurar o suporte do Active Directory
- Crie e aplique um secret com a keytab: - apiVersion: v1 kind: Secret metadata: name: KEYTAB_SECRET_NAME namespace: DB_CLUSTER_NAMESPACE type: Opaque data: krb5.keytab: | KEYTAB_FILE_CONTENT- Confira a seguir um exemplo de comando que gera um keytab no servidor do Active Directory: - ktpass /princ postgres/DBCLUSTER_HOST@REALM /Pass PASSWORD /mapuser postgres /crypto ALL /ptype KRB5_NT_Principal /out OUTPUT_PATH - ALLOYDB_HOSTé o host que aponta para o DBCluster ou o endereço IP do DBCluster.
- Aplique o seguinte manifesto de recurso personalizado de autenticação definido pelo usuário: - apiVersion: alloydbomni.dbadmin.goog/v1 kind: UserDefinedAuthentication metadata: name: USER_DEFINED_AUTHENTICATION_NAME namespace: DB_CLUSTER_NAMESPACE spec: dbclusterRef: name: DB_CLUSTER_NAME keytabSecretRef: name: KEYTAB_SECRET_NAME pgHbaEntries: PG_HBA_ENTRIES pgIdentEntries: PG_IDENT_ENTRIES- Substitua: - USER_DEFINED_AUTHENTICATION_NAME: o nome do UserDefinedConfiguration. Por exemplo,- DB_CLUSTER_NAME-ad-auth.
- DB_CLUSTER_NAMESPACE: o namespace do Kubernetes para este plano de backup. O namespace precisa corresponder ao do cluster de banco de dados.
- DB_CLUSTER_NAME: o nome do cluster de banco de dados, que você atribuiu ao criá-lo.
- KEYTAB_SECRET_NAME: o nome do keytab que você criou.
- PG_HBA_ENTRIES: entradas- pg_hba.confcomo uma lista de strings. Essas entradas substituem as entradas padrão em- pg_hba.conf. Se você adicionar uma configuração inválida, os usuários não poderão fazer login.- No exemplo anterior, você adicionou entradas para autenticação baseada em GSS seguida da autenticação baseada em senha. Isso significa que o usuário está conectado usando a API GSS. Se essa abordagem de login falhar, a autenticação com base em senha será usada como alternativa. - Para mais informações, consulte o arquivo pg_hba.conf (em inglês). 
- PG_IDENT_ENTRIES: entradas- pg_ident.confcomo uma lista de strings. Para implementar o mapeamento de nomes de usuário, especifique- map=no campo de opções do arquivo- pg_hba.conf. Para mais informações, consulte Mapas de identificação.- Veja o exemplo a seguir: - apiVersion: v1 kind: Secret metadata: name: db-keytab-dbcluster-sample type: Opaque data: krb5.keytab: | DUMMY_KEYTAB --- apiVersion: alloydbomni.dbadmin.goog/v1 kind: UserDefinedAuthentication metadata: name: dbcluster-sample-ad-auth spec: dbclusterRef: name: dbcluster-sample keytabSecretRef: name: db-keytab-dbcluster-sample pgHbaEntries: - hostgssenc all all 0.0.0.0/0 gss - hostgssenc all all ::1/128 gss - hostssl all all 0.0.0.0/0 scram-sha-256 - hostssl all all ::/0 scram-sha-256 pgIdentEntries: - usermap active_directory_user postgres_user
 
Criar funções de banco de dados como um usuário do Active Directory
- Crie uma função no banco de dados que corresponda ao usuário do Active Directory. Para criar uma função para seu usuário do Active Directory, conecte-se ao cluster e execute os seguintes comandos: - username=# CREATE ROLE "USERNAME@REALM" WITH LOGIN; 
- Faça login no banco de dados usando o usuário do Active Directory. É necessário ativar o - kinitno cliente em que você está se conectando. Neste exemplo, o pod- postgres-clienttem o kinit e o psql instalados e está configurado para se conectar ao cluster do AlloyDB Omni usando o cliente psql.- kubectl exec -it postgres-client -n DB_CLUSTER_NAMESPACE -- bash root:/# kinit USERNAME Password for USERNAME@REALM: root:/# psql -h HOSTNAME -d DB_NAME -U USERNAME@REALM psql (16.6 (Ubuntu 16.6-0ubuntu0.24.04.1), server 16.3) GSSAPI-encrypted connection Type "help" for help. 
- Executar consultas SQL. - username=# select * from TABLE_NAME;
Desativar a autenticação do Active Directory
Para desativar a autenticação do Active Directory, execute o seguinte comando do Helm:
helm upgrade alloydbomni-operator PATH_TO_CHART -n alloydb-omni-system --set userDefinedAuthentication.enabled=false
O comando retorna a seguinte saída:
Release "alloydbomni-operator" has been upgraded. Happy Helming! NAME: alloydbomni-operator LAST DEPLOYED: CURRENT_TIMESTAMP NAMESPACE: alloydb-omni-system STATUS: deployed REVISION: 2 TEST SUITE: None
A seguir
- Integrar o suporte a grupos do Active Directory no Kubernetes.
- Resolver problemas de integração do Active Directory no AlloyDB Omni.