Configurar a autenticação Kerberos para instâncias de banco de dados do Amazon RDS para Db2 - Amazon Relational Database Service

Configurar a autenticação Kerberos para instâncias de banco de dados do Amazon RDS para Db2

Você vai usar AWS Directory Service for Microsoft Active Directory (AWS Managed Microsoft AD) para configurar a autenticação Kerberos para uma instância de banco de dados do RDS para Db2 Para configurar a autenticação Kerberos, siga estas etapas:

Etapa 1: Criar um diretório usando o AWS Managed Microsoft AD

O AWS Directory Service cria um Active Directory totalmente gerenciado na Nuvem AWS. Quando você cria um diretório AWS Managed Microsoft AD, o AWS Directory Service cria dois controladores de domínio e servidores DNS para você. Os servidores do diretório são criados em sub-redes diferentes em uma VPC. Essa redundância ajuda a garantir que o diretório permaneça acessível mesmo se ocorrer uma falha.

Ao criar um diretório do AWS Managed Microsoft AD, o AWS Directory Service executa as seguintes tarefas em seu nome:

  • Configura um Active Directory na VPC.

  • Cria uma conta de administrador do diretório com o nome de usuário Admin e a senha especificada. Use essa conta para gerenciar seu diretório.

    Importante

    Certifique-se de salvar essa senha. O AWS Directory Service não armazena essa senha e não é possível recuperá-la ou redefini-la.

  • Cria um grupo de segurança para os controladores do diretório. O grupo de segurança deve permitir a comunicação com a instância de banco de dados do RDS para Db2.

Ao iniciar o AWS Directory Service for Microsoft Active Directory, a AWS cria uma unidade organizacional (UO) que contém todos os objetos do diretório. Essa UO, que tem o nome de NetBIOS que você digitou ao criar o diretório, está localizada na raiz do domínio. A raiz do domínio é controlada e de propriedade da AWS.

A conta Admin, que foi criada com o diretório AWS Managed Microsoft AD, tem permissões para as atividades administrativas mais comuns da UO:

  • Crie, atualize ou exclua usuários.

  • Adicione recursos ao domínio, como servidores de arquivos ou de impressão, e atribua permissões para esses recursos aos usuários na UO.

  • Criar OUs adicionais e contêineres.

  • Delegar autoridade.

  • Restaure objetos excluídos da lixeira do Active Directory.

  • Execute os módulos Active Directory e Domain Name Service (DNS) para Windows PowerShell noAWS Directory Service.

A conta Admin também possui direitos para executar as seguintes atividades de domínio:

  • Gerenciar configurações de DNS (adicionar, remover ou atualizar registros, zonas e encaminhadores).

  • Visualizar logs de eventos de DNS.

  • Visualizar logs de eventos de segurança.

Como criar um diretório com AWS Managed Microsoft AD
  1. Faça login no AWS Management Console e abra o console do AWS Directory Service em https://console.aws.amazon.com/directoryservicev2/.

  2. Selecione Configurar diretório.

  3. Selecione AWS Managed Microsoft AD. O AWS Managed Microsoft AD é a única opção atualmente aceita para uso com o Amazon RDS.

  4. Escolha Next (Próximo).

  5. Na página Enter directory information (Inserir informações do diretório), forneça as seguintes informações:

    • Edição: selecione a edição que atenda aos requisitos.

    • Nome do DNS do diretório : o nome totalmente qualificado do diretório, como corp.example.com.

    • Nome de NetBIOS do diretório : um nome curto opcional do diretório, como CORP.

    • Descrição do diretório: uma descrição opcional do diretório.

    • Senha do administrador : a senha do administrador do diretório. O processo de criação do diretório cria uma conta de administrador com o nome de usuário Admin e essa senha.

      A senha do administrador do diretório não pode incluir a palavra "admin". A senha diferencia letras maiúsculas de minúsculas e deve ter entre 8 e 64 caracteres. Ela também precisa conter pelo menos um caractere de três das quatro categorias a seguir:

      • Letras minúsculas (a–z)

      • Letras maiúsculas (A–Z)

      • Números (0–9)

      • Caracteres não alfanuméricos (~!@#$%^&*_-+=`|\(){}[]:;"'<>,.?/)

      • Confirmar senha: digite a senha do administrador novamente.

        Importante

        Salve essa senha. O AWS Directory Service não armazena essa senha e não é possível recuperá-la ou redefini-la.

  6. Escolha Next (Próximo).

  7. Na página Choose VPC and subnets (Selecionar VPC e sub-redes), forneça as seguintes informações:

    • VPC: selecione a VPC do diretório. É possível criar a instância de banco de dados do RDS para Db2 nessa mesma VPC ou em outra VPC.

    • Sub-redes: selecione as sub-redes para os servidores do diretório. As duas sub-redes deve estar em diferentes zonas de disponibilidade.

  8. Escolha Next (Próximo).

  9. Analise as informações do diretório. Se alterações forem necessárias, escolha Previous (Anterior) e faça as alterações. Quando as informações estiverem corretas, escolha Create directory (Criar diretório).

    A janela Revisar e criar durante a criação do diretório no console do AWS Directory Service.

A criação do diretório leva vários minutos. Depois que o diretório tiver sido criado com sucesso, o valor de Status muda para Active (Ativo).

Para ver as informações sobre o diretório, selecione o ID do diretório em ID do diretório. Anote o valor do Directory ID (ID do diretório). Esse valor será necessário ao criar ou modificar a instância de banco de dados do RDS para Db2.

A seção Detalhes do diretório com ID do diretório no console do AWS Directory Service.

Etapa 2: Criar um perfil do IAM para o Amazon RDS acessar o AWS Directory Service

Para que o Amazon RDS chame o AWS Directory Service para você, a Conta da AWS precisa de um perfil do IAM que use a política gerenciada do IAM AmazonRDSDirectoryServiceAccess. Esse perfil permite que o Amazon RDS faça chamadas ao AWS Directory Service.

Quando você cria uma instância de banco de dados usando o AWS Management Console e a conta do usuário do console tiver a permissão iam:CreateRole, o console criará o perfil do IAM necessário automaticamente. Nesse caso, o nome da função é rds-directoryservice-kerberos-access-role. Caso contrário, é necessário criar a função do IAM manualmente. Ao criar essa função do IAM, escolha Directory Service e associe a AWS política gerenciada da AmazonRDSDirectoryServiceAccess a ela.

Para ter mais informações sobre como criar funções do IAM para um serviço, consulte o tópico sobre como Criar uma função para delegar permissões a um serviço da AWS, no Guia do usuário do IAM.

nota

O perfil do IAM usado para a autenticação Windows para RDS para o Microsoft SQL Server não pode ser usado para o RDS para Db2.

Como alternativa ao uso da política gerenciada pelo AmazonRDSDirectoryServiceAccess, você pode criar políticas com as permissões exigidas. Nesse caso, o perfil do IAM deve ter a seguinte política de confiança do IAM:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "directoryservice.rds.amazonaws.com", "rds.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

O perfil também deve ter a seguinte política de perfil do IAM:

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ds:DescribeDirectories", "ds:AuthorizeApplication", "ds:UnauthorizeApplication", "ds:GetAuthorizedApplicationDetails" ], "Effect": "Allow", "Resource": "*" } ] }

Etapa 3: Criar e configurar usuários

É possível criar usuários utilizando a ferramenta Active Directory Users and Computers. Essa é uma das ferramentas Active Directory Domain Services e Active Directory Lightweight Directory Services. Para ter mais informações, consulte Add Users and Computers to the Active Directory domain na documentação da Microsoft. Nesse caso, os usuários são indivíduos ou outras entidades, como computadores, que fazem parte do domínio e cujas identidades estão sendo mantidas no diretório.

Para criar usuários em um diretório do AWS Directory Service, é necessário estar conectado a uma instância do Amazon EC2 baseada no Windows que seja membro do diretório do AWS Directory Service. Ao mesmo tempo, é necessário estar conectado como um usuário que tenha privilégios para criar usuários. Para obter mais informações, consulte Criar um usuário no Guia de administração do AWS Directory Service.

Etapa 4: Criar um grupo de administradores do RDS para Db2 no AWS Managed Microsoft AD

O RDS para Db2 não é compatível com a autenticação Kerberos para o usuário principal ou para os dois usuários reservados rdsdb e rdsadmin do Amazon RDS. Em vez disso, você precisa criar um grupo chamado masterdba no AWS Managed Microsoft AD. Para ter mais informações, consulte Create a Group Account in Active Directory na documentação da Microsoft. Todos os usuários adicionados a esse grupo terão privilégios de usuário principal.

Depois de habilitar a autenticação Kerberos, o usuário principal perde o perfil masterdba. Como resultado, o usuário principal não conseguirá acessar a associação do grupo de usuários local da instância, a menos que você desabilite a autenticação Kerberos. Para continuar utilizando o usuário principal com login por senha, crie um usuário no AWS Managed Microsoft AD com o mesmo nome do usuário principal. Depois, adicione esse usuário ao grupo masterdba.

Etapa 5: Criar ou modificar uma instância de banco de dados do RDS para Db2

Crie ou modifique uma instância de banco de dados do RDS para Db2 para ser usada com o diretório. É possível usar o AWS Management Console, a AWS CLI ou a API do RDS para associar uma instância de banco de dados a um diretório. Você pode fazer isso por meio de uma das seguintes maneiras:

A autenticação Kerberos só é compatível com instâncias de banco de dados do RDS para Db2 em uma VPC. A instância de banco de dados pode estar na mesma VPC do diretório ou em uma VPC diferente. A instância de banco de dados deve usar um grupo de segurança que permita a entrada e a saída na VPC do diretório para que a instância de banco de dados possa se comunicar com o diretório.

Ao usar o console para criar, modificar ou restaurar uma instância de banco de dados, selecione Senha e autenticação Kerberos na seção Autenticação de banco de dados. Em seguida, escolha Browse Directory (Procurar diretório). Selecione o diretório ou escolha Criar diretório para usar o Directory Service.

A seção Autenticação do banco de dados com Senha e autenticação Kerberos selecionada no console do Amazon RDS.

Quando você usa a AWS CLI, são necessários os seguintes parâmetros para que a instância de banco de dados possa usar o diretório criado:

  • Para o parâmetro --domain, use o identificador de domínio (identificador “d-*”) gerado quando o diretório foi criado.

  • Para o parâmetro --domain-iam-role-name, use a função criada que usa a política gerenciada AmazonRDSDirectoryServiceAccess do IAM.

O exemplo a seguir modifica uma instância de banco de dados para usar um diretório. Substitua os seguintes placeholders no exemplo pelos próprios valores:

  • db_instance_name: o nome da instância de banco de dados do RDS para Db2.

  • directory_id: o ID do diretório do AWS Directory Service for Microsoft Active Directory que você criou.

  • role_name: o nome do perfil do IAM criado.

aws rds modify-db-instance --db-instance-identifier db_instance_name --domain d-directory_id --domain-iam-role-name role_name
Importante

Se você modificar uma instância de banco de dados para habilitar a autenticação Kerberos, reinicialize a instância de banco de dados depois de fazer a alteração.

Etapa 6: Configurar um cliente Db2

Como configurar um cliente Db2
  1. Crie um arquivo /etc/krb5.conf (ou equivalente) para apontar para o domínio.

    nota

    Para sistemas operacionais Windows, crie um arquivo C:\windows\krb5.ini.

  2. Verifique se o tráfego pode fluir entre o host do cliente e o AWS Directory Service. Use um utilitário de rede, como o Netcat, para as seguintes tarefas:

    1. Verifique o tráfego pelo DNS da porta 53.

    2. Verifique o tráfego pelo TCP/UDP da porta 53 e do Kerberos, que inclui as portas 88 e 464 do AWS Directory Service.

  3. Verifique se o tráfego pode fluir entre o host do cliente e a instância de banco de dados pela porta do banco de dados. É possível usar o comando db2 para conectar e acessar o banco de dados.

O seguinte exemplo é o conteúdo do arquivo /etc/krb5.conf para o AWS Managed Microsoft AD:

[libdefaults] default_realm = EXAMPLE.COM [realms] EXAMPLE.COM = { kdc = example.com admin_server = example.com } [domain_realm] .example.com = EXAMPLE.COM example.com = EXAMPLE.COM