Usando a autenticação Kerberos com AWS Database Migration Service - AWSDatabase Migration Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usando a autenticação Kerberos com AWS Database Migration Service

A partir da v3.5.3 do DMS, você pode configurar seu endpoint Oracle ou SQL Server de origem para se conectar à sua instância de banco de dados usando a autenticação Kerberos. O DMS oferece suporte Directory Service à autenticação do Microsoft Active Directory e Kerberos. Para obter mais informações sobre o acesso AWS gerenciado aos Serviços do Microsoft Active Directory, consulte O que éDirectory Service? .

AWS DMSVisão geral da arquitetura de autenticação Kerberos

O diagrama a seguir fornece uma visão geral de alto nível do fluxo de trabalho de autenticação AWS DMS Kerberos.

Arquitetura de autenticação Kerberos

Limitações no uso da autenticação Kerberos com AWS DMS

As seguintes limitações se aplicam ao usar a autenticação Kerberos com: AWS DMS

  • As instâncias de replicação do DMS permitem usar um arquivo Kerberos e um arquivo keycache krb5.conf.

  • Você deve atualizar o arquivo keycache do Kerberos no Secrets Manager pelo menos 30 minutos antes da expiração do tíquete.

  • Um endpoint do DMS habilitado para o Kerberos só funciona com uma instância de replicação do DMS habilitada para o Kerberos.

Pré-requisitos

Para começar, você deve atender aos seguintes pré-requisitos em um host autenticado do Active Directory ou do Kerberos:

  • Estabeleça uma relação de confiança do Active Directory com o AD on-premises. Para obter mais informações, consulte Tutorial: Crie uma relação de confiança entre seu Microsoft AD AWS gerenciado e seu domínio autogerenciado do Active Directory.

  • Prepare uma versão simplificada do arquivo de configuração krb5.conf do Kerberos. Inclua informações sobre o realm, o local dos servidores de administração do domínio e mapeamentos de nomes de host em um realm do Kerberos. Verifique se o conteúdo do krb5.conf está formatado com a combinação correta de maiúsculas e minúsculas para os realms e os nomes de realm dos domínios. Por exemplo:

    [libdefaults] dns_lookup_realm = true dns_lookup_kdc = true forwardable = true default_realm = MYDOMAIN.ORG [realms] MYDOMAIN.ORG = { kdc = mydomain.org admin_server = mydomain.org } [domain_realm] .mydomain.org = MYDOMAIN.ORG mydomain.org = MYDOMAIN.ORG
  • Prepare um arquivo keycache do Kerberos. O arquivo contém uma credencial temporária do Kerberos das informações de entidade principal do cliente. O arquivo não armazena a senha do cliente. Sua tarefa do DMS usa essas informações de tíquete de cache para obter credenciais adicionais sem uma senha. Execute as etapas a seguir em um host existente autenticado pelo Active Directory ou Kerberos para gerar um arquivo keycache.

    • Crie um arquivo keycache do Kerberos. Você pode gerar um arquivo keytab usando o utilitário kutil ou ktpass.

      Para ter mais informações sobre o utilitário ktpass da Microsoft, consulte ktpass na documentação do Windows Server.

      Para ter mais informações sobre o utilitário kutil do MIT, consulte kutil na documentação do MIT Kerberos.

    • Crie um arquivo keycache do Kerberos com base no arquivo keytab usando o utilitário kinit. Para ter mais informações sobre o utilitário kinit, consulte kinit nas documentação do MIT Kerberos.

  • Armazene o arquivo keycache do Kerberos no Secrets Manager usando o parâmetro SecretBinary. Quando você faz upload do arquivo keycache no Secrets Manager, o DMS o recupera e atualiza o arquivo de cache local a cada 30 minutos. Quando o arquivo keycache local excede o carimbo de data/hora de expiração predefinido, o DMS interrompe a tarefa normalmente. Para evitar falhas de autenticação durante uma tarefa de replicação contínua, atualize o arquivo keycache no Secrets Manager pelo menos 30 minutos antes da expiração do tíquete. Para ter mais informações, consulte createsecret na Referência de API do Systems Manager. O exemplo a seguir AWS CLI mostra como armazenar o arquivo keycache em formato binário no Secrets Manager:

    aws secretsmanager create-secret —name keycache —secret-binary fileb://keycachefile
  • Conceda a um perfil do IAM as permissões GetSecretValue e DescribeSecret para obter o arquivo keycache do Secrets Manager. O perfil do IAM deve incluir a política de confiança dms-vpc-role. Para ter mais informações sobre a política de confiança dms-vpc-role, consulte Criação das funções do IAM para usar com AWS DMS.

O exemplo a seguir mostra uma política de perfil do IAM com as permissões GetSecretValue e DescribeSecret do Secrets Manager. O <keycache_secretsmanager_arn> valor é o ARN do Keycache Secrets Manager que você criou na etapa anterior.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "*" } ] }

Habilitando o suporte Kerberos em uma instância de replicação do AWS DMS

Os realms do Kerberos são idênticos aos domínios no Windows. Para resolver um domínio principal, o Kerberos depende de um serviço de nomes de domínio (DNS). Quando você define o parâmetro dns-name-servers, a instância de replicação usará seu conjunto personalizado predefinido de servidores de DNS para resolver os realms do domínio do Kerberos. Outra opção para resolver consultas de realm do Kerberos é configurar o Amazon Route 53 na nuvem privada virtual (VPC) da instância de replicação. Para ter mais informações, consulte Route 53.

Habilitando o suporte ao Kerberos em uma instância de replicação do DMS usando o Console de gerenciamento da AWS

Para habilitar o suporte ao Kerberos usando o console, insira as seguintes informações na seção Autenticação Kerberos da página Criar instância de replicação ou Modificar instância de replicação:

  • O conteúdo do seu arquivo krb5.conf.

  • O ARN do segredo do Secrets Manager que contém o arquivo keycache.

  • O ARN do perfil do IAM que tem acesso ao ARN do Secrets Manager e permissões para recuperar o arquivo keycache.

Habilitando o suporte ao Kerberos em uma instância de replicação do DMS usando o AWS CLI

O AWS CLI exemplo de chamada a seguir cria uma instância de replicação DMS privada com suporte a Kerberos. A instância de replicação usa um DNS personalizado para resolver o realm do Kerberos. Para obter mais informações, consulte create-replication-instance.

aws dms create-replication-instance --replication-instance-identifier my-replication-instance --replication-instance-class dms.t2.micro --allocated-storage 50 --vpc-security-group-ids sg-12345678 --engine-version 3.5.4 --no-auto-minor-version-upgrade --kerberos-authentication-settings'{"KeyCacheSecretId":<secret-id>,"KeyCacheSecretIamArn":<secret-iam-role-arn>,"Krb5FileContents":<krb5.conf file contents>}' --dns-name-servers <custom dns server> --no-publicly-accessible

Habilitar o suporte a Kerberos em um endpoint de origem

Antes de habilitar a autenticação Kerberos em um endpoint de origem do DMS para Oracle ou SQL Server, verifique se você pode se autenticar no banco de dados de origem usando o protocolo Kerberos de uma máquina cliente. Você pode usar a AMI de AWS DMS diagnóstico para iniciar uma EC2 instância da Amazon na mesma VPC da instância de replicação e depois testar a autenticação kerberos. Para ter mais informações sobre a AMI, consulte Trabalhando com o suporte AWS DMS de diagnóstico AMI.

Usando o console do AWS DMS

Em Acesso ao banco de dados de endpoint, escolha Autenticação Kerberos.

Usando o AWS CLI

Especifique o parâmetro de configuração do endpoint e defina a opção AuthenticationMethod como Kerberos. Por exemplo:

Oracle

aws dms create-endpoint --endpoint-identifier my-endpoint --endpoint-type source --engine-name oracle --username dmsuser@MYDOMAIN.ORG --server-name mydatabaseserver --port 1521 --database-name mydatabase --oracle-settings "{\"AuthenticationMethod\": \"kerberos\"}"

SQL Server

aws dms create-endpoint --endpoint-identifier my-endpoint --endpoint-type source --engine-name sqlserver --username dmsuser@MYDOMAIN.ORG --server-name mydatabaseserver --port 1433 --database-name mydatabase --microsoft-sql-server-settings "{\"AuthenticationMethod\": \"kerberos\"}"

Testar um endpoint de origem

Você deve testar o endpoint habilitado para Kerberos em relação a uma instância de replicação habilitada para Kerberos. Quando você não configura adequadamente a instância de replicação ou o endpoint de origem para a autenticação Kerberos, a ação test-connection do endpoint falha e pode exibir erros relacionados ao Kerberos. Para ter mais informações, consulte test-connection.