Configurar a autenticação do cliente

Selecione uma versão da documentação:

Neste documento, descrevemos como configurar a autenticação de cliente no cluster de banco de dados do AlloyDB Omni baseado em Kubernetes usando o recurso personalizado UserDefinedAuthentication (alloydbomni.dbadmin.goog/v1). É possível personalizar o comportamento de autenticação do cliente, como restringir sub-redes de clientes, aplicar SSL/TLS, especificar métodos de autenticação personalizados ou configurar o mapeamento de usuários, definindo entradas personalizadas de pg_hba.conf e pg_ident.conf independentemente da configuração do Active Directory.

Para usar este documento, é necessário ter familiaridade com a aplicação de arquivos de manifesto do Kubernetes e o uso da ferramenta de linha de comando kubectl. Para mais informações, consulte Ferramenta de linha de comando (kubectl).

Antes de começar

Para configurar a autenticação do cliente, você precisa ter o seguinte:

  • Um cluster do AlloyDB Omni implantado em um ambiente do Kubernetes.
  • Usuários e papéis do banco de dados configurados no cluster.
  • A CLI kubectl instalada e configurada.

Aplicar o manifesto de recurso personalizado

Aplique o seguinte manifesto de recurso personalizado de autenticação definida 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
  pgHbaEntries:
    PG_HBA_ENTRIES
  pgIdentEntries:
    PG_IDENT_ENTRIES

Substitua:

  • USER_DEFINED_AUTHENTICATION_NAME: o nome do recurso personalizado UserDefinedAuthentication, por exemplo, DB_CLUSTER_NAME-client-auth.
  • DB_CLUSTER_NAMESPACE: o namespace do Kubernetes para esse recurso personalizado. O namespace precisa corresponder ao namespace do cluster de banco de dados.
  • DB_CLUSTER_NAME: o nome do cluster de banco de dados, que você atribuiu ao criá-lo.
  • PG_HBA_ENTRIES: entradas de pg_hba.conf como uma lista de strings. Essas entradas substituem as entradas padrão em pg_hba.conf. Por exemplo, para restringir conexões a uma sub-rede específica, use - "host all all 192.168.1.0/24 scram-sha-256". Para mais informações, consulte O arquivo pg_hba.conf.
  • PG_IDENT_ENTRIES: (opcional) entradas pg_ident.conf como uma lista de strings. Para implementar o mapeamento de nome de usuário, especifique map= no campo "Options" no arquivo pg_hba.conf. Se você não precisar do mapeamento de nome de usuário, omita o campo pgIdentEntries do manifesto. Para mais informações, consulte Mapas de nomes de usuário.

Verificar as regras de autenticação do cliente

Para verificar o status do recurso UserDefinedAuthentication, execute o seguinte comando:

kubectl get userdefinedauthentication -n DB_CLUSTER_NAMESPACE

Verifique se a coluna STATE exibe Ready.

Para ver os detalhes e as condições do recurso, execute o seguinte comando:

kubectl describe userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE

Atualizar regras de autenticação do cliente

Para atualizar as regras de autenticação do cliente ou os mapeamentos de usuário, atualize spec.pgHbaEntries ou spec.pgIdentEntries no arquivo de manifesto e aplique-o novamente:

kubectl apply -f CLIENT_AUTH_MANIFEST.yaml

O operador do AlloyDB Omni recarrega dinamicamente a configuração do PostgreSQL (pg_ctl reload) sem reiniciar o pod do banco de dados ou causar inatividade.

Excluir regras de autenticação do cliente

Para excluir as regras de autenticação personalizadas e reverter para as regras de autenticação padrão, execute o seguinte comando:

kubectl delete userdefinedauthentication USER_DEFINED_AUTHENTICATION_NAME -n DB_CLUSTER_NAMESPACE

Quando você exclui o recurso UserDefinedAuthentication, o operador do AlloyDB Omni recarrega dinamicamente pg_hba.conf (pg_ctl reload) para restaurar as regras de autenticação padrão sem precisar reiniciar o pod do banco de dados.

A seguir