

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

# Segurança em AWS Database Migration Service
<a name="CHAP_Security"></a>

A segurança na nuvem AWS é a maior prioridade. Como AWS cliente, você se beneficia de um data center e de uma arquitetura de rede criados para atender aos requisitos das organizações mais sensíveis à segurança.

A segurança é uma responsabilidade compartilhada entre você AWS e você. O [modelo de responsabilidade compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/) descreve isto como segurança *da* nuvem e segurança *na* nuvem.
+ **Segurança da nuvem** — AWS é responsável por proteger a infraestrutura que executa AWS os serviços na AWS nuvem. AWS também fornece serviços que você pode usar com segurança. Auditores de terceiros testam e verificam regularmente a eficácia da nossa segurança como parte dos [programas de conformidade da AWS](https://aws.amazon.com/compliance/programs/). Para saber mais sobre os programas de conformidade que se aplicam AWS DMS, consulte [AWS serviços no escopo por programa de conformidade](https://aws.amazon.com/compliance/services-in-scope/).
+ **Segurança na nuvem** — Sua responsabilidade é determinada pelo AWS serviço que você usa. Você também é responsável por outros fatores, inclusive a confidencialidade dos dados, os requisitos da organização, as leis e as regulamentações vigentes. 

Esta documentação ajuda você a entender como aplicar o modelo de responsabilidade compartilhada ao usar AWS DMS. Os tópicos a seguir mostram como configurar para atender AWS DMS aos seus objetivos de segurança e conformidade. Você também aprenderá a usar outros AWS serviços que ajudam a monitorar e proteger seus AWS DMS recursos. 

Você pode gerenciar o acesso aos seus AWS DMS recursos e bancos de dados (DBs). O método usado para gerenciar o acesso depende da tarefa de replicação que você precisa executar com AWS DMS: 
+ Use políticas AWS Identity and Access Management (IAM) para atribuir permissões que determinam quem tem permissão para gerenciar AWS DMS recursos. AWS DMS exige que você tenha as permissões apropriadas se fizer login como usuário do IAM. Por exemplo, é possível utilizar o IAM para determinar quem tem permissão para criar, descrever, modificar e excluir instâncias e clusters de banco de dados, marcar recursos ou modificar grupos de segurança. Para obter mais informações sobre o IAM e como usá-lo com AWS DMS, consulte[Gerenciamento de identidade e acesso para AWS Database Migration Service](security-iam.md).
+ AWS DMS usa Secure Sockets Layer (SSL) para suas conexões de endpoint com Transport Layer Security (TLS). Para obter mais informações sobre como usar SSL/TLS com AWS DMS, consulte[Usando SSL com AWS Database Migration Service](CHAP_Security.SSL.md).
+ AWS DMS usa chaves de criptografia AWS Key Management Service (AWS KMS) para criptografar o armazenamento usado pela sua instância de replicação e suas informações de conexão de endpoint. AWS DMS também usa chaves de AWS KMS criptografia para proteger seus dados de destino em repouso para endpoints de destino do Amazon S3 e do Amazon Redshift. Para obter mais informações, consulte [Configurando uma chave de criptografia e especificando permissões AWS KMS](#CHAP_Security.EncryptionKey).
+ AWS DMS sempre cria sua instância de replicação em uma nuvem privada virtual (VPC) com base no serviço Amazon VPC para o maior controle de acesso à rede possível. Para suas instâncias de banco de dados e clusters de instâncias, use a mesma VPC da sua instância de replicação ou mais VPCs para corresponder a esse nível de controle de acesso. Cada Amazon VPC utilizada deve estar associada a um grupo de segurança que tenha regras que permitem que todo o tráfego saia em todas as portas da VPC. Essa abordagem permite a comunicação da instância de replicação com os endpoints dos bancos de dados de origem e de destino, desde que a entrada correta esteja ativada nesses endpoints. 

  Para obter mais informações sobre as configurações de rede disponíveis para AWS DMS, consulte[Configurar uma rede para uma instância de replicação](CHAP_ReplicationInstance.VPC.md). Para obter mais informações sobre como criar uma instância de banco de dados ou um cluster de instância em uma VPC, consulte a documentação de gerenciamento de cluster e segurança nos bancos de dados da Amazon na [Documentação da AWS](https://docs.aws.amazon.com/index.html?nc2=h_ql_doc_do_v). Para obter mais informações sobre configurações de rede compatíveis com o AWS DMS , consulte [Configurar uma rede para uma instância de replicação](CHAP_ReplicationInstance.VPC.md).
+ Para visualizar os registros de migração do banco de dados, você precisa das permissões apropriadas do Amazon CloudWatch Logs para a função do IAM que você está usando. Para obter mais informações sobre registro em log do AWS DMS, consulte [Monitorando tarefas de replicação usando a Amazon CloudWatch](CHAP_Monitoring.md#CHAP_Monitoring.CloudWatch).

**Topics**
+ [Proteção de dados em AWS Database Migration Service](CHAP_Security.DataProtection.md)
+ [Gerenciamento de identidade e acesso para AWS Database Migration Service](security-iam.md)
+ [Validação de conformidade para AWS Database Migration Service](dms-compliance.md)
+ [Resiliência em AWS Database Migration Service](disaster-recovery-resiliency.md)
+ [Segurança da infraestrutura em AWS Database Migration Service](infrastructure-security.md)
+ [Controle de acesso minucioso com o uso de nomes de recursos e tags](CHAP_Security.FineGrainedAccess.md)
+ [Criptografia para migrações AWS DMS homogêneas](#CHAP_Security.Migrations)
+ [Configurando uma chave de criptografia e especificando permissões AWS KMS](#CHAP_Security.EncryptionKey)
+ [Segurança de rede para AWS Database Migration Service](#CHAP_Security.Network)
+ [Usando SSL com AWS Database Migration Service](CHAP_Security.SSL.md)
+ [Alterar a senha do banco de dados](#CHAP_Security.ChangingDBPassword)
+ [Usando a autenticação Kerberos com AWS Database Migration Service](CHAP_Security.Kerberos.md)

# Proteção de dados em AWS Database Migration Service
<a name="CHAP_Security.DataProtection"></a>

## Criptografia de dados
<a name="CHAP_Security.DataProtection.DataEncryption"></a>

Você pode ativar a criptografia para recursos de dados de endpoints de AWS DMS destino compatíveis. AWS DMS também criptografa conexões de AWS DMS AWS DMS e entre todos os seus endpoints de origem e destino. Além disso, você pode gerenciar as chaves que AWS DMS e seus endpoints de destino compatíveis usam para habilitar essa criptografia.

**Topics**
+ [Criptografia em repouso](#CHAP_Security.DataProtection.DataEncryption.EncryptionAtRest)
+ [Criptografia em trânsito](#CHAP_Security.DataProtection.DataEncryption.EncryptionInTransit)
+ [Gerenciamento de chaves](#CHAP_Security.DataProtection.DataEncryption.KeyManagement)

### Criptografia em repouso
<a name="CHAP_Security.DataProtection.DataEncryption.EncryptionAtRest"></a>

AWS DMS suporta criptografia em repouso, permitindo que você especifique o modo de criptografia do lado do servidor que você deseja usar para enviar seus dados replicados para o Amazon S3 antes de serem copiados para endpoints de destino compatíveis. AWS DMS É possível especificar esse modo de criptografia definindo o atributo de conexão extra `encryptionMode` para o endpoint. Se essa `encryptionMode` configuração especificar o modo de criptografia da chave KMS, você também poderá criar AWS KMS chaves personalizadas especificamente para criptografar os dados de destino dos seguintes AWS DMS endpoints de destino:
+ Amazon Redshift: para obter mais informações sobre a configuração do `encryptionMode`, consulte [Configurações de endpoint ao usar o Amazon Redshift como destino para AWS DMS](CHAP_Target.Redshift.md#CHAP_Target.Redshift.ConnectionAttrib). Para obter mais informações sobre a criação de uma chave AWS KMS de criptografia personalizada, consulte[Criação e uso de AWS KMS chaves para criptografar dados de destino do Amazon Redshift](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys).
+ Amazon S3: para obter mais informações sobre a configuração do `encryptionMode`, consulte [Configurações de endpoint ao usar o Amazon S3 como destino para AWS DMS](CHAP_Target.S3.md#CHAP_Target.S3.Configuring). Para obter mais informações sobre a criação de uma chave AWS KMS de criptografia personalizada, consulte[Criação de AWS KMS chaves para criptografar objetos de destino do Amazon S3](CHAP_Target.S3.md#CHAP_Target.S3.KMSKeys).

### Criptografia em trânsito
<a name="CHAP_Security.DataProtection.DataEncryption.EncryptionInTransit"></a>

AWS DMS oferece suporte à criptografia em trânsito, garantindo que os dados que ele replica sejam movidos com segurança do endpoint de origem para o endpoint de destino. Isso inclui criptografar um bucket do S3 na instância de replicação usada por sua tarefa de replicação para armazenamento intermediário à medida que os dados são movidos pelo pipeline de replicação. Para criptografar conexões de tarefas com endpoints de origem e destino, AWS DMS use Secure Socket Layer (SSL) ou Transport Layer Security (TLS). Ao criptografar as conexões com os dois endpoints, AWS DMS garante que seus dados estejam seguros à medida que se movem do endpoint de origem para a tarefa de replicação e da tarefa para o endpoint de destino. Para obter mais informações sobre como usar SSL/TLS com AWS DMS, consulte [Usando SSL com AWS Database Migration Service](CHAP_Security.SSL.md)

AWS DMS suporta chaves padrão e personalizadas para criptografar o armazenamento de replicação intermediária e as informações de conexão. Essas chaves são gerenciadas com o AWS KMS. Para obter mais informações, consulte [Configurando uma chave de criptografia e especificando permissões AWS KMS](CHAP_Security.md#CHAP_Security.EncryptionKey).

### Gerenciamento de chaves
<a name="CHAP_Security.DataProtection.DataEncryption.KeyManagement"></a>

AWS DMS suporta chaves padrão ou personalizadas para criptografar o armazenamento de replicação, as informações de conexão e o armazenamento de dados de destino para determinados endpoints de destino. Você gerencia essas chaves usando AWS KMS o. Para obter mais informações, consulte [Configurando uma chave de criptografia e especificando permissões AWS KMS](CHAP_Security.md#CHAP_Security.EncryptionKey).

## Privacidade do tráfego entre redes
<a name="CHAP_Security.DataProtection.InternetworkTraffic"></a>

As conexões são fornecidas com proteção entre os endpoints de origem AWS DMS e de destino na mesma AWS região, seja em execução local ou como parte de um AWS serviço na nuvem. (Pelo menos um endpoint, origem ou destino, deve ser executado como parte de um AWS serviço na nuvem.) Essa proteção se aplica se esses componentes compartilharem a mesma nuvem privada virtual (VPC) ou existirem separadamente VPCs, se VPCs estiverem todos na mesma AWS região. Para obter mais informações sobre as configurações de rede suportadas para AWS DMS, consulte[Configurar uma rede para uma instância de replicação](CHAP_ReplicationInstance.VPC.md). Para obter mais informações sobre as considerações de segurança ao usar essas configurações de rede, consulte [Segurança de rede para AWS Database Migration Service](CHAP_Security.md#CHAP_Security.Network).

## Proteção de dados no DMS Fleet Advisor
<a name="fa-security-data-protection"></a>

O DMS Fleet Advisor coleta e analisa os metadados do banco de dados para determinar o tamanho certo do destino da migração. O DMS Fleet Advisor não acessa dados nas tabelas e não os transfere. Além disso, o DMS Fleet Advisor não rastreia a utilização de recursos do banco de dados e não acessa as estatísticas de utilização.

Você controla o acesso aos bancos de dados ao criar usuários de banco de dados que o DMS Fleet Advisor utiliza para trabalhar com os bancos de dados. Conceda os privilégios necessários a esses usuários. Para utilizar o DMS Fleet Advisor, conceda permissões de leitura aos usuários do banco de dados. O DMS Fleet Advisor não modifica os bancos de dados e não requer permissões de gravação. Para obter mais informações, consulte [Criar usuários do banco de dados para o AWS DMS Fleet Advisor](fa-database-users.md).

Você pode usar criptografia de dados em seus bancos de dados. AWS DMS também criptografa conexões no DMS Fleet Advisor e em seus coletores de dados.

O coletor de dados do DMS utiliza a interface de programação de aplicações de proteção de dados (DPAPI) para criptografar, proteger e armazenar informações sobre o ambiente do cliente e as credenciais do banco de dados. O DMS Fleet Advisor armazena esses dados criptografados em um arquivo no servidor em que o coletor de dados do DMS funciona. O DMS Fleet Advisor não transfere esses dados desse servidor. Para obter mais informações sobre o DPAPI, consulte [Como utilizar a proteção de dados](https://learn.microsoft.com/en-us/dotnet/standard/security/how-to-use-data-protection).

Depois de instalar o coletor de dados do DMS, é possível visualizar todas as consultas que essa aplicação executa para coletar métricas. É possível executar o coletor de dados do DMS em modo off-line e revisar os dados coletados no servidor. Além disso, é possível revisar esses dados coletados no bucket do Amazon S3. Para obter mais informações, consulte [Como funciona o coletor de dados do DMS?](fa-collecting.md#fa-data-collectors-how-it-works).

# Optando por não usar seus dados para melhorar o serviço em AWS Database Migration Service
<a name="CHAP_Security.dataserviceimprovement"></a>

Você pode optar por não ter seus dados usados para desenvolvimento e aprimoramento AWS DMS usando a política de exclusão da AWS Organizations. Você pode optar por rejeitar mesmo que o AWS DMS não colete esses dados no momento. Para ter mais informações, consulte [Políticas de exclusão de serviços de IA](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html) no *Guia do usuário do AWS Organizations*.

Atualmente, AWS Database Migration Service (AWS DMS) não coleta nenhum dos dados que processa em seu nome. Para desenvolver e melhorar o DMS e as funcionalidades de outros serviços da AWS , o DMS poderá coletar esses dados no futuro. Atualizaremos esta página de documentação quando o DMS estiver configurado para coletar quaisquer dados. Você terá a opção de rejeitar a qualquer momento.

**nota**  
Para que você use a política de exclusão, suas AWS contas devem ser gerenciadas centralmente pelas Organizations. AWS Se você não criou uma organização para suas AWS contas, consulte [Gerenciando uma organização com AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org.html) no *Guia do usuário do AWS Organizations*.

A exclusão tem os seguintes efeitos:
+ AWS DMS exclui os dados coletados e armazenados para fins de melhoria do serviço antes de sua exclusão (se houver).
+ Depois de cancelar, AWS DMS não colete nem armazene mais esses dados para fins de melhoria do serviço.

# Inferência entre regiões em AWS Database Migration Service
<a name="CHAP_Security.DataProtection.CrossRegionInference"></a>

 Certos AWS Database Migration Service recursos usam inferência de IA entre regiões para selecionar automaticamente o ideal Região da AWS em sua geografia para processar solicitações de inferência. Essa abordagem maximiza os recursos computacionais disponíveis e a disponibilidade do modelo e foi projetada para fornecer uma experiência de alta qualidade ao cliente. Com a inferência entre regiões, é possível obter: 
+ Acesso aos recursos e recursos de IA mais avançados
+ Maior throughput e resiliência durante períodos de alta demanda

 As solicitações de inferência de IA entre regiões são mantidas dentro das Regiões da AWS que fazem parte da mesma geografia da sua principal. Região da AWS Por exemplo, uma solicitação feita por uma primária Região da AWS nos EUA é mantida Regiões da AWS nos EUA. Seus dados permanecem armazenados somente no seu primário Região da AWS. Todos os dados são transmitidos criptografados pela rede segura da Amazon. 

**nota**  
A Amazon CloudWatch e AWS CloudTrail os registros não especificam onde Região da AWS ocorre a inferência de IA.

## Inferência entre regiões na conversão do esquema DMS
<a name="CHAP_Security.DataProtection.CrossRegionInference.SchemaConversion"></a>

 Quando você usa recursos de IA generativa na conversão de esquema do DMS, fragmentos de código anônimos e metadados de esquema relacionados podem ser enviados para outras pessoas na Regiões da AWS mesma geografia para processamento de IA. Seus dados de produção permanecem em seus dados primários Região da AWS e nunca são acessados ou transmitidos. 

**Importante**  
 A inferência entre regiões está sempre ativada quando você usa recursos de IA generativa na conversão de esquema do DMS. Para manter o processamento de conversão de esquema residente em seu principal Região da AWS, use a conversão de esquema com recursos de IA generativa desativados. 

 Os recursos generativos de IA na conversão de esquema do DMS estão atualmente disponíveis em um número limitado de regiões. A tabela a seguir descreve para Regiões da AWS onde suas solicitações podem ser encaminhadas, dependendo da sua primária Região da AWS. 


| Primária Região da AWS | Inferência Regiões da AWS | 
| --- | --- | 
| Ásia Pacific (Tóquio) (ap-northeast-1) |  Ásia Pacific (Tóquio) (ap-northeast-1) Ásia-Pacífico (Osaka) (ap-northeast-3)  | 
| Ásia-Pacífico (Osaka) (ap-northeast-3) |  Ásia Pacific (Tóquio) (ap-northeast-1) Ásia-Pacífico (Osaka) (ap-northeast-3)  | 
| Ásia-Pacífico (Sydney) (ap-southeast-2) |  Ásia-Pacífico (Sydney) (ap-southeast-2) Ásia-Pacífico (Melbourne) (ap-southeast-4)  | 
| Canadá (Central) (ca-central-1) |  Canadá (Central) (ca-central-1) Leste dos EUA (Norte da Virgínia) (us-east-1) Leste dos EUA (Ohio) (us-east-2) Oeste dos EUA (Oregon) (us-west-2)  | 
| Europa (Frankfurt) (eu-central-1) |  Europa (Frankfurt) (eu-central-1) UE (Estocolmo) (eu-north-1) UE (Milão) (eu-south-1) Europa (Espanha) (eu-south-2) Europa (Irlanda) (eu-west-1) Europa (Paris) (eu-west-3)  | 
| UE (Estocolmo) (eu-north-1) |  Europa (Frankfurt) (eu-central-1) UE (Estocolmo) (eu-north-1) UE (Milão) (eu-south-1) Europa (Espanha) (eu-south-2) Europa (Irlanda) (eu-west-1) Europa (Paris) (eu-west-3)  | 
| Europa (Irlanda) (eu-west-1) |  Europa (Frankfurt) (eu-central-1) UE (Estocolmo) (eu-north-1) UE (Milão) (eu-south-1) Europa (Espanha) (eu-south-2) Europa (Irlanda) (eu-west-1) Europa (Paris) (eu-west-3)  | 
| Europa (Londres) (eu-west-2) |  Europa (Frankfurt) (eu-central-1) UE (Estocolmo) (eu-north-1) UE (Milão) (eu-south-1) Europa (Espanha) (eu-south-2) Europa (Irlanda) (eu-west-1) Europa (Londres) (eu-west-2) Europa (Paris) (eu-west-3)  | 
| Europa (Paris) (eu-west-3) |  Europa (Frankfurt) (eu-central-1) UE (Estocolmo) (eu-north-1) UE (Milão) (eu-south-1) Europa (Espanha) (eu-south-2) Europa (Irlanda) (eu-west-1) Europa (Paris) (eu-west-3)  | 
| Leste dos EUA (Norte da Virgínia) (us-east-1) |  Leste dos EUA (Norte da Virgínia) (us-east-1) Leste dos EUA (Ohio) (us-east-2) Oeste dos EUA (Oregon) (us-west-2)  | 
| Leste dos EUA (Ohio) (us-east-2) |  Leste dos EUA (Norte da Virgínia) (us-east-1) Leste dos EUA (Ohio) (us-east-2) Oeste dos EUA (Oregon) (us-west-2)  | 
| Oeste dos EUA (Oregon) (us-west-2) |  Leste dos EUA (Norte da Virgínia) (us-east-1) Leste dos EUA (Ohio) (us-east-2) Oeste dos EUA (Oregon) (us-west-2)  | 

# Gerenciamento de identidade e acesso para AWS Database Migration Service
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) é uma ferramenta AWS service (Serviço da AWS) que ajuda o administrador a controlar com segurança o acesso aos AWS recursos. Os administradores do IAM controlam quem pode ser *autenticado* (conectado) e *autorizado* (tem permissões) a usar AWS DMS os recursos. O IAM é um AWS service (Serviço da AWS) que você pode usar sem custo adicional.

**Topics**
+ [Público](#security_iam_audience)
+ [Autenticação com identidades](#security_iam_authentication)
+ [Gerenciar o acesso usando políticas](#security_iam_access-manage)
+ [Como AWS Database Migration Service funciona com o IAM](security_iam_service-with-iam.md)
+ [AWS Database Migration Service exemplos de políticas baseadas em identidade](security_iam_id-based-policy-examples.md)
+ [Exemplos de políticas baseadas em recursos para AWS KMS](security_iam_resource-based-policy-examples.md)
+ [Usando segredos para acessar AWS Database Migration Service endpoints](security_iam_secretsmanager.md)
+ [Usando funções vinculadas a serviços para AWS DMS](using-service-linked-roles.md)
+ [Solução de problemas AWS Database Migration Service de identidade e acesso](security_iam_troubleshoot.md)
+ [Permissões do IAM necessárias para usar AWS DMS](#CHAP_Security.IAMPermissions)
+ [Criação das funções do IAM para usar com AWS DMS](#CHAP_Security.APIRole)
+ [Prevenção contra o ataque do “substituto confuso” em todos os serviços](cross-service-confused-deputy-prevention.md)
+ [AWS políticas gerenciadas para AWS Database Migration Service](security-iam-awsmanpol.md)

## Público
<a name="security_iam_audience"></a>

A forma como você usa AWS Identity and Access Management (IAM) difere com base na sua função:
+ **Usuário do serviço**: solicite permissões ao seu administrador se você não conseguir acessar os atributos (consulte [Solução de problemas AWS Database Migration Service de identidade e acesso](security_iam_troubleshoot.md)).
+ **Administrador do serviço**: determine o acesso do usuário e envie solicitações de permissão (consulte [Como AWS Database Migration Service funciona com o IAM](security_iam_service-with-iam.md))
+ **Administrador do IAM**: escreva políticas para gerenciar o acesso (consulte [AWS Database Migration Service exemplos de políticas baseadas em identidade](security_iam_id-based-policy-examples.md))

## Autenticação com identidades
<a name="security_iam_authentication"></a>

A autenticação é a forma como você faz login AWS usando suas credenciais de identidade. Você deve estar autenticado como usuário do IAM ou assumindo uma função do IAM. Usuário raiz da conta da AWS

Você pode fazer login como uma identidade federada usando credenciais de uma fonte de identidade como Centro de Identidade do AWS IAM (IAM Identity Center), autenticação de login único ou credenciais. Google/Facebook Para ter mais informações sobre como fazer login, consulte [Como fazer login em sua Conta da AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) no *Guia do usuário do Início de Sessão da AWS *.

Para acesso programático, AWS fornece um SDK e uma CLI para assinar solicitações criptograficamente. Para ter mais informações, consulte [AWS Signature Version 4 para solicitações de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) no *Guia do usuário do IAM*.

### Conta da AWS usuário root
<a name="security_iam_authentication-rootuser"></a>

 Ao criar um Conta da AWS, você começa com uma identidade de login chamada *usuário Conta da AWS raiz* que tem acesso completo a todos Serviços da AWS os recursos. É altamente recomendável não usar o usuário-raiz em tarefas diárias. Consulte as tarefas que exigem credenciais de usuário-raiz em [Tarefas que exigem credenciais de usuário-raiz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) no *Guia do usuário do IAM*. 

### Usuários e grupos do IAM
<a name="security_iam_authentication-iamuser"></a>

Um *[usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* é uma identidade com permissões específicas para uma única pessoa ou aplicação. É recomendável usar credenciais temporárias, em vez de usuários do IAM com credenciais de longo prazo. Para obter mais informações, consulte [Exigir que usuários humanos usem a federação com um provedor de identidade para acessar AWS usando credenciais temporárias](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) no *Guia do usuário do IAM*.

Um [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica um conjunto de usuários do IAM e facilita o gerenciamento de permissões para grandes conjuntos de usuários. Para ter mais informações, consulte [Casos de uso de usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) no *Guia do usuário do IAM*.

### Perfis do IAM
<a name="security_iam_authentication-iamrole"></a>

Uma *[perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* é uma identidade com permissões específicas que oferece credenciais temporárias. Você pode assumir uma função [mudando de um usuário para uma função do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) ou chamando uma operação de AWS API AWS CLI ou. Para saber mais, consulte [Métodos para assumir um perfil](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) no *Manual do usuário do IAM*.

Os perfis do IAM são úteis para acesso de usuário federado, permissões de usuário do IAM temporárias, acesso entre contas, acesso entre serviços e aplicações em execução no Amazon EC2. Consulte mais informações em [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.

## Gerenciar o acesso usando políticas
<a name="security_iam_access-manage"></a>

Você controla o acesso AWS criando políticas e anexando-as a AWS identidades ou recursos. Uma política define permissões quando associada a uma identidade ou recurso. AWS avalia essas políticas quando um diretor faz uma solicitação. A maioria das políticas é armazenada AWS como documentos JSON. Para ter mais informações sobre documentos de política JSON, consulte [Visão geral das políticas JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) no *Guia do usuário do IAM*.

Por meio de políticas, os administradores especificam quem tem acesso a que, definindo qual **entidade principal** pode realizar **ações** em quais **recursos** e sob quais **condições**.

Por padrão, usuários e perfis não têm permissões. Um administrador do IAM cria políticas do IAM e as adiciona aos perfis, os quais os usuários podem então assumir. As políticas do IAM definem permissões, independentemente do método usado para realizar a operação.

### Políticas baseadas em identidade
<a name="security_iam_access-manage-id-based-policies"></a>

As políticas baseadas em identidade são documentos de políticas de permissão JSON que você anexa a uma identidade (usuário, grupo ou perfil). Essas políticas controlam quais ações as identidades podem realizar, em quais recursos e sob quais condições. Para saber como criar uma política baseada em identidade, consulte [Definir permissões personalizadas do IAM com as políticas gerenciadas pelo cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) no *Guia do Usuário do IAM*.

As políticas baseadas em identidade podem ser políticas *em linha* (incorporadas diretamente em uma única identidade) ou *políticas gerenciadas* (políticas autônomas anexadas a várias identidades). Para saber como escolher entre uma política gerenciada e políticas em linha, consulte [Escolher entre políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) no *Guia do usuário do IAM*.

### Políticas baseadas em recursos
<a name="security_iam_access-manage-resource-based-policies"></a>

Políticas baseadas em recursos são documentos de políticas JSON que você anexa a um recurso. Entre os exemplos estão *políticas de confiança de perfil* do IAM e *políticas de bucket* do Amazon S3. Em serviços compatíveis com políticas baseadas em recursos, os administradores de serviço podem usá-las para controlar o acesso a um recurso específico. É necessário [especificar uma entidade principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) em uma política baseada em recursos.

Políticas baseadas em recursos são políticas em linha localizadas nesse serviço. Você não pode usar políticas AWS gerenciadas do IAM em uma política baseada em recursos.

### Listas de controle de acesso (ACLs)
<a name="security_iam_access-manage-acl"></a>

As listas de controle de acesso (ACLs) controlam quais diretores (membros da conta, usuários ou funções) têm permissões para acessar um recurso. ACLs são semelhantes às políticas baseadas em recursos, embora não usem o formato de documento de política JSON.

O Amazon S3 e o AWS WAF Amazon VPC são exemplos de serviços que oferecem suporte. ACLs Para saber mais ACLs, consulte a [visão geral da lista de controle de acesso (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) no *Guia do desenvolvedor do Amazon Simple Storage Service*.

### Outros tipos de política
<a name="security_iam_access-manage-other-policies"></a>

AWS oferece suporte a tipos de políticas adicionais que podem definir o máximo de permissões concedidas por tipos de políticas mais comuns:
+ **Limites de permissões**: definem o número máximo de permissões que uma política baseada em identidade pode conceder a uma entidade do IAM. Para saber mais sobre limites de permissões, consulte [Limites de permissões para identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) no *Guia do usuário do IAM*.
+ **Políticas de controle de serviço (SCPs)** — Especifique as permissões máximas para uma organização ou unidade organizacional em AWS Organizations. Para saber mais, consulte [Políticas de controle de serviço](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) no *Guia do usuário do AWS Organizations *.
+ **Políticas de controle de recursos (RCPs)** — Defina o máximo de permissões disponíveis para recursos em suas contas. Para obter mais informações, consulte [Políticas de controle de recursos (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) no *Guia AWS Organizations do usuário*.
+ **Políticas de sessão**: políticas avançadas transmitidas como um parâmetro durante a criação de uma sessão temporária para um perfil ou um usuário federado. Para saber mais, consulte [Políticas de sessão](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) no *Guia do usuário do IAM*.

### Vários tipos de política
<a name="security_iam_access-manage-multiple-policies"></a>

Quando vários tipos de política são aplicáveis a uma solicitação, é mais complicado compreender as permissões resultantes. Para saber como AWS determinar se uma solicitação deve ser permitida quando vários tipos de políticas estão envolvidos, consulte [Lógica de avaliação de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) no *Guia do usuário do IAM*.

# Como AWS Database Migration Service funciona com o IAM
<a name="security_iam_service-with-iam"></a>

Antes de usar o IAM para gerenciar o acesso AWS DMS, você deve entender quais recursos do IAM estão disponíveis para uso AWS DMS. Para ter uma visão de alto nível de como AWS DMS e outros AWS serviços funcionam com o IAM, consulte [AWS os serviços que funcionam com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) no *Guia do usuário do IAM*.

**Topics**
+ [AWS DMS políticas baseadas em identidade](#security_iam_service-with-iam-id-based-policies)
+ [AWS DMS políticas baseadas em recursos](#security_iam_service-with-iam-resource-based-policies)
+ [Autorização baseada em AWS DMS tags](#security_iam_service-with-iam-tags)
+ [Funções do IAM para AWS DMS](#security_iam_service-with-iam-roles)
+ [Gerenciamento de identidade e acesso do DMS Fleet Advisor](#fa-security-iam)

## AWS DMS políticas baseadas em identidade
<a name="security_iam_service-with-iam-id-based-policies"></a>

Com as políticas baseadas em identidade do IAM, é possível especificar ações e recursos permitidos ou negados e as condições sob as quais as ações são permitidas ou negadas. O AWS DMS é compatível com ações, recursos e chaves de condição específicos. Para saber mais sobre todos os elementos usados em uma política JSON, consulte [Referência de elementos de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do usuário do IAM*.

### Ações
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento `Action` de uma política JSON descreve as ações que podem ser usadas para permitir ou negar acesso em uma política. Incluem ações em uma política para conceder permissões para executar a operação associada.

As ações políticas AWS DMS usam o seguinte prefixo antes da ação:`dms:`. Por exemplo, para conceder permissão a alguém para criar uma tarefa de replicação com a operação da AWS DMS `CreateReplicationTask` API, você inclui a `dms:CreateReplicationTask` ação na política dessa pessoa. As declarações de política devem incluir um `NotAction` elemento `Action` ou. AWS DMS define seu próprio conjunto de ações que descrevem as tarefas que você pode executar com esse serviço.

Para especificar várias ações em uma única declaração, separe-as com vírgulas, conforme a seguir.

```
"Action": [
      "dms:action1",
      "dms:action2"
```

Você também pode especificar várias ações utilizando caracteres curinga (\$1). Por exemplo, para especificar todas as ações que começam com a palavra `Describe`, inclua a ação a seguir:

```
"Action": "dms:Describe*"
```



Para ver uma lista de AWS DMS ações, consulte [Ações definidas por AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-actions-as-permissions) no *Guia do usuário do IAM*.

### Recursos
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento de política JSON `Resource` especifica o objeto ou os objetos aos quais a ação se aplica. Como prática recomendada, especifique um recurso usando seu [nome do recurso da Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). Para ações que não oferecem compatibilidade com permissões em nível de recurso, use um curinga (\$1) para indicar que a instrução se aplica a todos os recursos.

```
"Resource": "*"
```



AWS DMS funciona com os seguintes recursos:
+ Certificados
+ Endpoints
+ Assinaturas de eventos
+ Instâncias de replicação
+ Grupos de sub-rede (segurança) de replicação
+ Tarefas de replicação

O recurso ou recursos AWS DMS necessários dependem da ação ou ações que você invoca. Você precisa de uma política que permita essas ações no recurso associado ou nos recursos especificados pelo recurso ARNs.

Por exemplo, um recurso de AWS DMS endpoint tem o seguinte ARN:

```
arn:${Partition}:dms:${Region}:${Account}:endpoint/${InstanceId}
```

Para obter mais informações sobre o formato de ARNs, consulte [Amazon Resource Names (ARNs) e namespaces AWS de serviços](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).

Por exemplo, para especificar a instância de endpoint `1A2B3C4D5E6F7G8H9I0J1K2L3M` para a região `us-east-2` em sua instrução, utilize o ARN a seguir.

```
"Resource": "arn:aws:dms:us-east-2:987654321098:endpoint/1A2B3C4D5E6F7G8H9I0J1K2L3M"
```

Para especificar todos os endpoints que pertencem a uma conta específica, utilize o caractere curinga (\$1):

```
"Resource": "arn:aws:dms:us-east-2:987654321098:endpoint/*"
```

Algumas AWS DMS ações, como as de criação de recursos, não podem ser executadas em um recurso específico. Nesses casos, é necessário utilizar o caractere curinga (\$1).

```
"Resource": "*"
```

Algumas ações AWS DMS da API envolvem vários recursos. Por exemplo, o `StartReplicationTask` inicia e conecta uma tarefa de replicação para dois recursos de endpoint de banco de dados, uma origem e um destino, portanto, um usuário do IAM deve ter permissões para ler o endpoint de origem e gravar no endpoint de destino. Para especificar vários recursos em uma única instrução, separe-os ARNs com vírgulas. 

```
"Resource": [
      "resource1",
      "resource2" ]
```

Para obter mais informações sobre como controlar o acesso aos AWS DMS recursos usando políticas, consulte[Usar nomes de recursos para controle de acesso](CHAP_Security.FineGrainedAccess.md#CHAP_Security.FineGrainedAccess.ResourceName). Para ver uma lista dos tipos de AWS DMS recursos e seus ARNs, consulte [Resources Defined by AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-resources-for-iam-policies) no *Guia do usuário do IAM*. Para saber com quais ações é possível especificar o ARN de cada recurso, consulte [Ações definidas pelo AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-actions-as-permissions).

### Chaves de condição
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

Os administradores podem usar políticas AWS JSON para especificar quem tem acesso ao quê. Ou seja, qual **entidade principal** pode executar **ações** em quais **recursos** e em que **condições**.

O elemento `Condition` especifica quando as instruções são executadas com base em critérios definidos. É possível criar expressões condicionais que usem [agentes de condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), como “igual a” ou “menor que”, para fazer a condição da política corresponder aos valores na solicitação. Para ver todas as chaves de condição AWS globais, consulte as [chaves de contexto de condição AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*.

AWS DMS define seu próprio conjunto de chaves de condição e também oferece suporte ao uso de algumas chaves de condição globais. Para ver todas as chaves de condição AWS globais, consulte as [chaves de contexto de condição AWS global](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) no *Guia do usuário do IAM*.



AWS DMS define um conjunto de tags padrão que você pode usar em suas chaves de condição e também permite que você defina suas próprias tags personalizadas. Para obter mais informações, consulte [Uso de tags para controlar o acesso](CHAP_Security.FineGrainedAccess.md#CHAP_Security.FineGrainedAccess.Tags).

Para ver uma lista de chaves de AWS DMS condição, consulte [Chaves de condição AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-policy-keys) no *Guia do usuário do IAM*. Para saber com quais ações e recursos é possível utilizar uma chave de condição, consulte [Ações definidas pelo AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-actions-as-permissions) e [Recursos definidos pelo AWS Database Migration Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsdatabasemigrationservice.html#awsdatabasemigrationservice-resources-for-iam-policies).

### Exemplos
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Para ver exemplos de políticas AWS DMS baseadas em identidade, consulte. [AWS Database Migration Service exemplos de políticas baseadas em identidade](security_iam_id-based-policy-examples.md)

## AWS DMS políticas baseadas em recursos
<a name="security_iam_service-with-iam-resource-based-policies"></a>

Políticas baseadas em recursos são documentos de política JSON que especificam quais ações um diretor específico pode realizar em um determinado AWS DMS recurso e sob quais condições. AWS DMS oferece suporte a políticas de permissões baseadas em recursos para chaves de AWS KMS criptografia que você cria para criptografar dados migrados para endpoints de destino compatíveis. Os endpoints de destino compatíveis incluem o Amazon Redshift e o Amazon S3. Usando políticas baseadas em recursos, é possível conceder a permissão para utilizar essas chaves de criptografia para outras contas para cada endpoint de destino.

Para permitir o acesso entre contas, é possível especificar uma conta inteira ou as entidades do IAM em outra conta como a [entidade principal em uma política baseada em recurso](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html). Adicionar uma entidade principal entre contas à política baseada em recurso é apenas metade da tarefa de estabelecimento da relação de confiança. Quando o principal e o recurso estão em AWS contas diferentes, você também deve conceder permissão à entidade principal para acessar o recurso. Conceda permissão anexando uma política baseada em identidade para a entidade. No entanto, se uma política baseada em recurso conceder acesso a uma entidade principal na mesma conta, nenhuma política baseada em identidade adicional será necessária. Para obter mais informações, consulte [Como os perfis do IAM diferem de políticas baseadas em recursos ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_compare-resource-policies.html)no *Guia do usuário do IAM*.

O AWS DMS serviço oferece suporte a apenas um tipo de política baseada em recursos chamada política de *chaves*, que é anexada a uma chave de AWS KMS criptografia. Essa política define quais entidades principais (contas, usuários, perfis e usuários federados) podem criptografar dados migrados no endpoint de destino compatível.

Para saber como associar uma política baseada em recursos a uma chave de criptografia criada para os endpoints de destino compatíveis, consulte [Criação e uso de AWS KMS chaves para criptografar dados de destino do Amazon Redshift](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys) e [Criação de AWS KMS chaves para criptografar objetos de destino do Amazon S3](CHAP_Target.S3.md#CHAP_Target.S3.KMSKeys).

### Exemplos
<a name="security_iam_service-with-iam-resource-based-policies-examples"></a>



Para obter exemplos de políticas AWS DMS baseadas em recursos, consulte. [Exemplos de políticas baseadas em recursos para AWS KMS](security_iam_resource-based-policy-examples.md)

## Autorização baseada em AWS DMS tags
<a name="security_iam_service-with-iam-tags"></a>

Você pode anexar tags a AWS DMS recursos ou passar tags em uma solicitação para AWS DMS. Para controlar o acesso com base em tags, você fornece as informações da tag no [elemento](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) condicional de uma política usando a chave de `aws:TagKeys` condição `dms:ResourceTag/key-name``aws:RequestTag/key-name`, ou. AWS DMS define um conjunto de tags padrão que você pode usar em suas chaves de condição e também permite que você defina suas próprias tags personalizadas. Para obter mais informações, consulte [Uso de tags para controlar o acesso](CHAP_Security.FineGrainedAccess.md#CHAP_Security.FineGrainedAccess.Tags).

Para obter um exemplo de política baseada em identidade que limita o acesso a um recurso com base em tags, consulte [Acessando AWS DMS recursos com base em tags](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-access-resources-tags).

## Funções do IAM para AWS DMS
<a name="security_iam_service-with-iam-roles"></a>

Uma [função do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) é uma entidade dentro da sua AWS conta que tem permissões específicas.

### Usando credenciais temporárias com AWS DMS
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

É possível utilizar credenciais temporárias para fazer login com federação, assumir um perfil do IAM ou assumir um perfil entre contas. Você obtém credenciais de segurança temporárias chamando operações de AWS STS API, como [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)ou [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html). 

AWS DMS suporta o uso de credenciais temporárias. 

### Perfis vinculados ao serviço
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[As funções vinculadas ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) permitem que AWS os serviços acessem recursos em outros serviços para concluir uma ação em seu nome. Os perfis vinculados a serviço aparecem em sua conta do IAM e são de propriedade do serviço. Um administrador do IAM pode visualizar, mas não pode editar as permissões para perfis vinculados a serviço.

Para obter detalhes sobre como criar ou gerenciar funções AWS DMS vinculadas a serviços, consulte. [Uso de perfis vinculados ao serviço](using-service-linked-roles.md)

### Perfis de serviço
<a name="security_iam_service-with-iam-roles-service"></a>

Esse atributo permite que um serviço assuma um [perfil de serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role) em seu nome. O perfil permite que o serviço acesse recursos em outros serviços para concluir uma ação em seu nome. Os perfis de serviço aparecem em sua conta do IAM e são de propriedade da conta. Isso significa que um administrador do IAM pode alterar as permissões para esse perfil. Porém, fazer isso pode alterar a funcionalidade do serviço.

AWS DMS oferece suporte a dois tipos de funções de serviço que você deve criar para usar determinados endpoints de origem ou destino:
+ Funções com permissões para permitir que o AWS DMS acesse os seguintes endpoints de origem e destino (ou seus recursos):
  + Amazon DynamoDB como destino: para obter mais informações, consulte [Pré-requisitos para usar o DynamoDB como destino para AWS Database Migration Service](CHAP_Target.DynamoDB.md#CHAP_Target.DynamoDB.Prerequisites).
  + OpenSearch como alvo — Para obter mais informações, consulte[Pré-requisitos para usar o Amazon OpenSearch Service como alvo para AWS Database Migration Service](CHAP_Target.Elasticsearch.md#CHAP_Target.Elasticsearch.Prerequisites).
  + Amazon Kinesis como destino: para obter mais informações, consulte [Pré-requisitos para usar um stream de dados do Kinesis como destino para AWS Database Migration Service](CHAP_Target.Kinesis.md#CHAP_Target.Kinesis.Prerequisites).
  + Amazon Redshift como destino: é necessário criar o perfil especificado somente para criar uma chave de criptografia do KMS personalizada a fim de criptografar os dados de destino ou especificar um bucket do S3 personalizado para conter o armazenamento de tarefas intermediárias. Para acessar mais informações, consulte [Criação e uso de AWS KMS chaves para criptografar dados de destino do Amazon Redshift](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys) ou [Configurações do bucket do Amazon S3](CHAP_Target.Redshift.md#CHAP_Target.Redshift.EndpointSettings.S3Buckets).
  + Amazon S3 como origem ou como destino: para obter mais informações, consulte [Pré-requisitos ao usar o Amazon S3 como fonte para AWS DMS](CHAP_Source.S3.md#CHAP_Source.S3.Prerequisites) ou [Pré-requisitos da utilização do Amazon S3 como destino](CHAP_Target.S3.md#CHAP_Target.S3.Prerequisites).

  Por exemplo, para ler dados de um endpoint de origem do S3 ou enviar dados para um endpoint de destino do S3, é necessário criar um perfil de serviço como um pré-requisito para acessar o S3 para cada uma dessas operações de endpoint. 
+ Funções com permissões necessárias para usar o console do AWS DMS, a API AWS CLI e o AWS DMS — Duas funções do IAM que você precisa criar são e. `dms-vpc-role` `dms-cloudwatch-logs-role` Se você usa o Amazon Redshift como banco de dados de destino, você também deve criar e adicionar a função do IAM `dms-access-for-endpoint` à sua AWS conta. Para obter mais informações, consulte [Criação das funções do IAM para usar com AWS DMS](security-iam.md#CHAP_Security.APIRole).

### Escolha de uma função do IAM em AWS DMS
<a name="security_iam_service-with-iam-roles-choose"></a>

Se você usa o console do AWS DMS AWS CLI ou a API do AWS DMS para sua migração de banco de dados, você deve adicionar determinadas funções do IAM à sua AWS conta antes de poder usar os recursos do AWS DMS. Duas delas são `dms-vpc-role` e `dms-cloudwatch-logs-role`. Se você usa o Amazon Redshift como banco de dados de destino, você também deve adicionar a função do IAM `dms-access-for-endpoint` à sua AWS conta. Para obter mais informações, consulte [Criação das funções do IAM para usar com AWS DMS](security-iam.md#CHAP_Security.APIRole).

## Gerenciamento de identidade e acesso do DMS Fleet Advisor
<a name="fa-security-iam"></a>

Com as políticas baseadas em identidade do IAM, é possível especificar ações e recursos permitidos ou negados, além das condições sob as quais as ações são permitidas ou negadas. O DMS Fleet Advisor é compatível com ações, recursos e chaves de condição específicos. Para saber mais sobre todos os elementos usados em uma política JSON, consulte [Referência de elementos de política JSON do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) no *Guia do usuário do IAM*. 

O DMS Fleet Advisor utiliza perfis do IAM para acessar o Amazon Simple Storage Service. Uma [função do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) é uma entidade dentro da sua AWS conta que tem permissões específicas. Para obter mais informações, consulte [Criar recursos do IAM](fa-resources.md#fa-resources-iam). 

# AWS Database Migration Service exemplos de políticas baseadas em identidade
<a name="security_iam_id-based-policy-examples"></a>

Por padrão, os usuários e os perfis do IAM não têm permissão para criar ou modificar recursos do AWS DMS . Eles também não podem realizar tarefas usando a AWS API Console de gerenciamento da AWS AWS CLI, ou. Um administrador do IAM deve criar políticas do IAM que concedam aos usuários e perfis permissão para executarem operações de API específicas nos recursos especificados de que precisam. O administrador deve anexar essas políticas aos usuários ou grupos do IAM que exigem essas permissões.

Para saber como criar uma política baseada em identidade do IAM utilizando esses exemplos de documentos de política JSON, consulte [Criar políticas na guia JSON ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor) no *Guia do usuário do IAM*.

**Topics**
+ [Práticas recomendadas de política](#security_iam_service-with-iam-policy-best-practices)
+ [Usando o AWS DMS console](#security_iam_id-based-policy-examples-console)
+ [Permitir que os usuários visualizem suas próprias permissões](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Acessar um bucket do Amazon S3](#security_iam_id-based-policy-examples-access-one-bucket)
+ [Acessando AWS DMS recursos com base em tags](#security_iam_id-based-policy-examples-access-resources-tags)

## Práticas recomendadas de política
<a name="security_iam_service-with-iam-policy-best-practices"></a>

As políticas baseadas em identidade determinam se alguém pode criar, acessar ou excluir AWS DMS recursos em sua conta. Essas ações podem incorrer em custos para sua Conta da AWS. Ao criar ou editar políticas baseadas em identidade, siga estas diretrizes e recomendações:
+ **Comece com as políticas AWS gerenciadas e avance para as permissões de privilégios mínimos — Para começar a conceder permissões** aos seus usuários e cargas de trabalho, use as *políticas AWS gerenciadas* que concedem permissões para muitos casos de uso comuns. Eles estão disponíveis no seu Conta da AWS. Recomendamos que você reduza ainda mais as permissões definindo políticas gerenciadas pelo AWS cliente que sejam específicas para seus casos de uso. Para saber mais, consulte [Políticas gerenciadas pela AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) ou [Políticas gerenciadas pela AWS para funções de trabalho](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) no *Guia do usuário do IAM*.
+ **Aplique permissões de privilégio mínimo**: ao definir permissões com as políticas do IAM, conceda apenas as permissões necessárias para executar uma tarefa. Você faz isso definindo as ações que podem ser executadas em recursos específicos sob condições específicas, também conhecidas como *permissões de privilégio mínimo*. Para saber mais sobre como usar o IAM para aplicar permissões, consulte [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.
+ **Use condições nas políticas do IAM para restringir ainda mais o acesso**: é possível adicionar uma condição às políticas para limitar o acesso a ações e recursos. Por exemplo, é possível escrever uma condição de política para especificar que todas as solicitações devem ser enviadas usando SSL. Você também pode usar condições para conceder acesso às ações de serviço se elas forem usadas por meio de uma ação específica AWS service (Serviço da AWS), como CloudFormation. Para saber mais, consulte [Elementos da política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) no *Guia do usuário do IAM*.
+ **Use o IAM Access Analyzer para validar suas políticas do IAM a fim de garantir permissões seguras e funcionais**: o IAM Access Analyzer valida as políticas novas e existentes para que elas sigam a linguagem de política do IAM (JSON) e as práticas recomendadas do IAM. O IAM Access Analyzer oferece mais de cem verificações de política e recomendações práticas para ajudar a criar políticas seguras e funcionais. Para saber mais, consulte [Validação de políticas do IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) no *Guia do Usuário do IAM*.
+ **Exigir autenticação multifator (MFA**) — Se você tiver um cenário que exija usuários do IAM ou um usuário root, ative Conta da AWS a MFA para obter segurança adicional. Para exigir MFA quando as operações de API forem chamadas, adicione condições de MFA às suas políticas. Para saber mais, consulte [Configuração de acesso à API protegido por MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) no *Guia do Usuário do IAM*.

Para saber mais sobre as práticas recomendadas do IAM, consulte [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) no *Guia do usuário do IAM*.

## Usando o AWS DMS console
<a name="security_iam_id-based-policy-examples-console"></a>

A política a seguir fornece acesso ao AWS DMS, incluindo o console do AWS DMS, e também especifica permissões para determinadas ações necessárias de outros serviços da Amazon, como o Amazon EC2.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
     "Statement": [
    {
        "Effect": "Allow",
        "Action": "dms:*",
        "Resource": "arn:aws:dms:*:123456789012:*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "kms:ListAliases",
            "kms:DescribeKey"
        ],
        "Resource": "arn:aws:kms:*:123456789012:key/*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "iam:GetRole",
            "iam:CreateRole",
            "iam:AttachRolePolicy"
        ],
        "Resource": "arn:aws:iam::123456789012:role/*"
    },
    {
        "Effect": "Allow",
        "Action": "iam:PassRole",
        "Resource": "arn:aws:iam::123456789012:role/*",
        "Condition": {
            "StringEquals": {
                "iam:PassedToService": "dms.amazonaws.com"
            }
        }
    },
    {
        "Effect": "Allow",
        "Action": [
            "ec2:DescribeVpcs",
            "ec2:DescribeInternetGateways",
            "ec2:DescribeAvailabilityZones",
            "ec2:DescribeSubnets",
            "ec2:DescribeSecurityGroups",
            "ec2:ModifyNetworkInterfaceAttribute",
            "ec2:CreateNetworkInterface",
            "ec2:DeleteNetworkInterface"
        ],
        "Resource": "*"
    },
    {
        "Effect": "Allow",
        "Action": [
            "cloudwatch:Get*",
            "cloudwatch:List*"
        ],
    "Resource": "*"
    },
    {
    "Effect": "Allow",
    "Action": [
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:FilterLogEvents",
        "logs:GetLogEvents"
        ],
    "Resource": "arn:aws:logs:*:123456789012:*"
    }
   ]
}
```

------

Um detalhamento dessas permissões pode ajudá-lo a entender melhor por que cada uma é necessária para utilizar o console.

A seção a seguir é necessária para permitir que o usuário liste suas chaves do AWS KMS disponíveis e o alias para exibição no console. Essa entrada não será necessária se você souber o Nome de recurso da Amazon (ARN) da chave do KMS e estiver usando apenas a AWS Command Line Interface (AWS CLI).

```
{
            "Effect": "Allow",
            "Action": [
                "kms:ListAliases", 
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

A seção a seguir é necessária para determinados tipos de endpoints que exigem que um ARN de perfil seja passado com o endpoint. Além disso, se as AWS DMS funções necessárias não forem criadas com antecedência, o AWS DMS console poderá criar a função. Se todos os perfis forem configurados com antecedência, tudo isso será necessário em `iam:GetRole` e `iam:PassRole`. Para ter mais informações sobre funções, consulte [Criação das funções do IAM para usar com AWS DMS](security-iam.md#CHAP_Security.APIRole).

```
{
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:PassRole",
                "iam:CreateRole",
                "iam:AttachRolePolicy"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

A seção a seguir é obrigatória porque AWS DMS precisa criar a instância do Amazon EC2 e configurar a rede para a instância de replicação criada. Esses recursos existem na conta do cliente, por isso, a capacidade de executar essas ações em nome do cliente é necessária.

```
{
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

A seção a seguir é necessária para permitir que o usuário possa visualizar as métricas da instância de replicação.

```
{
            "Effect": "Allow",
            "Action": [
                "cloudwatch:Get*",
                "cloudwatch:List*"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Esta seção é necessária para permitir que o usuário veja os logs de replicação.

```
{
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:FilterLogEvents",
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Se você usa o console do AWS DMS, o AWS Command Line Interface (AWS CLI) ou a API do AWS DMS para sua migração, precisará adicionar várias funções à sua conta. Para obter mais informações sobre essas funções, consulte [Criação das funções do IAM para usar com AWS DMS](security-iam.md#CHAP_Security.APIRole).

Para obter mais informações sobre os requisitos para usar essa política para acessar o AWS DMS, consulte[Permissões do IAM necessárias para usar AWS DMS](security-iam.md#CHAP_Security.IAMPermissions).

## Permitir que os usuários visualizem suas próprias permissões
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

Este exemplo mostra como criar uma política que permita que os usuários do IAM visualizem as políticas gerenciadas e em linha anexadas a sua identidade de usuário. Essa política inclui permissões para concluir essa ação no console ou programaticamente usando a API AWS CLI ou AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## Acessar um bucket do Amazon S3
<a name="security_iam_id-based-policy-examples-access-one-bucket"></a>

AWS O DMS usa buckets do Amazon S3 como armazenamento intermediário para migração de banco de dados. Normalmente, o AWS DMS gerencia buckets S3 padrão para essa finalidade. No entanto, em certos casos, especialmente quando você usa a API AWS CLI ou a API do AWS DMS, o AWS DMS permite que você especifique seu próprio bucket do S3. Por exemplo, é possível especificar seu próprio bucket do S3 para migrar dados para um endpoint de destino do Amazon Redshift. Nesse caso, você precisa criar uma função com permissões com base na `AmazonDMSRedshiftS3Role` política AWS gerenciada.

O exemplo a seguir mostra uma versão da política `AmazonDMSRedshiftS3Role`. Ele permite que o AWS DMS conceda a um usuário do IAM em sua AWS conta acesso a um dos seus buckets do Amazon S3. Ela também permite que o usuário adicione, atualize e exclua objetos.

Além de conceder as permissões `s3:PutObject`, `s3:GetObject` e `s3:DeleteObject` ao usuário, a política também concede as permissões `s3:ListAllMyBuckets`, `s3:GetBucketLocation` e `s3:ListBucket`. Estas são permissões adicionais, exigidas pelo console. Outras permissões permitem que o AWS DMS gerencie o ciclo de vida do bucket. Além disso, a ação `s3:GetObjectAcl` é necessária para poder copiar objetos.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:ListBucket",
                "s3:DeleteBucket",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:GetBucketPolicy",
                "s3:PutBucketPolicy",
                "s3:GetBucketAcl",
                "s3:PutBucketVersioning",
                "s3:GetBucketVersioning",
                "s3:PutLifecycleConfiguration",
                "s3:GetLifecycleConfiguration",
                "s3:DeleteBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::dms-*"
        }
    ]
}
```

------

Para obter mais informações sobre como criar um perfil baseado nessa política, consulte [Configurações do bucket do Amazon S3](CHAP_Target.Redshift.md#CHAP_Target.Redshift.EndpointSettings.S3Buckets).

## Acessando AWS DMS recursos com base em tags
<a name="security_iam_id-based-policy-examples-access-resources-tags"></a>

É possível utilizar condições na política baseada em identidade para controlar o acesso aos recursos do AWS DMS com base em tags. Este exemplo mostra como você pode criar uma política que permita acesso a todos os endpoints do AWS DMS. No entanto, a permissão será concedida somente se a tag de banco de dados de endpoint `Owner` tiver o valor do nome desse usuário.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "dms:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "dms:endpoint-tag/Owner": "${aws:username}"
        }
      }
    }
  ]
}
```

------

É possível anexar essa política aos usuários do IAM na sua conta. Se um usuário chamado `richard-roe` tentar acessar um AWS DMS endpoint, o banco de dados do endpoint deverá ser marcado como `Owner=richard-roe` ou. `owner=richard-roe` Caso contrário, esse usuário terá o acesso negado. A chave da tag de condição `Owner` corresponde a `Owner` e a `owner` porque os nomes das chaves de condição não fazem distinção entre maiúsculas e minúsculas. Para obter mais informações, consulte [Elementos de política JSON do IAM: condição](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) no *Guia do usuário do IAM*.

# Exemplos de políticas baseadas em recursos para AWS KMS
<a name="security_iam_resource-based-policy-examples"></a>

AWS O DMS permite que você crie chaves de AWS KMS criptografia personalizadas para criptografar dados de endpoint de destino compatíveis. Para saber como criar e associar uma política de chave à chave de criptografia criada para a criptografia compatível de dados de destino, consulte [Criação e uso de AWS KMS chaves para criptografar dados de destino do Amazon Redshift](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys) e [Criação de AWS KMS chaves para criptografar objetos de destino do Amazon S3](CHAP_Target.S3.md#CHAP_Target.S3.KMSKeys).

**Topics**
+ [Uma política para uma chave de AWS KMS criptografia personalizada para criptografar dados de destino do Amazon Redshift](#security_iam_resource-based-policy-examples-custom-rs-key-policy)
+ [Uma política para uma chave de AWS KMS criptografia personalizada para criptografar dados de destino do Amazon S3](#security_iam_resource-based-policy-examples-custom-s3-key-policy)

## Uma política para uma chave de AWS KMS criptografia personalizada para criptografar dados de destino do Amazon Redshift
<a name="security_iam_resource-based-policy-examples-custom-rs-key-policy"></a>

O exemplo a seguir mostra o JSON para a política de chave criada para uma chave de criptografia do AWS KMS criada para criptografar dados de destino do Amazon Redshift.

------
#### [ JSON ]

****  

```
{
  "Id": "key-consolepolicy-3",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Enable IAM User Permissions",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:root"
        ]
      },
      "Action": "kms:*",
      "Resource": "*"
    },
    {
      "Sid": "Allow access for Key Administrators",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:role/Admin"
        ]
      },
      "Action": [
        "kms:Create*",
        "kms:Describe*",
        "kms:Enable*",
        "kms:List*",
        "kms:Put*",
        "kms:Update*",
        "kms:Revoke*",
        "kms:Disable*",
        "kms:Get*",
        "kms:Delete*",
        "kms:TagResource",
        "kms:UntagResource",
        "kms:ScheduleKeyDeletion",
        "kms:CancelKeyDeletion"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Allow use of the key",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:role/DMS-Redshift-endpoint-access-role"
        ]
      },
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
      ],
      "Resource": "*"
    },
    {
      "Sid": "Allow attachment of persistent resources",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::987654321098:role/DMS-Redshift-endpoint-access-role"
        ]
      },
      "Action": [
        "kms:CreateGrant",
        "kms:ListGrants",
        "kms:RevokeGrant"
      ],
      "Resource": "*",
      "Condition": {
        "Bool": {
          "kms:GrantIsForAWSResource": true
        }
      }
    }
  ]
}
```

------

Aqui, é possível ver onde a política de chave faz referência ao perfil para acessar dados do endpoint de destino do Amazon Redshift criado antes de criar a chave. No exemplo, é `DMS-Redshift-endpoint-access-role`. Também é possível ver as diferentes ações chave permitidas para os diferentes principais (usuários e funções). Por exemplo, qualquer usuário com `DMS-Redshift-endpoint-access-role` pode criptografar, descriptografar e criptografar novamente os dados de destino. Esse usuário também pode gerar chaves de dados para exportação para criptografar os dados externos. AWS KMS Eles também podem retornar informações detalhadas sobre uma AWS KMS chave, como a chave que você acabou de criar. Além disso, esse usuário pode gerenciar anexos aos recursos da AWS , como o endpoint de destino.

## Uma política para uma chave de AWS KMS criptografia personalizada para criptografar dados de destino do Amazon S3
<a name="security_iam_resource-based-policy-examples-custom-s3-key-policy"></a>

O exemplo a seguir mostra o JSON da política de chave criada para uma chave de criptografia do AWS KMS que você cria para criptografar dados de destino do Amazon S3.

------
#### [ JSON ]

****  

```
{
    "Id": "key-consolepolicy-3",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:root"
                ]
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:role/Admin"
                ]
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:role/DMS-S3-endpoint-access-role"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow attachment of persistent resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::987654321098:role/DMS-S3-endpoint-access-role"
                ]
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": true
                }
            }
        }
    ]
}
```

------

Aqui, é possível ver onde a política de chave faz referência ao perfil para acessar dados de endpoint de destino do Amazon S3 criado antes de criar a chave. No exemplo, é `DMS-S3-endpoint-access-role`. Também é possível ver as diferentes ações chave permitidas para os diferentes principais (usuários e funções). Por exemplo, qualquer usuário com `DMS-S3-endpoint-access-role` pode criptografar, descriptografar e criptografar novamente os dados de destino. Esse usuário também pode gerar chaves de dados para exportação para criptografar os dados externos. AWS KMS Eles também podem retornar informações detalhadas sobre uma AWS KMS chave, como a chave que você acabou de criar. Além disso, esse usuário pode gerenciar anexos para recursos da AWS , como o endpoint de destino.

# Usando segredos para acessar AWS Database Migration Service endpoints
<a name="security_iam_secretsmanager"></a>

Pois AWS DMS, um *segredo* é uma chave criptografada que você pode usar para representar um conjunto de credenciais de usuário para autenticar, por meio de *autenticação secreta*, a conexão de banco de dados para uma AWS DMS fonte compatível ou um endpoint de destino. Para um endpoint Oracle que também usa o Oracle Automatic Storage Management (ASM), é AWS DMS necessário um segredo adicional que represente as credenciais do usuário para acessar o Oracle ASM.

Você pode criar o segredo ou segredos AWS DMS necessários para a autenticação secreta usando AWS Secrets Manager um serviço para criar, armazenar e recuperar credenciais com segurança para acessar aplicativos, serviços e recursos de TI na nuvem e no local. Isso inclui compatibilidade com a alternância periódica automática do valor do segredo criptografado sem sua intervenção, fornecendo um nível adicional de segurança às credenciais. Ativar a rotação de valores secretos AWS Secrets Manager também garante que essa rotação de valores secretos ocorra sem qualquer efeito em qualquer migração de banco de dados que dependa do segredo. Para autenticar uma conexão de banco de dados do endpoint secretamente, crie um segredo cuja identidade ou ARN você atribui ao `SecretsManagerSecretId` e inclui nas configurações do endpoint. Para autenticar um Oracle ASM como parte de um endpoint do Oracle secretamente, crie um segredo cuja identidade ou ARN você atribui ao `SecretsManagerOracleAsmSecretId` e inclui nas configurações do endpoint.

**nota**  
Não é possível utilizar credenciais mestras gerenciadas pelo Amazon RDS Aurora. Essas credenciais não incluem informações de host ou porta, que AWS DMS precisam estabelecer conexões. Em vez disso, crie um novo usuário e segredo. Para obter informações sobre como criar um usuário e um segredo, consulte [Usando o Console de gerenciamento da AWS para criar uma função de acesso secreta e secreta](#security_iam_secretsmanager.console) a seguir.

Para obter mais informações sobre AWS Secrets Manager, consulte [O que é o AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) no *Guia do AWS Secrets Manager usuário*.

AWS DMS oferece suporte à autenticação secreta para os seguintes bancos de dados locais ou AWS gerenciados em endpoints de origem e destino compatíveis:
+ Amazon DocumentDB
+ IBM Db2 LUW
+ Microsoft SQL Server
+ MongoDB
+ MySQL
+ Oracle
+ PostgreSQL
+ banco de dados de origem
+ SAP ASE

Para se conectar a qualquer um desses bancos de dados, você tem a opção de inserir um dos seguintes conjuntos de valores, mas não ambos, como parte das configurações do endpoint:
+ Valores de texto não criptografado para autenticar a conexão do banco de dados utilizando as configurações `UserName`, `Password`, `ServerName` e `Port`. Para um endpoint do Oracle que também utiliza o Oracle ASM, inclua valores adicionais de texto não criptografado para autenticar o ASM utilizando as configurações `AsmUserName`, `AsmPassword` e `AsmServerName`.
+ Autenticação de segredo utilizando valores para as configurações `SecretsManagerSecretId` e `SecretsManagerAccessRoleArn`. Para um endpoint do Oracle que utiliza o Oracle ASM, inclua valores adicionais nas configurações `SecretsManagerOracleAsmSecretId` e `SecretsManagerOracleAsmAccessRoleArn`. Os valores de segredos dessas configurações podem incluir o seguinte para: 
  + `SecretsManagerSecretId`: o nome do recurso da Amazon (ARN) completo, o ARN parcial ou o nome amigável de um segredo que você criou para acesso ao banco de dados do endpoint no AWS Secrets Manager.
  + `SecretsManagerAccessRoleArn`— O ARN de uma função de acesso secreto que você criou no IAM para fornecer AWS DMS acesso a esse `SecretsManagerSecretId` segredo em seu nome.
  + `SecretsManagerOracleAsmSecretId`: o nome do recurso da Amazon (ARN) completo, o ARN parcial ou o nome amigável de um segredo que você criou para acesso ao Oracle ASM no AWS Secrets Manager.
  + `SecretsManagerOracleAsmAccessRoleArn`: o ARN de um perfil de acesso secreto que você criou no IAM para fornecer ao AWS DMS acesso a esse segredo do `SecretsManagerOracleAsmSecretId` em seu nome.
**nota**  
Você também pode usar uma única função de acesso secreto para fornecer AWS DMS acesso tanto ao `SecretsManagerSecretId` segredo quanto ao `SecretsManagerOracleAsmSecretId` segredo. Se você criar essa único acesso secreto para ambos os segredos, atribua o mesmo ARN para esse perfil de acesso a `SecretsManagerAccessRoleArn` e a `SecretsManagerOracleAsmAccessRoleArn`. Por exemplo, se o perfil de acesso secreto para ambos os segredos tiver seu ARN atribuído à variável `ARN2xsecrets`, você poderá definir essas configurações de ARN da seguinte forma:  

  ```
  SecretsManagerAccessRoleArn = ARN2xsecrets;
  SecretsManagerOracleAsmAccessRoleArn = ARN2xsecrets;
  ```

  Para obter mais informações sobre como criar esses valores, consulte [Usando o Console de gerenciamento da AWS para criar uma função de acesso secreta e secreta](#security_iam_secretsmanager.console).

Depois de criar e especificar as configurações do segredo necessário e do endpoint do perfil de acesso secreto para seus endpoints, atualize as permissões nas contas de usuário que executarão a solicitação de API `CreateEndpoint` ou `ModifyEndpoint` com esses detalhes do segredo. Certifique-se de que essas permissões de conta incluam a `IAM:GetRole` permissão na função de acesso secreto e a `SecretsManager:DescribeSecret` permissão na chave secreta. AWS DMS requer essas permissões para validar a função de acesso e seu segredo.

**Como fornecer e verificar as permissões de usuário necessárias**

1. Faça login no Console de gerenciamento da AWS e abra o AWS Identity and Access Management console em[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Escolha **Usuários** e escolha o **ID de usuário** utilizado para fazer chamadas de API `CreateEndpoint` e `ModifyEndpoint`.

1. Na guia **Permissões**, escolha **\$1\$1 JSON**.

1. Verifique se o usuário tem as permissões a seguir:

   ```
   {
   	"Statement": [{
   			"Effect": "Allow",
   			"Action": [
   				"iam:GetRole",
   				"iam:PassRole"
   			],
   			"Resource": "SECRET_ACCESS_ROLE_ARN"
   		},
   		{
   			"Effect": "Allow",
   			"Action": "secretsmanager:DescribeSecret",
   			"Resource": "SECRET_ARN"
   		}
   	]
   }
   ```

1. Se o usuário não tiver essas permissões, adicione-as.

1. Se estiver utilizando um perfil do IAM para fazer chamadas de API do DMS, repita as etapas acima para o respectivo perfil.

1. Abra um terminal e use o AWS CLI para validar se as permissões foram concedidas corretamente assumindo a função ou o usuário usado acima.

   1. Valide a permissão do usuário ao SecretAccessRole usar o `get-role` comando IAM.

      ```
      aws iam get-role --role-name ROLE_NAME
      ```

      *ROLE\$1NAME*Substitua pelo nome de`SecretsManagerAccessRole`.

      Se o comando retornar uma mensagem de erro, verifique se as permissões foram concedidas corretamente.

   1. Valide a permissão do usuário no segredo utilizando o comando `describe-secret` do Secrets Manager.

      ```
      aws secretsmanager describe-secret --secret-id SECRET_NAME OR SECRET_ARN --region=REGION_NAME
      ```

      O usuário pode ser o nome amigável, o ARN parcial ou o ARN completo. Para obter mais informações, consulte [describe-secret](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager/describe-secret.html).

      Se o comando retornar uma mensagem de erro, verifique se as permissões foram concedidas corretamente.

## Usando o Console de gerenciamento da AWS para criar uma função de acesso secreta e secreta
<a name="security_iam_secretsmanager.console"></a>

Você pode usar o Console de gerenciamento da AWS para criar um segredo para autenticação de endpoint e criar a política e a função para permitir o acesso AWS DMS ao segredo em seu nome.

**Para criar um segredo usando o Console de gerenciamento da AWS que AWS DMS pode ser usado para autenticar um banco de dados para conexões de endpoint de origem e destino**

1. Faça login no Console de gerenciamento da AWS e abra o AWS Secrets Manager console em[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Selecione **Armazenar um novo segredo**.

1. Em **Selecionar tipo de segredo** na página **Armazenar um novo segredo**, escolha **Outro tipo de segredo** e escolha **Texto sem formatação**.
**nota**  
Esse é o único local em que você precisa inserir credenciais de texto não criptografado para conectar-se ao banco de dados do endpoint daqui em diante.

1. No campo **Texto sem formatação**: 
   + Para um segredo cuja identidade você atribui a `SecretsManagerSecretId`, insira a seguinte estrutura JSON.

     ```
     {
       "username": db_username,
       "password": db_user_password,
       "port": db_port_number,
       "host": db_server_name
     }
     ```
**nota**  
Essa é a lista mínima de membros JSON necessária para autenticar o banco de dados do endpoint. É possível adicionar qualquer configuração adicional de endpoint JSON como membros JSON, tudo em letras minúsculas que desejar. No entanto, o AWS DMS ignora quaisquer membros JSON adicionais para autenticação de endpoint.

     Aqui, o `db_username` é o nome do usuário que está acessando o banco de dados, `db_user_password` é a senha do usuário do banco de dados, `db_port_number` é o número da porta para acessar o banco de dados e `db_server_name` é o nome do servidor de banco de dados (endereço) na web, como no exemplo a seguir.

     ```
     {
       "username": "admin",
       "password": "some_password",
       "port": "8190",
       "host": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com"
     }
     ```
   + Para um segredo cuja identidade você atribui a `SecretsManagerOracleAsmSecretId`, insira a seguinte estrutura JSON.

     ```
     {
       "asm_user": asm_username,
       "asm_password": asm_user_password,
       "asm_server": asm_server_name
     }
     ```
**nota**  
Essa é a lista mínima de membros JSON necessária para autenticar o Oracle ASM para um endpoint do Oracle. Também é a lista completa que pode ser especificada com base nas configurações de endpoint do Oracle ASM disponíveis.

     Aqui, `asm_username` é o nome do usuário que está acessando o Oracle ASM, `asm_user_password` é a senha do usuário do Oracle ASM e `asm_server_name` é o nome do servidor do Oracle ASM (endereço) na web, incluindo a porta, como no exemplo a seguir.

     ```
     { 
       "asm_user": "oracle_asm_user", 
       "asm_password": "oracle_asm_password",
       "asm_server": "oracle101.abcdefghij.us-east-1.rds.amazonaws.com:8190/+ASM" 
     }
     ```

1. Selecione uma chave AWS KMS de criptografia para criptografar o segredo. Você pode aceitar a chave de criptografia padrão criada para seu serviço AWS Secrets Manager ou selecionar uma AWS KMS chave criada por você.

1. Especifique um nome para referenciar esse segredo e uma descrição opcional. Esse é o nome amigável utilizado como o valor de `SecretsManagerSecretId` ou `SecretsManagerOracleAsmSecretId`.

1. Se você quiser ativar a rotação automática no segredo, precisará selecionar ou criar uma AWS Lambda função com permissão para alternar as credenciais do segredo conforme descrito. No entanto, antes de definir a alternância automática para utilizar o função do Lambda, verifique as configurações do perfil adicionam os quatro caracteres a seguir ao valor da variável de ambiente `EXCLUDE_CHARACTERS`.

   ```
   ;.:+{}*&,%\
   ```

   AWS DMS não permite esses caracteres em senhas usadas para credenciais de endpoint. Configurar o função do Lambda para excluí-los impede que o AWS Secrets Manager gere esses caracteres como parte de seus valores de senha alternados. Depois de definir a rotação automática para usar sua função Lambda, gira AWS Secrets Manager imediatamente o segredo para validar sua configuração secreta.
**nota**  
Dependendo da configuração do mecanismo de banco de dados, o banco de dados talvez não busque as credenciais alternadas. Nesse caso, é necessário reiniciar a tarefa manualmente para atualizar as credenciais.

1. Revise e guarde seu segredo em AWS Secrets Manager. Em seguida, você pode pesquisar cada segredo por seu nome amigável e AWS Secrets Manager, em seguida, recuperar o ARN secreto como o valor `SecretsManagerOracleAsmSecretId` ou conforme apropriado `SecretsManagerSecretId` para autenticar o acesso à sua conexão de banco de dados de endpoint e ao Oracle ASM (se usado).

**Para criar a política de acesso secreto e a função para definir seu `SecretsManagerAccessRoleArn` ou`SecretsManagerOracleAsmAccessRoleArn`, AWS DMS o que AWS Secrets Manager permite acessar seu segredo apropriado**

1. Faça login no Console de gerenciamento da AWS e abra o console AWS Identity and Access Management (IAM) em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Escolha **Políticas** e **Criar política**.

1. Escolha **JSON** e insira a política a seguir para ativar o acesso e a descriptografia do segredo.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "secretsmanager:GetSecretValue",
         "Resource": "*"
       },
       {
         "Effect": "Allow",
         "Action": [
           "kms:Decrypt",
           "kms:DescribeKey"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

------

   Aqui, `secret_arn` é o ARN do segredo, que é possível obter de `SecretsManagerSecretId` ou de `SecretsManagerOracleAsmSecretId` conforme apropriado, e `kms_key_arn` é o ARN da chave do AWS KMS que você está utilizando para criptografar o segredo, como no exemplo a seguir.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "arn:aws:secretsmanager:us-east-2:123456789012:secret:MySQLTestSecret-qeHamH"
           },
           {
                "Effect": "Allow",
                "Action": [
                           "kms:Decrypt",
                           "kms:DescribeKey"
                         ],
                "Resource": "arn:aws:kms:us-east-2:123456789012:key/761138dc-0542-4e58-947f-4a3a8458d0fd"
           }
        ]
   }
   ```

------
**nota**  
Se você usar a chave de criptografia padrão criada por AWS Secrets Manager, não precisará especificar as AWS KMS permissões para`kms_key_arn`.  
Se você quiser que sua política forneça acesso aos dois segredos, basta especificar um objeto de recurso JSON adicional para o outro*secret\$1arn*.  
Se o segredo estiver em uma conta diferente, o perfil `SecretsManagerAccessRoleArn` precisará de uma política adicional para verificar o segredo entre contas. Para esses casos de uso, adicione a ação `secretsmanager:DescribeSecret` à política. Para obter mais detalhes sobre como configurar um segredo entre contas, consulte [Permissões para AWS segredos do Secrets Manager para usuários em uma conta diferente](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access_examples_cross.html).

1. Revise e crie a política com um nome amigável e uma descrição opcional.

1. Escolha **Funções** e **Criar função**.

1. Escolha **Serviço da AWS ** como o tipo de entidade confiável.

1. Escolha **DMS** na lista de serviços como o serviço confiável e escolha **Próximo: Permissões**.

1. Pesquise e anexe a política que criada na etapa 4 e continue para adicionar quaisquer tags e revisar o perfil. Nesse ponto, edite as relações de confiança da função para usar seu diretor de serviço AWS DMS regional como entidade confiável. Essa entidade principal tem o seguinte formato.

   ```
   dms.region-name.amazonaws.com
   ```

   Aqui, *`region-name`* é nome da sua região, como `us-east-1`. Assim, segue um diretor de serviço AWS DMS regional para essa região.

   ```
   dms.us-east-1.amazonaws.com
   ```

1. Depois de editar a entidade confiável do perfil, crie o perfil com um nome amigável e uma descrição opcional. Agora é possível pesquisar o novo perfil pelo nome amigável no IAM e recuperar o ARN do perfil como o valor `SecretsManagerAccessRoleArn` ou `SecretsManagerOracleAsmAccessRoleArn` para autenticar sua conexão com o banco de dados do endpoint.

**Como utilizar o gerenciador de segredos com uma instância de replicação em uma sub-rede privada**

1. Crie um endpoint da VPC do gerenciador secreto e anote o DNS do endpoint. Para obter mais informações sobre como criar um endpoint da VPC do gerenciador de segredos, consulte [Conectar-se ao Secrets Manager por meio de um endpoint da VPC](https://docs.aws.amazon.com/secretsmanager/latest/userguide/vpc-endpoint-overview.html#vpc-endpoint) []()no *Guia do usuário do AWS Secrets Manager.*

1. Para as regras de entrada do grupo de segurança do endpoint da VPC, permita o tráfego HTTPS do endereço IP privado da instância de replicação ou dos grupos de segurança anexados às instâncias de replicação.

1. Para as regras de saída do grupo de segurança da instância de replicação, permita todo o tráfego para o destino `0.0.0.0/0`.

1. Defina o atributo de conexão adicional `secretsManagerEndpointOverride=secretsManager endpoint DNS` do endpoint para fornecer o DNS do endpoint da VPC ao gerenciador de segredo, conforme mostrado no exemplo a seguir.

   ```
   secretsManagerEndpointOverride=vpce-1234a5678b9012c-12345678.secretsmanager.eu-west-1.vpce.amazonaws.com
   ```

# Usando funções vinculadas a serviços para AWS DMS
<a name="using-service-linked-roles"></a>

AWS Database Migration Service usa funções [vinculadas ao serviço AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role) (IAM). Uma função vinculada ao serviço é um tipo exclusivo de função do IAM vinculada diretamente a. AWS DMS As funções vinculadas ao serviço são predefinidas AWS DMS e incluem todas as permissões que o serviço exige para chamar outros AWS serviços em seu nome. 

Uma função vinculada ao serviço facilita a configuração AWS DMS porque você não precisa adicionar manualmente as permissões necessárias. AWS DMS define as permissões de suas funções vinculadas ao serviço e, a menos que seja definido de outra forma, só AWS DMS pode assumir suas funções. As permissões definidas incluem a política de confiança e a política de permissões, e essa política de permissões não pode ser anexada a nenhuma outra entidade do IAM.

Um perfil vinculado a serviço poderá ser excluído somente após a exclusão dos recursos relacionados. Isso protege seus AWS DMS recursos porque você não pode remover inadvertidamente a permissão para acessar os recursos.

Para obter informações sobre outros serviços que oferecem suporte a funções vinculadas a serviços, consulte [AWS Serviços que funcionam com IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) e procure os serviços que têm **Sim** na coluna Funções **vinculadas ao serviço**. Escolha um **Sim** com um link para visualizar a documentação do perfil vinculado a esse serviço.

**Funções vinculadas a serviços para recursos AWS DMS **

**Topics**
+ [Funções vinculadas a serviços para AWS DMS o Fleet Advisor](slr-services-fa.md)
+ [Função vinculada ao serviço para AWS DMS](slr-services-sl.md)

# Funções vinculadas a serviços para AWS DMS o Fleet Advisor
<a name="slr-services-fa"></a>

AWS DMS O Fleet Advisor usa a função vinculada ao serviço chamada **AWSServiceRoleForDMSFleetAdvisor** — O DMS Fleet Advisor usa essa função vinculada ao serviço para gerenciar as métricas da Amazon. CloudWatch Essa função vinculada ao serviço é anexada à seguinte política gerenciada: `AWSDMSFleetAdvisorServiceRolePolicy`. Para obter atualizações dessa política, consulte [AWS políticas gerenciadas para AWS Database Migration Service](security-iam-awsmanpol.md).

A função vinculada ao serviço AWSService RoleFor DMSFleet Advisor confia nos seguintes serviços para assumir a função:
+ `dms-fleet-advisor.amazonaws.com`

A política de permissões de função denominada AWSDMSFleet AdvisorServiceRolePolicy permite que o AWS DMS Fleet Advisor conclua as seguintes ações nos recursos especificados:
+ Ação: `cloudwatch:PutMetricData` em `all AWS resources`

  Essa permissão permite que os diretores publiquem pontos de dados métricos na Amazon CloudWatch. AWS DMS O Fleet Advisor requer essa permissão para exibir gráficos com métricas de banco de dados de CloudWatch.

O exemplo de código a seguir mostra a AWSDMSFleet AdvisorServiceRolePolicy política que você usa para criar a AWSDMSFleet AdvisorServiceRolePolicy função.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Resource": "*",
        "Action": "cloudwatch:PutMetricData",
        "Condition": {
            "StringEquals": {
                "cloudwatch:namespace": "AWS/DMS/FleetAdvisor"
            }
        }
    }
}
```

------

É necessário configurar permissões para permitir que uma entidade do IAM, como um usuário, grupo ou perfil, crie, edite ou exclua um perfil vinculado a serviço. Para obter mais informações, consulte [Permissões do perfil vinculado a serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) no *Guia do usuário do IAM*.

## Criação de uma função vinculada ao serviço para AWS DMS o Fleet Advisor
<a name="create-slr-fa"></a>

É possível utilizar o console do IAM para criar um perfil vinculado a serviço com o caso de uso do **DMS: Fleet Advisor**. Na AWS CLI ou na AWS API, crie uma função vinculada ao serviço com o nome do `dms-fleet-advisor.amazonaws.com` serviço. Para saber mais, consulte [Criar um perfil vinculado a serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role) no *Guia do usuário do IAM*. Se você excluir essa função vinculada ao serviço, será possível usar esse mesmo processo para criar a função novamente.

Crie esse perfil antes de criar um coletor de dados. O DMS Fleet Advisor utiliza esse perfil para exibir gráficos com métricas de banco de dados no Console de gerenciamento da AWS. Para obter mais informações, consulte [Criar um coletor de dados](fa-data-collectors-create.md).

## Editando uma função vinculada ao serviço para AWS DMS o Fleet Advisor
<a name="edit-slr-fa"></a>

AWS DMS não permite que você edite a função vinculada ao serviço AWSService RoleFor DMSFleet Advisor. Depois que você criar um perfil vinculado ao serviço, não poderá alterar o nome do perfil, pois várias entidades podem fazer referência ao perfil. No entanto, você poderá editar a descrição do perfil usando o IAM. Para saber mais, consulte [Editar um perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) no *Guia do usuário do IAM*.

## Excluindo uma função vinculada ao serviço do Fleet Advisor AWS DMS
<a name="delete-slr-fa"></a>

Se você não precisar mais usar um atributo ou serviço que requer um perfil vinculado ao serviço, é recomendável excluí-lo. Dessa forma, não haverá uma entidade não utilizada que não seja monitorada ou mantida ativamente. No entanto, você deve limpar os recursos de seu perfil vinculado ao serviço antes de excluí-lo manualmente.

**nota**  
Se o AWS DMS serviço estiver usando a função quando você tentar excluir os recursos, a exclusão poderá falhar. Se isso acontecer, espere alguns minutos e tente a operação novamente.

**Para excluir AWS DMS recursos usados pelo AWSService RoleFor DMSFleet Consultor**

1. Faça login no Console de gerenciamento da AWS e abra o AWS DMS console em [https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/).

1. No painel de navegação, escolha **Coletores de dados** em **Descobrir**. A página **Coletores de dados** é aberta.

1. Escolha o coletor de dados e escolha **Excluir**.

1. Para confirmar a exclusão, insira o nome do conector no campo de entrada de texto. Escolha **Excluir**.

**Importante**  
Quando você exclui um coletor de dados do DMS, o DMS Fleet Advisor exclui todos os bancos de dados do Inventário que você descobriu utilizando esse coletor.

Depois de excluir todos os coletores de dados, é possível excluir o perfil vinculado a serviço.

**Como excluir manualmente o perfil vinculado ao serviço usando o IAM**

Use o console do IAM AWS CLI, o ou a AWS API para excluir a função vinculada ao serviço AWSService RoleFor DMSFleet Advisor. Para saber mais, consulte [Excluir um perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) no *Guia do usuário do IAM*.

## Regiões suportadas para funções vinculadas ao serviço do AWS DMS Fleet Advisor
<a name="slr-regions-fa"></a>

AWS DMS O Fleet Advisor suporta o uso de funções vinculadas ao serviço em todas as regiões em que o serviço está disponível. Para obter mais informações, consulte [Suportado Regiões da AWS](CHAP_FleetAdvisor.md#CHAP_FleetAdvisor.SupportedRegions).

# Função vinculada ao serviço para AWS DMS
<a name="slr-services-sl"></a>

AWS DMS usa a função vinculada ao serviço chamada. **AWSServiceRoleForDMSServerless** AWS DMS usa essa função vinculada ao serviço para criar e gerenciar AWS DMS recursos em seu nome. AWS DMS usa essa função para gerenciamento automático de instâncias, de forma que você só precise gerenciar replicações.

O perfil vinculado ao serviço [AWSServiceRoleForDMSServerless](security-iam-awsmanpol.md#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy) confia nos seguintes serviços para aceitar o perfil:
+ `dms.amazonaws.com`

É necessário configurar permissões para permitir que uma entidade do IAM, como um usuário, grupo ou perfil, crie, edite ou exclua um perfil vinculado a serviço. Para obter mais informações, consulte [Permissões do perfil vinculado a serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions) no *Guia do usuário do IAM*.

## Criação de uma função vinculada ao serviço para AWS DMS
<a name="create-slr-sl"></a>

Quando você inicia uma tarefa de replicação ou inicia uma avaliação de pré-migração, cria AWS DMS programaticamente uma AWS DMS função vinculada ao serviço. É possível visualizar esse perfil no console do IAM. É possível optar por criar esse perfil manualmente. Para criar o perfil manualmente, utilize o console do IAM para criar um perfil vinculado ao serviço com o caso de uso do **DMS**. Na AWS CLI ou na AWS API, crie uma função vinculada ao serviço usando `dms.amazonaws.com` o nome do serviço. Para obter mais informações, consulte [Criar um perfil vinculado a serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role) no *Guia do usuário do IAM*. Se você excluir essa função vinculada ao serviço, será possível usar esse mesmo processo para criar a função novamente.

**nota**  
Se você excluir um perfil enquanto tiver replicações na conta, a replicação resultará em uma falha.

## Editando uma função vinculada ao serviço para AWS DMS
<a name="edit-slr-sl"></a>

AWS DMS não permite que você edite a função AWSService RoleFor DMSServerless vinculada ao serviço. Depois que você criar um perfil vinculado ao serviço, não poderá alterar o nome do perfil, pois várias entidades podem fazer referência ao perfil. No entanto, você poderá editar a descrição do perfil usando o IAM. Para saber mais, consulte [Editar um perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role) no *Guia do usuário do IAM*.

## Excluindo uma função vinculada ao serviço para AWS DMS
<a name="delete-slr-sl"></a>

Se você não precisar mais usar um atributo ou serviço que requer um perfil vinculado ao serviço, é recomendável excluí-lo. Dessa forma, não haverá uma entidade não utilizada que não seja monitorada ou mantida ativamente. No entanto, você deve limpar os recursos de seu perfil vinculado ao serviço antes de excluí-lo manualmente.

**nota**  
Se o AWS DMS serviço estiver usando a função quando você tentar excluir os recursos, a exclusão poderá falhar. Se isso acontecer, espere alguns minutos e tente a operação novamente.

**Para excluir AWS DMS recursos usados pelo AWSService RoleFor DMSServerless**

1. Faça login no Console de gerenciamento da AWS e abra o AWS DMS console na [https://console.aws.amazon.com/dms/v2](https://console.aws.amazon.com/dms/v2/).

1. No painel de navegação, escolha **Replicações sem servidor** em ****Migrar dados****. A página **Sem servidor** é aberta.

1. Escolha a replicação com tecnologia sem servidor e escolha **Excluir.**

1. Para confirmar a exclusão, insira o nome da replicação com tecnologia sem servidor no campo de entrada de texto. Escolha **Excluir**.

Depois de excluir todas as replicações com tecnologia sem servidor, é possível excluir o perfil vinculado a serviço.

**Como excluir manualmente o perfil vinculado ao serviço usando o IAM**

Use o console do IAM AWS CLI, o ou a AWS API para excluir a função AWSService RoleFor DMSServerless vinculada ao serviço. Para saber mais, consulte [Excluir um perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role) no *Guia do usuário do IAM*.

## Regiões suportadas para funções vinculadas a AWS DMS serviços
<a name="slr-regions-sl"></a>

AWS DMS suporta o uso de funções vinculadas ao serviço em todas as regiões em que o serviço está disponível. 

# Solução de problemas AWS Database Migration Service de identidade e acesso
<a name="security_iam_troubleshoot"></a>

Use as informações a seguir para ajudá-lo a diagnosticar e corrigir problemas comuns que você pode encontrar ao trabalhar com AWS DMS um IAM.

**Topics**
+ [Não estou autorizado a realizar uma ação em AWS DMS](#security_iam_troubleshoot-no-permissions)
+ [Não estou autorizado a realizar iam: PassRole](#security_iam_troubleshoot-passrole)
+ [Sou administrador e quero permitir que outras pessoas acessem AWS DMS](#security_iam_troubleshoot-admin-delegate)
+ [Quero permitir que pessoas fora da minha AWS conta acessem meus AWS DMS recursos](#security_iam_troubleshoot-cross-account-access)

## Não estou autorizado a realizar uma ação em AWS DMS
<a name="security_iam_troubleshoot-no-permissions"></a>

Se isso Console de gerenciamento da AWS indicar que você não está autorizado a realizar uma ação, entre em contato com o administrador para obter ajuda. O administrador é a pessoa que forneceu o seu nome de usuário e senha.

O exemplo de erro a seguir ocorre quando o usuário do `mateojackson` IAM tenta usar o console para visualizar detalhes sobre um endpoint do AWS DMS, mas não tem `dms: DescribeEndpoint` permissões.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: dms:DescribeEndpoint on resource: my-postgresql-target
```

Nesse caso, Mateo pede ao administrador para atualizar suas políticas para permitir que ele acesse endpoint `my-postgresql-target` utilizando a ação `dms:DescribeEndpoint`.

## Não estou autorizado a realizar iam: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Se você receber uma mensagem de erro informando que não está autorizado a executar a ação `iam:PassRole`, as suas políticas devem ser atualizadas para permitir que você passe uma função para o AWS DMS.

Alguns Serviços da AWS permitem que você passe uma função existente para esse serviço em vez de criar uma nova função de serviço ou uma função vinculada ao serviço. Para fazê-lo, você deve ter permissões para passar o perfil para o serviço.

O exemplo de erro a seguir ocorre quando uma usuária do IAM chamada `marymajor` tenta utilizar o console para executar uma ação no AWS DMS. No entanto, a ação exige que o serviço tenha permissões concedidas por um perfil de serviço. Mary não tem permissões para passar o perfil para o serviço.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

Nesse caso, as políticas de Mary devem ser atualizadas para permitir que ela realize a ação `iam:PassRole`.

Se precisar de ajuda, entre em contato com seu AWS administrador. Seu administrador é a pessoa que forneceu suas credenciais de login.

## Sou administrador e quero permitir que outras pessoas acessem AWS DMS
<a name="security_iam_troubleshoot-admin-delegate"></a>

Para permitir que outras pessoas acessem AWS DMS, você deve conceder permissão às pessoas ou aplicativos que precisam de acesso. Se você estiver usando o Centro de Identidade do AWS IAM para gerenciar pessoas e aplicações, atribua conjuntos de permissões a usuários ou grupos para definir o nível de acesso. Os conjuntos de permissões criam e atribuem automaticamente políticas do IAM aos perfis do IAM associados à pessoa ou aplicação. Para ter mais informações, consulte [Conjuntos de permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) no *Guia do usuário do Centro de Identidade do AWS IAM *.

Se você não estiver usando o Centro de Identidade do IAM, deverá criar entidades do IAM (usuários ou perfis) para as pessoas ou aplicações que precisam de acesso. Você deve anexar uma política à entidade que concede a eles as permissões corretas no AWS DMS. Depois que as permissões forem concedidas, forneça as credenciais ao usuário ou desenvolvedor da aplicação. Eles usarão essas credenciais para acessar AWS. Para saber mais sobre como criar grupos, políticas, permissões e usuários do IAM, consulte [Identidades do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) e [Políticas e permissões no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) no *Guia do usuário do IAM*.

## Quero permitir que pessoas fora da minha AWS conta acessem meus AWS DMS recursos
<a name="security_iam_troubleshoot-cross-account-access"></a>

É possível criar um perfil que os usuários de outras contas ou pessoas fora da organização podem usar para acessar seus recursos. É possível especificar quem é confiável para assumir o perfil. Para serviços que oferecem suporte a políticas baseadas em recursos ou listas de controle de acesso (ACLs), você pode usar essas políticas para conceder às pessoas acesso aos seus recursos.

Para saber mais, consulte:
+ Para saber se é AWS DMS compatível com esses recursos, consulte[Como AWS Database Migration Service funciona com o IAM](security_iam_service-with-iam.md).
+ Para saber como fornecer acesso aos seus recursos em todos os Contas da AWS que você possui, consulte Como [fornecer acesso a um usuário do IAM em outro Conta da AWS que você possui](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) no *Guia do usuário do IAM*.
+ Para saber como fornecer acesso aos seus recursos a terceiros Contas da AWS, consulte Como [fornecer acesso Contas da AWS a terceiros](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) no *Guia do usuário do IAM*.
+ Para saber como conceder acesso por meio da federação de identidades, consulte [Conceder acesso a usuários autenticados externamente (federação de identidades)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) no *Guia do usuário do IAM*.
+ Para saber a diferença entre perfis e políticas baseadas em recurso para acesso entre contas, consulte [Acesso a recursos entre contas no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) no *Guia do usuário do IAM*.

## Permissões do IAM necessárias para usar AWS DMS
<a name="CHAP_Security.IAMPermissions"></a>

Você utiliza determinadas permissões e perfis do IAM para utilizar o AWS DMS. Se você estiver conectado como usuário do IAM e quiser usar AWS DMS, o administrador da sua conta deverá anexar a política discutida nesta seção ao usuário, grupo ou função do IAM que você usa para executar AWS DMS. Para obter mais informações sobre permissões do IAM, consulte o [Guia do usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html). 

A política a seguir fornece acesso e também permissões para determinadas ações necessárias de outros serviços da Amazon AWS KMS, como IAM, Amazon EC2 e Amazon. AWS DMS CloudWatch CloudWatchmonitora sua AWS DMS migração em tempo real e coleta e rastreia métricas que indicam o progresso de sua migração. Você pode usar o CloudWatch Logs para depurar problemas com uma tarefa. 

**nota**  
Você pode restringir ainda mais o acesso aos AWS DMS recursos usando a marcação. Para obter mais informações sobre como restringir o acesso a AWS DMS recursos usando marcação, consulte. [Controle de acesso minucioso com o uso de nomes de recursos e tags](CHAP_Security.FineGrainedAccess.md)

------
#### [ JSON ]

****  

```
{

  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "dms:*",
      "Resource": "arn:aws:dms:*:123456789012:*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "kms:ListAliases",
        "kms:DescribeKey"
      ],
      "Resource": "arn:aws:kms:*:123456789012:key/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:PassRole",
        "iam:CreateRole",
        "iam:AttachRolePolicy"
      ],
      "Resource": "arn:aws:iam::123456789012:role/*",
      "Condition": {
        "StringEquals": {
          "iam:PassedToService": "dms.amazonaws.com"
        }
      }
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "ec2:ModifyNetworkInterfaceAttribute",
        "ec2:CreateNetworkInterface",
        "ec2:DeleteNetworkInterface"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "cloudwatch:Get*",
        "cloudwatch:List*"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams",
        "logs:FilterLogEvents",
        "logs:GetLogEvents"
      ],
      "Resource": "arn:aws:logs:*:123456789012:*"
    }
  ]
}
```

------

A discriminação das permissões a seguir pode ajudar a compreender melhor a necessidade de cada uma.

A seção a seguir é necessária para permitir que o usuário chame operações de AWS DMS API.

```
{
            "Effect": "Allow",
            "Action": "dms:*",
            "Resource": "arn:aws:dms:region:account:resourcetype/id"
}
```

A seção a seguir é necessária para permitir que o usuário liste suas AWS KMS chaves e alias disponíveis para exibição no console. Essa entrada não é necessária se você souber o Amazon Resource Name (ARN) da chave KMS e estiver usando somente o AWS Command Line Interface ().AWS CLI

```
{
            "Effect": "Allow",
            "Action": [
                "kms:ListAliases", 
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

A seção a seguir é necessária para determinados tipos de endpoints que exigem que um ARN de perfil do IAM seja transmitido com o endpoint. Além disso, se as AWS DMS funções necessárias não forem criadas com antecedência, o AWS DMS console poderá criar a função. Se todos os perfis forem configurados com antecedência, bastará ter `iam:GetRole` e `iam:PassRole`. Para ter mais informações sobre funções, consulte [Criação das funções do IAM para usar com AWS DMS](#CHAP_Security.APIRole).

```
{
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:PassRole",
                "iam:CreateRole",
                "iam:AttachRolePolicy"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

A seção a seguir é obrigatória porque AWS DMS precisa criar a instância do Amazon EC2 e configurar a rede para a instância de replicação criada. Esses recursos existem na conta do cliente, por isso, a capacidade de executar essas ações em nome do cliente é necessária.

```
{
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeVpcs",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:CreateNetworkInterface",
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

A seção a seguir é necessária para permitir que o usuário possa visualizar as métricas da instância de replicação.

```
{
            "Effect": "Allow",
            "Action": [
                "cloudwatch:Get*",
                "cloudwatch:List*"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

Esta seção é necessária para permitir que o usuário veja os logs de replicação.

```
{
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups",
                "logs:DescribeLogStreams",
                "logs:FilterLogEvents",
                "logs:GetLogEvents"
            ],
            "Resource": "arn:aws:service:region:account:resourcetype/id"
        }
```

 Se você usa o AWS DMS console, o AWS Command Line Interface (AWS CLI) ou a AWS DMS API para sua migração, você precisa adicionar várias funções à sua conta. Para obter mais informações sobre essas funções, consulte [Criação das funções do IAM para usar com AWS DMS](#CHAP_Security.APIRole).

## Criação das funções do IAM para usar com AWS DMS
<a name="CHAP_Security.APIRole"></a>

Se você usa o AWS DMS console, o AWS CLI ou a AWS DMS API para sua migração de banco de dados, você deve adicionar três funções do IAM à sua AWS conta antes de poder usar os recursos do AWS DMS. Duas delas são `dms-vpc-role` e `dms-cloudwatch-logs-role`. Se você usa o Amazon Redshift como banco de dados de destino, você também deve adicionar a função do IAM `dms-access-for-endpoint` à sua AWS conta.

As políticas gerenciadas são atualizadas automaticamente. Se estiver utilizando uma política personalizada com os perfis do IAM, verifique periodicamente se há atualizações para a política gerenciada nesta documentação. Veja os detalhes da política gerenciada utilizando uma combinação dos comandos `get-policy` e `get-policy-version`.

Por exemplo, o comando `get-policy` a seguir recupera informações sobre o perfil do IAM especificado.

```
aws iam get-policy --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole
```

As informações retornadas do comando são as seguintes.

```
{
    "Policy": {
        "PolicyName": "AmazonDMSVPCManagementRole",
        "PolicyId": "ANPAJHKIGMBQI4AEFFSYO",
        "Arn": "arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole",
        "Path": "/service-role/",
        "DefaultVersionId": "v4",
        "AttachmentCount": 1,
        "PermissionsBoundaryUsageCount": 0,
        "IsAttachable": true,
        "Description": "Provides access to manage VPC settings for AWS managed customer configurations",
        "CreateDate": "2015-11-18T16:33:19+00:00",
        "UpdateDate": "2024-07-25T15:19:01+00:00",
        "Tags": []
    }
}
```

O comando `get-policy-version` a seguir recupera informações de políticas do IAM.

```
aws iam get-policy-version --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole --version-id v4
```

As informações retornadas do comando são as seguintes.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "ExampleStatementID",
        "Effect": "Allow",
        "Action": [
            "ec2:CreateNetworkInterface",
            "ec2:DeleteNetworkInterface",
            "ec2:DescribeAvailabilityZones",
            "ec2:DescribeDhcpOptions",
            "ec2:DescribeInternetGateways",
            "ec2:DescribeNetworkInterfaces",
            "ec2:DescribeSecurityGroups",
            "ec2:DescribeSubnets",
            "ec2:DescribeVpcs",
            "ec2:ModifyNetworkInterfaceAttribute"
        ],
        "Resource": "*"
      }
    ]
}
```

------

É possível utilizar os mesmos comandos para obter informações sobre `AmazonDMSCloudWatchLogsRole` e a política gerenciada `AmazonDMSRedshiftS3Role`.

Os procedimentos a seguir criam os perfis do IAM `dms-vpc-role`, `dms-cloudwatch-logs-role` e `dms-access-for-endpoint`.

**Para criar a função dms-vpc-role do IAM para uso com a AWS DMS API AWS CLI ou**

1.  Crie um arquivo JSON com a seguinte política do IAM. Nomeie o arquivo como `dmsAssumeRolePolicyDocument.json`.json. 

------
#### [ JSON ]

****  

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

------

    Crie a função AWS CLI usando o comando a seguir.

   ```
   aws iam create-role --role-name dms-vpc-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument.json                    
   ```

1.  Anexe a política `AmazonDMSVPCManagementRole` a `dms-vpc-role` usando o seguinte comando.

   ```
   aws iam attach-role-policy --role-name dms-vpc-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole                    
   ```

**Para criar a função dms-cloudwatch-logs-role do IAM para uso com a AWS DMS API AWS CLI ou**

1.  Crie um arquivo JSON com a seguinte política do IAM. Nomeie o arquivo como `dmsAssumeRolePolicyDocument2.json`.json. 

------
#### [ JSON ]

****  

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

------

    Crie a função AWS CLI usando o comando a seguir.

   ```
   aws iam create-role --role-name dms-cloudwatch-logs-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument2.json                    
   ```

1.  Anexe a política `AmazonDMSCloudWatchLogsRole` a `dms-cloudwatch-logs-role` usando o seguinte comando.

   ```
   aws iam attach-role-policy --role-name dms-cloudwatch-logs-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole                    
   ```

Se você utilizar o Amazon Redshift como o banco de dados de destino, precisará criar ao perfil do IAM `dms-access-for-endpoint` para fornecer acesso ao Amazon S3.

**Para criar a função dms-access-for-endpoint do IAM para uso com o Amazon Redshift como banco de dados de destino**

1. Crie um arquivo JSON com a seguinte política do IAM. Nomeie o arquivo como `dmsAssumeRolePolicyDocument3.json`.json. 

------
#### [ JSON ]

****  

   ```
    {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "1",
         "Effect": "Allow",
         "Principal": {
           "Service": "dms.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       },
       {
         "Sid": "2",
         "Effect": "Allow",
         "Principal": {
           "Service": "redshift.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1.  Crie a função AWS CLI usando o comando a seguir.

   ```
     aws iam create-role --role-name dms-access-for-endpoint --assume-role-policy-document file://dmsAssumeRolePolicyDocument3.json                   
   ```

1.  Anexe a política `AmazonDMSRedshiftS3Role` ao perfil `dms-access-for-endpoint` utilizando o seguinte comando.

   ```
   aws iam attach-role-policy --role-name dms-access-for-endpoint \
       --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSRedshiftS3Role
   ```

Agora você deve ter as políticas do IAM em vigor para usar a AWS DMS API AWS CLI ou.

# Prevenção contra o ataque do “substituto confuso” em todos os serviços
<a name="cross-service-confused-deputy-prevention"></a>

“Confused deputy” é um problema de segurança no qual uma entidade sem permissão para executar uma ação pode coagir uma entidade mais privilegiada a executá-la. Em AWS, a falsificação de identidade entre serviços pode resultar no problema confuso do deputado. A personificação entre serviços pode ocorrer quando um serviço (o *serviço de chamada*) chama outro serviço (o *serviço chamado*). O serviço de chamada pode ser manipulado de modo a usar suas permissões para atuar nos recursos de outro cliente de uma forma na qual ele não deveria ter permissão para acessar. Para evitar isso, a AWS fornece ferramentas que ajudam você a proteger seus dados para todos os serviços com entidades principais de serviço que receberam acesso aos recursos em sua conta.

Recomendamos usar as chaves de contexto de condição [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)global [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)e as chaves de contexto nas políticas de recursos para limitar as permissões que AWS Database Migration Service concedem outro serviço ao recurso. Se o valor de `aws:SourceArn` não contiver o ID da conta, como um nome de instância de replicação (ARN) do AWS DMS , utilize ambas as chaves de contexto de condição global para limitar as permissões. Se você utilizar ambas as chaves de contexto de condição global e o valor de `aws:SourceArn` contiver o ID da conta, o valor de `aws:SourceAccount` e a conta no valor de `aws:SourceArn` deverão utilizar o mesmo ID de conta quando utilizados na mesma declaração da política. Use `aws:SourceArn` se quiser apenas um recurso associado a acessibilidade de serviço. Use `aws:SourceAccount` se quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços.

AWS DMS suporta opções confusas de delegados a partir da versão 3.4.7 e superior. Para obter mais informações, consulte [AWS Notas de versão do Database Migration Service 3.4.7](CHAP_ReleaseNotes.md#CHAP_ReleaseNotes.DMS347). Se a instância de replicação utilizar o AWS DMS versão 3.4.6 ou inferior, atualize para a versão mais recente antes de definir as opções de “confused deputy”.

A maneira mais eficiente de se proteger contra o problema “confused deputy” é utilizar a chave de contexto de condição global `aws:SourceArn` com o ARN completo do recurso. Se você não souber o ARN completo do recurso ou especificar vários recursos, use a chave de condição de contexto global `aws:SourceArn` com caracteres curinga (`*`) para as partes desconhecidas do ARN. Por exemplo, .`arn:aws:dms:*:123456789012:rep:*` 

**Topics**
+ [Funções do IAM a serem usadas com a AWS DMS API para prevenção auxiliar confusa entre serviços](#cross-service-confused-deputy-prevention-dms-api)
+ [Política do IAM para armazenar avaliações de pré-processamento no Amazon S3 para prevenção de ataques “confused deputy” entre serviços](#cross-service-confused-deputy-prevention-s3)
+ [Usando o Amazon DynamoDB como um endpoint de destino AWS DMS com a prevenção confusa de delegações entre serviços](#cross-service-confused-deputy-prevention-dynamodb)

## Funções do IAM a serem usadas com a AWS DMS API para prevenção auxiliar confusa entre serviços
<a name="cross-service-confused-deputy-prevention-dms-api"></a>

Para usar a API AWS CLI ou a AWS DMS API para sua migração de banco de dados, você deve adicionar as funções `dms-vpc-role` e `dms-cloudwatch-logs-role` IAM à sua AWS conta antes de poder usar os recursos do AWS DMS. Para obter mais informações, consulte [Criação das funções do IAM para usar com AWS DMS](security-iam.md#CHAP_Security.APIRole).

O exemplo a seguir mostra as políticas para utilizar o perfil `dms-vpc-role` com a instância de replicação `my-replication-instance`. Utilize essas políticas para evitar o problema “deputy confused”.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Sid": "AllowDMSAssumeRole",
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "AWS:SourceAccount": "111122223333"
         },
         "ArnLike": {
             "aws:SourceArn": "arn:aws:dms:*:123456789012:*"
         }
      }
    }
  ]
}
```

------

## Política do IAM para armazenar avaliações de pré-processamento no Amazon S3 para prevenção de ataques “confused deputy” entre serviços
<a name="cross-service-confused-deputy-prevention-s3"></a>

Para armazenar os resultados da pré-avaliação no bucket do S3, crie uma política do IAM que permita que o AWS DMS gerencie objetos no Amazon S3. Para obter mais informações, consulte [Criar recursos do IAM](CHAP_Tasks.AssessmentReport.Prerequisites.md#CHAP_Tasks.AssessmentReport.Prerequisites.IAM).

O exemplo a seguir mostra uma política de confiança com condições substitutas confusas definidas em uma função do IAM que permite AWS DMS acessar todas as tarefas e execuções de avaliação em uma conta de usuário especificada.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowDMSAssumeRole",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "AWS:SourceAccount": "111122223333"
        },
        "ArnLike": {
            "aws:SourceArn": [
                "arn:aws:dms:*:123456789012:assessment-run:*",
                "arn:aws:dms:*:123456789012:task:*"
          ]
        }
      }
    }
  ]
}
```

------

## Usando o Amazon DynamoDB como um endpoint de destino AWS DMS com a prevenção confusa de delegações entre serviços
<a name="cross-service-confused-deputy-prevention-dynamodb"></a>

Para usar o Amazon DynamoDB como um endpoint de destino para sua migração de banco de dados, você deve criar a função do IAM que AWS DMS permita assumir e conceder acesso às tabelas do DynamoDB. Utilize este perfil ao criar o endpoint de destino do DynamoDB no AWS DMS. Para obter mais informações, consulte [Utilizar o Amazon DynamoDB como destino](CHAP_Target.DynamoDB.md).

O exemplo a seguir mostra uma política de confiança com condições adjuntas confusas definidas em uma função do IAM que permite que todos os AWS DMS endpoints acessem as tabelas do DynamoDB.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowDMSAssumeRole",
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "*",
      "Condition": {
      "StringEquals": {
          "AWS:SourceAccount": "111122223333"
        },
        "ArnLike": {
        "aws:SourceArn": [
            "arn:aws:dms:*:123456789012:assessment-run:*",
            "arn:aws:dms:*:123456789012:task:*"
            ]
         }
      }
    }
  ]
}
```

------

# AWS políticas gerenciadas para AWS Database Migration Service
<a name="security-iam-awsmanpol"></a>

**Topics**
+ [AWS política gerenciada: Amazon DMSVPCManagement Role](#security-iam-awsmanpol-AmazonDMSVPCManagementRole)
+ [AWS política gerenciada: AWSDMSServerless ServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy)
+ [AWS política gerenciada: Amazon DMSCloud WatchLogsRole](#security-iam-awsmanpol-AmazonDMSCloudWatchLogsRole)
+ [AWS política gerenciada: AWSDMSFleet AdvisorServiceRolePolicy](#security-iam-awsmanpol-AWSDMSFleetAdvisorServiceRolePolicy)
+ [AWS política gerenciada: Amazon DMSRedshift S3Role](#security-iam-awsmanpol-AmazonDMSRedshiftS3Role)
+ [AWS DMS atualizações nas políticas AWS gerenciadas](#security-iam-awsmanpol-updates)

## AWS política gerenciada: Amazon DMSVPCManagement Role
<a name="security-iam-awsmanpol-AmazonDMSVPCManagementRole"></a>

Essa política está anexada à `dms-vpc-role` função, que permite AWS DMS realizar ações em seu nome.

Essa política concede permissões ao colaborador que permitem AWS DMS gerenciar recursos de rede.

**Detalhes das permissões**

Esta política inclui as seguintes operações:
+ `ec2:CreateNetworkInterface`— AWS DMS precisa dessa permissão para criar interfaces de rede. Essas interfaces são essenciais para que a instância de replicação do AWS DMS se conecte aos bancos de dados de origem e de destino.
+ `ec2:DeleteNetworkInterface`— AWS DMS precisa dessa permissão para limpar as interfaces de rede que criou quando elas não são mais necessárias. Isso ajuda no gerenciamento de recursos e evita custos desnecessários.
+ `ec2:DescribeAvailabilityZones`: esta permissão possibilita que o AWS DMS recupere informações sobre as zonas de disponibilidade em uma região. O AWS DMS usa essas informações para garantir que os recursos sejam provisionados nas zonas corretas para redundância e disponibilidade.
+ `ec2:DescribeDhcpOptions`— AWS DMS recupera os detalhes do conjunto de opções DHCP para a VPC especificada. Essas informações são necessárias para configurar a rede corretamente para as instâncias de replicação.
+ `ec2:DescribeInternetGateways`— AWS DMS pode exigir essa permissão para entender os gateways da Internet configurados na VPC. Essas informações serão cruciais se a instância de replicação ou os bancos de dados precisarem de acesso à internet.
+ `ec2:DescribeNetworkInterfaces`— AWS DMS recupera informações sobre as interfaces de rede existentes na VPC. Essas informações são necessárias AWS DMS para configurar as interfaces de rede corretamente e garantir a conectividade de rede adequada para o processo de migração.
+ `ec2:DescribeSecurityGroups`— Grupos de segurança controlam o tráfego de entrada e saída para instâncias e recursos. AWS DMS precisa descrever grupos de segurança para configurar corretamente as interfaces de rede e garantir a comunicação adequada entre a instância de replicação e os bancos de dados.
+ `ec2:DescribeSubnets`— Essa permissão permite AWS DMS listar as sub-redes em uma VPC. AWS DMS usa essas informações para iniciar instâncias de replicação nas sub-redes apropriadas, garantindo que elas tenham a conectividade de rede necessária.
+ `ec2:DescribeVpcs`— VPCs A descrição é essencial AWS DMS para entender o ambiente de rede em que a instância de replicação e os bancos de dados residem. Isso inclui conhecer os blocos CIDR e outras configurações específicas da VPC.
+ `ec2:ModifyNetworkInterfaceAttribute`— Essa permissão é necessária AWS DMS para modificar os atributos das interfaces de rede que ela gerencia. Isso pode incluir o ajuste das configurações para garantir a conectividade e a segurança.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
			"Sid": "Statement1",
			"Effect": "Allow",
			"Action": [
				"ec2:CreateNetworkInterface",
				"ec2:DeleteNetworkInterface",
				"ec2:DescribeAvailabilityZones",
				"ec2:DescribeDhcpOptions",
				"ec2:DescribeInternetGateways",
				"ec2:DescribeNetworkInterfaces",
				"ec2:DescribeSecurityGroups",
				"ec2:DescribeSubnets",
				"ec2:DescribeVpcs",
				"ec2:ModifyNetworkInterfaceAttribute"
			],
			"Resource": "*"
		}
    ]
}
```

------

## AWS política gerenciada: AWSDMSServerless ServiceRolePolicy
<a name="security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy"></a>

Essa política está anexada à `AWSServiceRoleForDMSServerless` função, que permite AWS DMS realizar ações em seu nome. Para obter mais informações, consulte [Função vinculada ao serviço para AWS DMS](slr-services-sl.md).

Essa política concede permissões ao colaborador que permitem AWS DMS gerenciar recursos de replicação.

**Detalhes das permissões**

Esta política inclui as seguintes permissões.
+ **AWS DMS**— Permite que os diretores interajam com AWS DMS os recursos.
+ **Amazon S3** — Permite que o DMS crie um bucket S3 para armazenar uma avaliação de pré-migração. O bucket do S3 é criado para um usuário por região e a respectiva política de bucket limita o acesso somente ao perfil de serviço do serviço. 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "id0",
            "Effect": "Allow",
            "Action": [
                "dms:CreateReplicationInstance",
                "dms:CreateReplicationTask"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "dms:req-tag/ResourceCreatedBy": "DMSServerless"
                }
            }
        },
        {
            "Sid": "id1",
            "Effect": "Allow",
            "Action": [
                "dms:DescribeReplicationInstances",
                "dms:DescribeReplicationTasks"
            ],
            "Resource": "*"
        },
        {
            "Sid": "id2",
            "Effect": "Allow",
            "Action": [
                "dms:StartReplicationTask",
                "dms:StopReplicationTask",
                "dms:ModifyReplicationTask",
                "dms:DeleteReplicationTask",
                "dms:ModifyReplicationInstance",
                "dms:DeleteReplicationInstance"
            ],
            "Resource": [
                "arn:aws:dms:*:*:rep:*",
                "arn:aws:dms:*:*:task:*"
            ],
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "aws:ResourceTag/ResourceCreatedBy": "DMSServerless"
                }
            }
        },
        {
            "Sid": "id3",
            "Effect": "Allow",
            "Action": [
                "dms:TestConnection",
                "dms:DeleteConnection"
            ],
            "Resource": [
                "arn:aws:dms:*:*:rep:*",
                "arn:aws:dms:*:*:endpoint:*"
            ]
        },
        {
            "Sid": "id4",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:PutObjectTagging"
            ],
            "Resource": [
                "arn:aws:s3:::dms-serverless-premigration-results-*",
                "arn:aws:s3:::dms-premigration-results-*"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "id5",
            "Effect": "Allow",
            "Action": [
                "s3:PutBucketPolicy",
                "s3:ListBucket",
                "s3:GetBucketLocation",
                "s3:CreateBucket"
            ],
            "Resource": [
                "arn:aws:s3:::dms-serverless-premigration-results-*",
                "arn:aws:s3:::dms-premigration-results-*"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "id6",
            "Effect": "Allow",
            "Action": [
                "dms:StartReplicationTaskAssessmentRun"
            ],
            "Resource": [
                "arn:aws:dms:*:*:task:*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        }
    ]
}
```

## AWS política gerenciada: Amazon DMSCloud WatchLogsRole
<a name="security-iam-awsmanpol-AmazonDMSCloudWatchLogsRole"></a>

Essa política está anexada à `dms-cloudwatch-logs-role` função, que permite AWS DMS realizar ações em seu nome. Para obter mais informações, consulte [Usando funções vinculadas a serviços para AWS DMS](using-service-linked-roles.md).

Essa política concede ao colaborador permissões que permitem AWS DMS publicar registros de replicação em registros. CloudWatch 

**Detalhes das permissões**

Esta política inclui as seguintes permissões.




+ `logs`— Permite que os diretores publiquem registros no CloudWatch Logs. Essa permissão é necessária para que AWS DMS possa ser usada CloudWatch para exibir registros de replicação.



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDescribeOnAllLogGroups",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogGroups"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "AllowDescribeOfAllLogStreamsOnDmsTasksLogGroup",
            "Effect": "Allow",
            "Action": [
                "logs:DescribeLogStreams"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*"
            ]
        },
        {
            "Sid": "AllowCreationOfDmsLogGroups",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*:log-stream:"
            ]
        },
        {
            "Sid": "AllowCreationOfDmsLogStream",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogStream"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*:log-stream:dms-task-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*:log-stream:dms-serverless-*"
            ]
        },
        {
            "Sid": "AllowUploadOfLogEventsToDmsLogStream",
            "Effect": "Allow",
            "Action": [
                "logs:PutLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:*:log-group:dms-tasks-*:log-stream:dms-task-*",
                "arn:aws:logs:*:*:log-group:dms-serverless-replication-*:log-stream:dms-serverless-*"
            ]
        }
    ]
}
```

------

## AWS política gerenciada: AWSDMSFleet AdvisorServiceRolePolicy
<a name="security-iam-awsmanpol-AWSDMSFleetAdvisorServiceRolePolicy"></a>





Você não pode se vincular AWSDMSFleet AdvisorServiceRolePolicy às suas entidades do IAM. Essa política está vinculada a uma função vinculada ao serviço que permite que o AWS DMS Fleet Advisor execute ações em seu nome. Para obter mais informações, consulte [Usando funções vinculadas a serviços para AWS DMS](using-service-linked-roles.md).



Essa política concede aos colaboradores permissões que permitem que o AWS DMS Fleet Advisor publique CloudWatch métricas da Amazon.



**Detalhes das permissões**

Esta política inclui as seguintes permissões.




+ `cloudwatch`— Permite que os diretores publiquem pontos de dados métricos na Amazon CloudWatch. Essa permissão é necessária para que o AWS DMS Fleet Advisor possa usar CloudWatch para exibir gráficos com métricas de banco de dados.



------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Resource": "*",
        "Action": "cloudwatch:PutMetricData",
        "Condition": {
            "StringEquals": {
                "cloudwatch:namespace": "AWS/DMS/FleetAdvisor"
            }
        }
    }
}
```

------

## AWS política gerenciada: Amazon DMSRedshift S3Role
<a name="security-iam-awsmanpol-AmazonDMSRedshiftS3Role"></a>

Essa política fornece permissões que permitem AWS DMS gerenciar as configurações do S3 para endpoints do Redshift.

**Detalhes das permissões**

Esta política inclui as seguintes operações:
+ `s3:CreateBucket`: permite que o DMS crie buckets do S3 com o prefixo “dms-”.
+ `s3:ListBucket`: permite que o DMS liste o conteúdo dos buckets do S3 com o prefixo “dms-”.
+ `s3:DeleteBucket `:permite que o DMS exclua buckets do S3 com o prefixo “dms-”.
+ `s3:GetBucketLocation`: permite que o DMS recupere a região em que um bucket do S3 está localizado.
+ `s3:GetObject`: permite que o DMS recupere objetos de buckets do S3 com o prefixo “dms-”.
+ `s3:PutObject`: permite que o DMS adicione objetos a buckets do S3 com o prefixo “dms-”.
+ `s3:DeleteObject`: permite que o DMS exclua objetos de buckets do S3 com o prefixo “dms-”.
+ `s3:GetObjectVersion`: permite que o DMS recupere versões específicas de objetos em buckets versionados.
+ `s3:GetBucketPolicy`: permite que o DMS recupere políticas de bucket.
+ `s3:PutBucketPolicy`: permite que o DMS crie ou atualize políticas de bucket.
+ `s3:GetBucketAcl`- Permite que o DMS recupere listas de controle de acesso ao bucket () ACLs
+ `s3:PutBucketVersioning`: permite que o DMS habilite ou suspenda o versionamento em buckets.
+ `s3:GetBucketVersioning`: permite que o DMS recupere o status de versionamento dos buckets.
+ `s3:PutLifecycleConfiguration`: permite que o DMS crie ou atualize regras de ciclo de vida para buckets.
+ `s3:GetLifecycleConfiguration`: permite que o DMS recupere regras de ciclo de vida configuradas para buckets.
+ `s3:DeleteBucketPolicy`: permite que o DMS exclua políticas de bucket.

Todas essas permissões se aplicam somente aos recursos com o ARN padrão: `arn:aws:s3:::dms-*`.

**Documento de política JSON**

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	  
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:CreateBucket",
        "s3:ListBucket", 
        "s3:DeleteBucket",
        "s3:GetBucketLocation",
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:GetObjectVersion",
        "s3:GetBucketPolicy",
        "s3:PutBucketPolicy",
        "s3:GetBucketAcl",
        "s3:PutBucketVersioning",
        "s3:GetBucketVersioning",
        "s3:PutLifecycleConfiguration",
        "s3:GetLifecycleConfiguration",
        "s3:DeleteBucketPolicy"
      ],
      "Resource": "arn:aws:s3:::dms-*"
    }
  ]
}
```

------





## AWS DMS atualizações nas políticas AWS gerenciadas
<a name="security-iam-awsmanpol-updates"></a>



Veja detalhes sobre as atualizações das políticas AWS gerenciadas AWS DMS desde que esse serviço começou a rastrear essas alterações. Para receber alertas automáticos sobre alterações nessa página, assine o feed RSS na página Histórico do AWS DMS documento.




| Alteração | Descrição | Data | 
| --- | --- | --- | 
|  [AWSDMSServerlessServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy): alteração  |  AWS DMS atualizado `AWSDMSServerlessServiceRolePolicy` para permitir que o DMS crie buckets S3 e coloque os resultados da avaliação de pré-migração nesses buckets para tarefas de replicação não relacionadas ao DMS serverless.  | 5 de novembro de 2025 | 
|  [Função vinculada a serviços para AWS DMS Serverless](slr-services-sl.md) — Alteração  |  AWS DMS atualizado `AWSDMSServerlessServiceRolePolicy` para permitir o suporte `dms:StartReplicationTaskAssessmentRun` à execução de avaliações de pré-migração. AWS DMS também atualizou a função vinculada a serviços sem servidor para criar buckets S3 e colocar os resultados da avaliação de pré-migração nesses buckets.  | 14 de fevereiro de 2025 | 
|  [AWSDMSServerlessServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy): alteração  |  AWS DMS adicionado`dms:ModifyReplicationTask`, o que é exigido pelo AWS DMS Serverless para chamar a `ModifyReplicationTask` operação para modificar uma tarefa de replicação. AWS DMS adicionou `dms:ModifyReplicationInstance` o que é exigido pelo AWS DMS Serverless para chamar a `ModifyReplicationInstance` operação para modificar uma instância de replicação.  | 17 de janeiro de 2025 | 
|  [DMSVPCManagementPapel da Amazon](#security-iam-awsmanpol-AmazonDMSVPCManagementRole) — Mudança  |  AWS DMS adicionadas `ec2:DescribeDhcpOptions` e `ec2:DescribeNetworkInterfaces` operações para AWS DMS permitir o gerenciamento das configurações de rede em seu nome.  | 17 de junho de 2024 | 
|  [AWSDMSServerlessServiceRolePolicy](#security-iam-awsmanpol-AWSDMSServerlessServiceRolePolicy) – Nova política  |  AWS DMS adicionou a `AWSDMSServerlessServiceRolePolicy` função para permitir AWS DMS a criação e o gerenciamento de serviços em seu nome, como a publicação de CloudWatch métricas da Amazon.  | 22 de maio de 2023 | 
|  [Amazon DMSCloud WatchLogsRole](#security-iam-awsmanpol-AmazonDMSCloudWatchLogsRole) — Mudança  |  AWS DMS adicionou o ARN para recursos sem servidor a cada uma das permissões concedidas, para permitir o upload de registros de replicação de configurações de AWS DMS replicação sem servidor para Logs. CloudWatch   | 22 de maio de 2023 | 
|  [AWSDMSFleetAdvisorServiceRolePolicy](#security-iam-awsmanpol-AWSDMSFleetAdvisorServiceRolePolicy) – Nova política  |  AWS DMS O Fleet Advisor adicionou uma nova política para permitir a publicação de pontos de dados métricos na Amazon CloudWatch.  | 6 de março de 2023 | 
|  AWS DMS começou a rastrear as alterações  |  AWS DMS começou a rastrear as mudanças em suas políticas AWS gerenciadas.  | 6 de março de 2023 | 

# Validação de conformidade para AWS Database Migration Service
<a name="dms-compliance"></a>

Auditores terceirizados avaliam a segurança e a conformidade AWS Database Migration Service como parte de vários programas de AWS conformidade. Isso inclui os seguintes programas:
+  SOC
+ PCI
+ ISO
+ FedRAMP
+ DoD CC SRG
+ HIPAA BAA
+ MTCS
+ CS
+ K-ISMS
+ ENS High
+ OSPAR
+ HITRUST CSF

Para obter uma lista de AWS serviços no escopo de programas de conformidade específicos, consulte [AWS serviços no escopo por programa de conformidade AWS](https://aws.amazon.com/compliance/services-in-scope/) . Para obter informações gerais, consulte programas de [AWS conformidade programas AWS](https://aws.amazon.com/compliance/programs/) de .

Você pode baixar relatórios de auditoria de terceiros usando AWS Artifact. Para obter mais informações, consulte [Baixando relatórios no AWS artefato](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Sua responsabilidade de conformidade ao usar AWS DMS é determinada pela confidencialidade de seus dados, pelos objetivos de conformidade de sua empresa e pelas leis e regulamentações aplicáveis. AWS fornece os seguintes recursos para ajudar na conformidade:
+ [Guias de início rápido de segurança e conformidade ](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance): esses guias de implantação apresentam considerações de arquitetura e etapas para a implantação de ambientes básicos focados na segurança e na conformidade na AWS.
+ [Arquitetura para segurança e conformidade com a HIPAA no whitepaper da Amazon Web Services — Este whitepaper](https://docs.aws.amazon.com/whitepapers/latest/architecting-hipaa-security-and-compliance-on-aws/architecting-hipaa-security-and-compliance-on-aws.html) descreve como as empresas podem usar para criar aplicativos compatíveis com a HIPAA. AWS 
+ AWS recursos de [https://aws.amazon.com/compliance/resources/](https://aws.amazon.com/compliance/resources/) de conformidade — Essa coleção de pastas de trabalho e guias pode ser aplicada ao seu setor e local.
+ [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html)— Esse AWS serviço avalia se suas configurações de recursos estão em conformidade com as práticas internas, as diretrizes e os regulamentos do setor.
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html)— Esse AWS serviço fornece uma visão abrangente do seu estado de segurança interno, AWS que ajuda você a verificar sua conformidade com os padrões e as melhores práticas do setor de segurança.

# Resiliência em AWS Database Migration Service
<a name="disaster-recovery-resiliency"></a>

A infraestrutura AWS global é construída em torno de AWS regiões e zonas de disponibilidade. AWS As regiões fornecem várias zonas de disponibilidade fisicamente separadas e isoladas, conectadas a redes de baixa latência, alta taxa de transferência e alta redundância. Com as zonas de disponibilidade, é possível projetar e operar aplicações e bancos de dados que executam o failover automaticamente entre as zonas de disponibilidade sem interrupção. As zonas de disponibilidade são mais altamente disponíveis, tolerantes a falhas e escaláveis que uma ou várias infraestruturas de data center tradicionais. 

Para obter mais informações sobre AWS regiões e zonas de disponibilidade, consulte [infraestrutura AWS global](https://aws.amazon.com/about-aws/global-infrastructure/).

**Além da infraestrutura AWS global, AWS DMS fornece alta disponibilidade e suporte de failover para uma instância de replicação usando uma implantação Multi-AZ quando você escolhe a opção Multi-AZ.**

Em uma implantação Multi-AZ, o AWS DMS provisiona e mantém automaticamente uma réplica em espera da instância de replicação em uma zona de disponibilidade diferente. A instância de replicação primária é replicada em sincronia para a réplica em espera. Se a instância de replicação primária falhar ou parar de responder, a instância em espera retoma qualquer tarefa em execução com o mínimo de interrupção. Como a primária está replicando constantemente seu estado para a de espera, a implantação multi-AZ implica alguma sobrecarga no desempenho.

Para obter mais informações sobre como trabalhar com implantações multi-AZ, consulte [Trabalhando com uma instância de AWS DMS replicação](CHAP_ReplicationInstance.md).

# Segurança da infraestrutura em AWS Database Migration Service
<a name="infrastructure-security"></a>

Como serviço gerenciado, AWS Database Migration Service é protegido pela segurança de rede AWS global. Para obter informações sobre serviços AWS de segurança e como AWS proteger a infraestrutura, consulte [AWS Cloud Security](https://aws.amazon.com/security/). Para projetar seu AWS ambiente usando as melhores práticas de segurança de infraestrutura, consulte [Proteção](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) de infraestrutura no *Security Pillar AWS Well‐Architected* Framework.

Você usa chamadas de API AWS publicadas para acessar AWS DMS pela rede. Os clientes devem oferecer compatibilidade com:
+ Transport Layer Security (TLS). Exigimos TLS 1.2 e recomendamos TLS 1.3.
+ Conjuntos de criptografia com perfect forward secrecy (PFS) como DHE (Ephemeral Diffie-Hellman) ou ECDHE (Ephemeral Elliptic Curve Diffie-Hellman). A maioria dos sistemas modernos, como Java 7 e versões posteriores, comporta esses modos.

Você pode chamar essas operações de API de qualquer local da rede. AWS DMS também oferece suporte a políticas de acesso baseadas em recursos, que podem especificar restrições sobre ações e recursos, por exemplo, com base no endereço IP de origem. Além disso, você pode usar AWS DMS políticas para controlar o acesso de endpoints específicos da Amazon VPC ou de nuvens privadas virtuais específicas (). VPCs Efetivamente, isso isola o acesso à rede a um determinado AWS DMS recurso somente da VPC específica dentro da AWS rede. Para obter mais informações sobre o uso de políticas de acesso baseadas em recursos com AWS DMS, incluindo exemplos, consulte. [Controle de acesso minucioso com o uso de nomes de recursos e tags](CHAP_Security.FineGrainedAccess.md)

Para limitar suas comunicações com AWS DMS uma única VPC, você pode criar um endpoint de interface VPC que permita a conexão por meio de. AWS DMS AWS PrivateLink AWS PrivateLink ajuda a garantir que qualquer chamada AWS DMS e seus resultados associados permaneçam confinados à VPC específica para a qual seu endpoint de interface foi criado. Em seguida, você pode especificar a URL desse endpoint de interface como uma opção com cada AWS DMS comando executado usando o AWS CLI ou um SDK. Isso ajuda a garantir que todas as suas comunicações AWS DMS permaneçam confinadas à VPC e, de outra forma, sejam invisíveis para a Internet pública.

**Como criar um endpoint de interface para acessar o DMS em uma única VPC**

1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon VPC em. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

1. No painel de navegação, escolha **Endpoints**. Isso abre a página **Criar endpoints**, na qual você pode criar o endpoint da interface de uma VPC para. AWS DMS

1. Escolha **AWS serviços** e, em seguida, pesquise e escolha um valor para **Nome do serviço**, nesse caso, AWS DMS no formulário a seguir.

   ```
   com.amazonaws.region.dms
   ```

   Aqui, *`region`* especifica a AWS região onde AWS DMS é executado, por exemplo`com.amazonaws.us-west-2.dms`.

1. Em **VPC**, escolha a VPC na qual criar o endpoint de interface, por exemplo, `vpc-12abcd34`.

1. Escolha um valor para a **Zona de disponibilidade** e para o **ID de sub-rede**. Esses valores devem indicar um local em que o endpoint do AWS DMS escolhido pode ser executado, por exemplo, `us-west-2a (usw2-az1)` e `subnet-ab123cd4`.

1. Escolha **Habilitar nome DNS** para criar o endpoint com um nome DNS. Esse nome DNS consiste no ID do endpoint (`vpce-12abcd34efg567hij`) hifenizado com uma string aleatória (`ab12dc34`). Eles são separados do nome do serviço por um ponto na ordem inversa, separados por pontos, com `vpce` adicionado (`dms.us-west-2.vpce.amazonaws.com`). 

   Um exemplo é `vpce-12abcd34efg567hij-ab12dc34.dms.us-west-2.vpce.amazonaws.com`.

1. Em **Grupo de segurança**, escolha um grupo a ser utilizado para o endpoint.

   Ao configurar o grupo de segurança, permita chamadas HTTPS de saída neles. Para obter mais informações, consulte [Criar grupos de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups) no *Guia do usuário da Amazon VPC*. 

1. Escolha **Acesso total** ou um valor personalizado para **Política**. Por exemplo, é possível escolher uma política personalizada semelhante à seguinte que restringe o acesso do endpoint a determinadas ações e recursos.

   ```
   {
     "Statement": [
       {
         "Action": "dms:*",
         "Effect": "Allow",
         "Resource": "*",
         "Principal": "*"
       },
       {
         "Action": [
           "dms:ModifyReplicationInstance",
           "dms:DeleteReplicationInstance"
         ],
         "Effect": "Deny",
         "Resource": "arn:aws:dms:us-west-2:<account-id>:rep:<replication-instance-id>",
         "Principal": "*"
       }
     ]
   }
   ```

   Aqui, o exemplo de política permite qualquer chamada de AWS DMS API, exceto para excluir ou modificar uma instância de replicação específica.

Agora é possível especificar um URL formado utilizando o nome DNS criado na etapa 6 como uma opção. Você especifica isso para cada comando de AWS DMS CLI ou operação de API para acessar a instância de serviço usando o endpoint de interface criado. Por exemplo, é possível executar o comando `DescribeEndpoints` da CLI do DMS nessa VPC, conforme mostrado a seguir.

```
$ aws dms describe-endpoints --endpoint-url https://vpce-12abcd34efg567hij-ab12dc34.dms.us-west-2.vpce.amazonaws.com
```

Se você ativar a opção de DNS privado, não será necessário especificar o URL do endpoint na solicitação.

*Para obter mais informações sobre como criar e usar endpoints de interface VPC (incluindo a ativação da opção de DNS privado), consulte Interface [VPC endpoints ()AWS PrivateLink no Guia do usuário da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html).*

# Controle de acesso minucioso com o uso de nomes de recursos e tags
<a name="CHAP_Security.FineGrainedAccess"></a>

Você pode usar nomes e tags de recursos com base nos Amazon Resource Names (ARNs) para gerenciar o acesso aos AWS DMS recursos. Para fazer isso, defina a ação permitida ou inclua instruções condicionais em políticas do IAM. 

## Usar nomes de recursos para controle de acesso
<a name="CHAP_Security.FineGrainedAccess.ResourceName"></a>

É possível criar uma conta de usuário do IAM e atribuir uma política com base no ARN do recurso do AWS DMS .

A política a seguir nega acesso à instância de AWS DMS replicação com o ARN *arn:aws:dms:us-east- 1:152683116:rep: ZTOXGLIXMIHKITV*: DOH67

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "arn:aws:dms:us-east-1:111122223333:rep:DOH67ZTOXGLIXMIHKITV"
        }
    ]
}
```

------

Por exemplo, os comandos a seguir poderão falhar quando a política estiver em vigor:

```
$ aws dms delete-replication-instance 
   --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV"

A client error (AccessDeniedException) occurred when calling the DeleteReplicationInstance 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:DeleteReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV

$ aws dms modify-replication-instance 
   --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV"

A client error (AccessDeniedException) occurred when calling the ModifyReplicationInstance 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:ModifyReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:DOH67ZTOXGLIXMIHKITV
```

Você também pode especificar políticas do IAM que limitam o acesso aos AWS DMS endpoints e às tarefas de replicação.

A política a seguir limita o acesso a um AWS DMS endpoint usando o ARN do endpoint.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "arn:aws:dms:us-east-1:111122223333:endpoint:D6E37YBXTNHOA6XRQSZCUGX"
        }
    ]
}
```

------

Por exemplo, os comandos a seguir poderão falhar quando a política que utiliza o ARN do endpoint estiver em vigor:

```
$ aws dms delete-endpoint 
   --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX"

A client error (AccessDeniedException) occurred when calling the DeleteEndpoint operation: 
User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteEndpoint 
on resource: arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX

$ aws dms modify-endpoint 
   --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX"     

A client error (AccessDeniedException) occurred when calling the ModifyEndpoint operation: 
User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:ModifyEndpoint 
on resource: arn:aws:dms:us-east-1:152683116:endpoint:D6E37YBXTNHOA6XRQSZCUGX
```

A política a seguir limita o acesso a uma AWS DMS tarefa usando o ARN da tarefa.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "arn:aws:dms:us-east-1:111122223333:task:UO3YR4N47DXH3ATT4YMWOIT"
        }
    ]
}
```

------

Por exemplo, os comandos a seguir poderão falhar quando a política que utiliza o ARN da tarefa estiver em vigor.

```
$ aws dms delete-replication-task 
   --replication-task-arn "arn:aws:dms:us-east-1:152683116:task:UO3YR4N47DXH3ATT4YMWOIT"

A client error (AccessDeniedException) occurred when calling the DeleteReplicationTask operation: 
User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: dms:DeleteReplicationTask 
on resource: arn:aws:dms:us-east-1:152683116:task:UO3YR4N47DXH3ATT4YMWOIT
```

## Uso de tags para controlar o acesso
<a name="CHAP_Security.FineGrainedAccess.Tags"></a>

AWS DMS define um conjunto de pares de valores-chave comuns que estão disponíveis para uso em políticas definidas pelo cliente sem nenhum requisito adicional de marcação. Para obter mais informações sobre a marcação de AWS DMS recursos, consulte[Marcar recursos no AWS Database Migration Service](CHAP_Tagging.md). 

A seguir estão listadas as tags padrão disponíveis para uso com AWS DMS: 
+  aws: CurrentTime — Representa a data e a hora da solicitação, permitindo a restrição de acesso com base em critérios temporais. 
+  aws: EpochTime — Essa tag é semelhante à CurrentTime tag aws: anterior, exceto que a hora atual é representada como o número de segundos decorridos desde a época do Unix. 
+  aws: MultiFactorAuthPresent — Essa é uma tag booleana que indica se a solicitação foi assinada por meio de autenticação multifatorial. 
+  aws: MultiFactorAuthAge — Fornece acesso à idade do token de autenticação multifatorial (em segundos). 
+  aws:principaltype: concede acesso ao tipo de entidade principal (usuário, conta, usuário federado etc.) da solicitação atual. 
+  aws: SourceIp — Representa o endereço IP de origem do usuário que está emitindo a solicitação. 
+  aws: UserAgent — Fornece informações sobre o aplicativo cliente solicitando um recurso. 
+  aws:userid: fornece acesso ao ID do usuário emissor da solicitação. 
+  aws:username: fornece acesso ao nome do usuário emissor da solicitação. 
+  dms: InstanceClass — Fornece acesso ao tamanho computacional do (s) host (s) da instância de replicação. 
+  dms: StorageSize — Fornece acesso ao tamanho do volume de armazenamento (em GB). 

Você também pode definir suas próprias tags. As tags definidas pelo cliente são pares simples de valores-chave que persistem no serviço de marcação. AWS Você pode adicioná-las a recursos do AWS DMS , incluindo instâncias de replicação, endpoints e tarefas. Essas tags são correspondidas utilizando instruções "Condicionais" do IAM em políticas, e são referenciadas utilizando uma tag condicional específica. As chaves das tags têm o prefixo "dms", o tipo de recurso e o prefixo "tag". Veja o formato da tag a seguir.

```
dms:{resource type}-tag/{tag key}={tag value}
```

Por exemplo, suponha que você queira definir uma política que permita que apenas uma chamada à API tenha êxito em uma instância de replicação que contém a tag "stage=production". A instrução·condicional a seguir corresponde a um recurso com a tag especificada.

```
"Condition":
{
    "streq":
        {
            "dms:rep-tag/stage":"production"
        }
}
```

Você adiciona a seguinte tag a uma instância de replicação que corresponde a essa condição de política. 

```
stage production
```

Além das tags já atribuídas aos AWS DMS recursos, as políticas também podem ser escritas para limitar as chaves e os valores das tags que podem ser aplicados a um determinado recurso. Nesse caso, o prefixo da tag é "req". 

Por exemplo, a seguinte instrução de política limita as tags que um usuário pode atribuir a determinado recurso a uma lista específica de valores permitidos.

```
 "Condition":
{
    "streq":
        {
            "dms:rep-tag/stage": [ "production", "development", "testing" ]
        }
}
```

Os exemplos de políticas a seguir limitam o acesso a um AWS DMS recurso com base em tags de recursos.

A seguinte política limita o acesso a uma instância de replicação em que o valor da tag é "Desktop", e a chave de tags é "Env":

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "dms:rep-tag/Env": [
                        "Desktop"
                    ]
                }
            }
        }
    ]
}
```

------

Os comandos a seguir podem ter êxito ou falha de acordo com a política do IAM que restringe o acesso quando o valor da tag é "Desktop", e a chave da tag é "Env".

```
$ aws dms list-tags-for-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN 
   --endpoint-url http://localhost:8000                                   
{
    "TagList": [
        {
            "Value": "Desktop", 
            "Key": "Env"
        }
    ]
}

$ aws dms delete-replication-instance 
   --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN"
A client error (AccessDeniedException) occurred when calling the DeleteReplicationInstance 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:DeleteReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN

$ aws dms modify-replication-instance 
   --replication-instance-arn "arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN" 

A client error (AccessDeniedException) occurred when calling the ModifyReplicationInstance 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:ModifyReplicationInstance on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN

$ aws dms add-tags-to-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN 
   --tags Key=CostCenter,Value=1234 

A client error (AccessDeniedException) occurred when calling the AddTagsToResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN

$ aws dms remove-tags-from-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN 
   --tag-keys Env             

A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:rep:46DHOU7JOJYOJXWDOZNFEN
```

A política a seguir limita o acesso a um AWS DMS endpoint em que o valor da tag é “Desktop” e a chave da tag é “Env”.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "dms:endpoint-tag/Env": [
                        "Desktop"
                    ]
                }
            }
        }
    ]
}
```

------

Os comandos a seguir podem ter êxito ou falha de acordo com a política do IAM que restringe o acesso quando o valor da tag é "Desktop", e a chave da tag é "Env".

```
$ aws dms list-tags-for-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I
{
    "TagList": [
        {
            "Value": "Desktop", 
            "Key": "Env"
        }
    ]
}

$ aws dms delete-endpoint 
   --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I"

A client error (AccessDeniedException) occurred when calling the DeleteEndpoint 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:DeleteEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I

$ aws dms modify-endpoint 
   --endpoint-arn "arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I"    

A client error (AccessDeniedException) occurred when calling the ModifyEndpoint 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:ModifyEndpoint on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I

$ aws dms add-tags-to-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I 
   --tags Key=CostCenter,Value=1234

A client error (AccessDeniedException) occurred when calling the AddTagsToResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I

$ aws dms remove-tags-from-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I 
   --tag-keys Env

A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:endpoint:J2YCZPNGOLFY52344IZWA6I
```

A política a seguir limita o acesso a uma tarefa de replicação em que o valor da tag é "Desktop", e a chave da tag é "Env".

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "dms:*"
            ],
            "Effect": "Deny",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "dms:task-tag/Env": [
                        "Desktop"
                    ]
                }
            }
        }
    ]
}
```

------

Os comandos a seguir podem ter êxito ou falha de acordo com a política do IAM que restringe o acesso quando o valor da tag é "Desktop", e a chave da tag é "Env".

```
$ aws dms list-tags-for-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3
{
    "TagList": [
        {
            "Value": "Desktop", 
            "Key": "Env"
        }
    ]
}

$ aws dms delete-replication-task 
   --replication-task-arn "arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3"

A client error (AccessDeniedException) occurred when calling the DeleteReplicationTask 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:DeleteReplicationTask on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3

$ aws dms add-tags-to-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3 
   --tags Key=CostCenter,Value=1234

A client error (AccessDeniedException) occurred when calling the AddTagsToResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:AddTagsToResource on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3

$ aws dms remove-tags-from-resource 
   --resource-name arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3 
   --tag-keys Env

A client error (AccessDeniedException) occurred when calling the RemoveTagsFromResource 
operation: User: arn:aws:iam::152683116:user/dmstestusr is not authorized to perform: 
dms:RemoveTagsFromResource on resource: arn:aws:dms:us-east-1:152683116:task:RB7N24J2XBUPS3RFABZTG3
```

## Criptografia para migrações AWS DMS homogêneas
<a name="CHAP_Security.Migrations"></a>

AWS DMS migrações homogêneas também criptografam os recursos usados em suas migrações de dados, incluindo armazenamento e outros componentes. Se você não especificar uma chave gerenciada pelo cliente, as migrações AWS DMS homogêneas usarão automaticamente uma chave AWS própria para criptografar seus recursos.

Quando você usa uma chave gerenciada pelo cliente, migrações AWS DMS homogêneas criam concessões em sua chave para permitir que o serviço criptografe e descriptografe recursos conforme necessário. Essas concessões são gerenciadas automaticamente como parte do ciclo de vida da migração.

**Usar uma chave gerenciada pelo cliente com migrações homogêneas**

Para usar uma chave gerenciada pelo cliente para sua migração homogênea, adicione as seguintes permissões às permissões do IAM que você deve conceder à conta de usuário do IAM para usar migrações AWS DMS homogêneas:

```
{
    "Effect": "Allow",
    "Action": [
        "kms:CreateGrant",
        "kms:DescribeKey",
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKeyWithoutPlaintext"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "kms:ViaService": [
                "dms.us-west-2.amazonaws.com", 
                "elasticfilesystem.us-west-2.amazonaws.com"
            ]
        }
    }
}
```

O DMS criará uma concessão interna para acessar e gerenciar as chaves de criptografia durante o processo de migração. Para ampliar ainda mais a CreateGrant operação, as seguintes limitações podem ser aplicadas à sua política de chaves gerenciadas pelo cliente:

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::111122223333:role/ExampleRole"
  },
  "Action": "kms:CreateGrant",
  "Resource": "*",
  "Condition": {
    "ForAllValues:StringEquals": {
      "kms:GrantOperations": [
        "CreateGrant",
        "DescribeKey",
        "Encrypt",
        "Decrypt",
        "RetireGrant",
        "GenerateDataKeyWithoutPlaintext"
      ]
    },
    "StringEquals": {
      "kms:ViaService": [
            "dms.us-west-2.amazonaws.com", 
            "elasticfilesystem.us-west-2.amazonaws.com"
      ]
    }
  }
}
```

**Importante**  
No momento, não é possível usar restrições adicionais de contexto de criptografia. A inclusão dessas restrições fará com que a migração falhe.

## Configurando uma chave de criptografia e especificando permissões AWS KMS
<a name="CHAP_Security.EncryptionKey"></a>

AWS DMS criptografa o armazenamento usado por uma instância de replicação e as informações de conexão do endpoint. Para criptografar o armazenamento usado por uma instância de replicação, AWS DMS use uma chave AWS Key Management Service (AWS KMS) exclusiva da sua AWS conta. Você pode visualizar e gerenciar essa chave com AWS KMS. Você pode usar a chave padrão do KMS na sua conta (`aws/dms`) ou criar uma chave personalizada do KMS. Se você tiver uma chave de criptografia existente do KMS, também será possível usá-la para criptografar.

**nota**  
Qualquer AWS KMS chave personalizada ou existente que você usa como chave de criptografia deve ser uma chave simétrica. AWS DMS não suporta o uso de chaves de criptografia assimétricas. Para obter mais informações sobre as chaves de criptografia simétricas e assimétricas, consulte [https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) no *Guia do desenvolvedor do AWS Key Management Service *.

A chave padrão do KMS (`aws/dms`) será criada ao executar uma instância de replicação pela primeira vez, se você não tiver selecionado uma chave personalizada do KMS na seção **Avançado**, na página **Criar instância de replicação**. Se você utilizar a chave padrão do KMS, as únicas permissões que deverão ser concedidas à conta de usuário do IAM que você está utilizando para a migração são `kms:ListAliases` e `kms:DescribeKey`. Para obter mais informações sobre o uso da chave padrão do KMS, consulte [Permissões do IAM necessárias para usar AWS DMS](security-iam.md#CHAP_Security.IAMPermissions). 

Para usar uma chave personalizada do KMS, atribua permissões a ela utilizando uma das seguintes opções:
+ Adicione a conta de usuário do IAM usada para a migração como administrador da chave ou usuário da chave AWS KMS personalizada. Isso garantirá que as permissões necessárias do AWS KMS sejam concedidas à conta do usuário do IAM. Essa ação é uma adição às permissões do IAM que você concede à conta do usuário do IAM para usar o AWS DMS. Para obter mais informações sobre como conceder permissões a um usuário de chaves, consulte [Permite que os usuários de chaves usem a chave do KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html#key-policy-default-allow-users) no *Guia do desenvolvedor do AWS Key Management Service .*
+ Se você não quiser adicionar a conta do usuário do IAM como um administrador de chaves ou usuário de chaves para a chave personalizada do KMS, adicione as seguintes permissões adicionais às permissões do IAM que devem ser concedidas à conta do usuário do IAM para usar o AWS DMS. 

  ```
  {
              "Effect": "Allow",
              "Action": [
                  "kms:ListAliases",
                  "kms:DescribeKey",
                  "kms:CreateGrant",
                  "kms:Encrypt",
                  "kms:ReEncrypt*"
              ],
              "Resource": "*"
          },
  ```

AWS DMS também funciona com aliases de chave KMS. Para obter mais informações sobre como criar suas próprias chaves do AWS KMS e conceder acesso aos usuários a uma chave do KMS, consulte o *[ Guia do desenvolvedor do AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)*. 

Se você não especificar um identificador de chave KMS, AWS DMS use sua chave de criptografia padrão. AWS KMS cria a chave de criptografia padrão AWS DMS para sua AWS conta. Sua AWS conta tem uma chave de criptografia padrão diferente para cada AWS região. 

Para gerenciar as AWS KMS chaves usadas para criptografar seus AWS DMS recursos, use o. AWS Key Management Service AWS KMS combina hardware e software seguros e de alta disponibilidade para fornecer um sistema de gerenciamento de chaves dimensionado para a nuvem. Usando AWS KMS, você pode criar chaves de criptografia e definir as políticas que controlam como essas chaves podem ser usadas.

**Você pode encontrar AWS KMS no Console de gerenciamento da AWS**

1. Faça login no console Console de gerenciamento da AWS e abra o AWS Key Management Service (AWS KMS) em [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms).

1. Para alterar o Região da AWS, use o seletor de região no canto superior direito da página.

1. Escolha uma das seguintes opções para trabalhar com AWS KMS teclas:
   + Para ver as chaves em sua conta que AWS cria e gerencia para você, no painel de navegação, escolha **chaves AWS gerenciadas**.
   + Para exibir as chaves em sua conta que você cria e gerencia, no painel de navegação, escolha **Customer managed keys (Chaves gerenciadas de cliente)**.

AWS KMS suporta AWS CloudTrail, para que você possa auditar o uso das chaves para verificar se as chaves estão sendo usadas adequadamente. Suas AWS KMS chaves podem ser usadas em combinação com AWS DMS AWS serviços compatíveis, como Amazon RDS, Amazon S3, Amazon Redshift e Amazon EBS. 

Você também pode criar AWS KMS chaves personalizadas especificamente para criptografar dados de destino para os seguintes AWS DMS endpoints:
+ Amazon Redshift: para obter mais informações, consulte [Criação e uso de AWS KMS chaves para criptografar dados de destino do Amazon Redshift](CHAP_Target.Redshift.md#CHAP_Target.Redshift.KMSKeys).
+ Amazon S3: para obter mais informações, consulte [Criação de AWS KMS chaves para criptografar objetos de destino do Amazon S3](CHAP_Target.S3.md#CHAP_Target.S3.KMSKeys).

Depois de criar seus AWS DMS recursos com uma chave KMS, você não poderá alterar a chave de criptografia desses recursos. Certifique-se de determinar seus requisitos de chave de criptografia antes de criar seus AWS DMS recursos. 

## Segurança de rede para AWS Database Migration Service
<a name="CHAP_Security.Network"></a>

Os requisitos de segurança para a rede que você cria ao usar AWS Database Migration Service dependem de como você configura a rede. As regras gerais de segurança de rede para AWS DMS são as seguintes: 
+ A instância de replicação deve ter acesso aos endpoints de origem e de destino. O grupo de segurança da instância de replicação deve ter uma rede ACLs ou regras que permitam a saída da instância pela porta do banco de dados para os endpoints do banco de dados.
+ Os endpoints do banco de dados devem incluir regras de rede ACLs e grupo de segurança que permitam o acesso de entrada da instância de replicação. Isso pode ser feito utilizando o grupo de segurança da instância de replicação, o endereço IP privado, o endereço IP público ou o endereço público do gateway NAT, dependendo da sua configuração. 
+ Se a rede utilizar um túnel de VPN, a instância do Amazon EC2 que atua como o gateway NAT deve utilizar um grupo de segurança que tenha regras que permitam que a instância de replicação envie tráfego por meio dele.

Por padrão, o security group da VPC usado pela instância de AWS DMS replicação tem regras que permitem a saída para 0.0.0.0/0 em todas as portas. Se você modificá-lo ou usar o seu próprio, a saída deverá, no mínimo, ser permitida para os endpoints de origem e de destino nas respectivas portas de banco de dados.

As configurações de rede que podem ser usadas para migrar bancos de dados exigem considerações específicas de segurança:
+  [Configuração com todos os componentes de migração de banco de dados em uma VPC](CHAP_ReplicationInstance.VPC.md#CHAP_ReplicationInstance.VPC.Configurations.ScenarioAllVPC): o grupo de segurança utilizado pelos endpoints deve permitir a entrada na porta do banco de dados da instância de replicação. Confirme se o security group usado pela instância de replicação tem entrada para os endpoints ou crie uma regra no security group usado pelos endpoints que permita ao endereço IP privado acessar a instância de replicação. 
+  [Configuração com vários VPCs](CHAP_ReplicationInstance.VPC.md#CHAP_ReplicationInstance.VPC.Configurations.ScenarioVPCPeer): o grupo de segurança utilizado pela instância de replicação deve ter uma regra para o intervalo da VPC e a porta do banco de dados no banco de dados. 
+  [Configuração de uma rede para uma VPC usando Direct Connect ou uma VPN](CHAP_ReplicationInstance.VPC.md#CHAP_ReplicationInstance.VPC.Configurations.ScenarioDirect): um túnel da VPN que permite o tráfego para o túnel da VPC em uma VPN on-premises. Nessa configuração, o VPC inclui uma regra de roteamento que envia o tráfego destinado a um endereço IP ou intervalo específico para um host que pode conectar o tráfego do VPC com a VPN local. Nesse caso, o host NAT inclui suas próprias configurações de grupo de segurança, que devem permitir o tráfego do endereço IP privado da instância de replicação ou do grupo de segurança para a instância NAT. 
+  [Configuração de uma rede para uma VPC utilizando a internet](CHAP_ReplicationInstance.VPC.md#CHAP_ReplicationInstance.VPC.Configurations.ScenarioInternet): o grupo de segurança da VPC deve incluir regras de roteamento que enviem o tráfego não destinado à VPC para o gateway da Internet. Nessa configuração, a conexão ao endpoint parecerá vir do endereço IP público na instância de replicação. 
+  [Configuração com uma instância de banco de dados RDS fora de uma VPC para uma instância de banco de dados em uma VPC usando ClassicLink](CHAP_ReplicationInstance.VPC.md#CHAP_ReplicationInstance.VPC.Configurations.ClassicLink)— Quando a instância de banco de dados Amazon RDS de origem ou destino não está em uma VPC e não compartilha um grupo de segurança com a VPC em que a instância de replicação está localizada, você pode configurar um servidor proxy e ClassicLink usá-lo para conectar os bancos de dados de origem e de destino. 
+  **O endpoint de origem está fora da VPC utilizada pela instância de replicação e utiliza um gateway NAT**: é possível configurar um gateway de conversão de endereços de rede (NAT) utilizando um único endereço IP elástico associado a uma única interface de rede elástica. Essa interface de rede elástica recebe um identificador NAT (nat-\$1\$1\$1\$1\$1). Se a VPC incluir uma rota padrão para o gateway NAT em vez do gateway da internet, a instância de replicação parecerá entrar em contato com o endpoint do banco de dados utilizando o endereço IP público do gateway da internet. Nesse caso, a entrada no endpoint do banco de dados fora da VPC precisa permitir a entrada do endereço NAT em vez do endereço IP público da instância de replicação. 
+ **Endpoints da VPC para mecanismos não RDBMS**: o AWS DMS não é compatível com endpoints da VPC para mecanismos não RDBMS.

# Usando SSL com AWS Database Migration Service
<a name="CHAP_Security.SSL"></a>

É possível criptografar conexões para endpoints de origem e de destino utilizando Secure Sockets Layer (SSL). Para fazer isso, você pode usar o AWS DMS Management Console ou a AWS DMS API para atribuir um certificado a um endpoint. Você também pode usar o AWS DMS console para gerenciar seus certificados. 

Nem todos os bancos de dados utilizam o SSL da mesma forma. A edição compatível com o MySQL do Amazon Aurora utiliza o nome do servidor e o endpoint da instância primária no cluster, como o endpoint para SSL. Um endpoint do Amazon Redshift já utiliza uma conexão SSL e não requer uma configuração de conexão SSL feita pelo AWS DMS. Um endpoint do Oracle exige etapas adicionais. Para obter mais informações, consulte [Suporte de SSL para um endpoint do Oracle](CHAP_Source.Oracle.md#CHAP_Security.SSL.Oracle).

**Topics**
+ [Limitações no uso de SSL com AWS DMS](#CHAP_Security.SSL.Limitations)
+ [Gerenciar certificados](#CHAP_Security.SSL.ManagingCerts)
+ [Ativar SSL para um endpoint de SQL Server ou PostgreSQL compatível com MySQL](#CHAP_Security.SSL.Procedure)

Para estabelecer uma conexão segura, forneça o certificado raiz ou a cadeia de certificados CA intermediários que levam à raiz (como um pacote de certificados), que você usou para cadastrar o certificado SSL do servidor no endpoint. Os certificados só são aceitos como arquivos X509 com formato PEM. Ao importar um certificado, você recebe o Nome de recurso da Amazon (ARN), que pode ser usado para especificar o certificado para um endpoint. Se você utilizar o Amazon RDS, poderá baixar a CA raiz e o pacote de certificados fornecidos no arquivo `rds-combined-ca-bundle.pem` hospedado pelo Amazon RDS. Para obter mais informações sobre o download desse arquivo, consulte Como [usar SSL/TLS para criptografar uma conexão com uma instância](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html) de banco de dados no Guia do *usuário do Amazon RDS*.

É possível escolher dentre vários modos SSL para usar na verificação de certificado SSL. 
+ **none**: a conexão não é criptografada. Essa opção não é segura, mas exige menos custos indiretos.
+ **require**: a conexão é criptografada utilizando o SSL (TLS), mas nenhuma verificação da CA é feita. Esta opção é mais segura e exige mais custos indiretos. 
+ **verify-ca**: a conexão é criptografada. Esta opção é mais segura e exige mais custos indiretos. Esta opção verifica o certificado do servidor. 
+ **verify-full**: a conexão é criptografada. Esta opção é mais segura e exige mais custos indiretos. Esta opção verifica o certificado do servidor e se o hostname do servidor corresponde ao hostname do atributo do certificado. 

Nem todos os modos SSL funcionam com todos os endpoints de banco de dados. A tabela a seguir mostra os modos SSL que são suportados por cada mecanismo de banco de dados.


|  Mecanismo de banco de dados  |  **none**  |  **require**  |  **verify-ca**  |  **verify-full**  | 
| --- | --- | --- | --- | --- | 
|  MySQL/MariaDB/AmazonAurora MySQL  | Padrão | Não compatível | Compatível | Compatível | 
|  Microsoft SQL Server  | Padrão | Compatível | Não suportado | Compatível | 
|  PostgreSQL  | Padrão | Compatível | Compatível | Compatível | 
|  banco de dados de origem  | Padrão | SSL não ativado | SSL não ativado | SSL não ativado | 
|  Oracle  | Padrão | Não compatível | Compatível | Não suportado | 
|  SAP ASE  | Padrão | SSL não ativado | SSL não ativado | Compatível | 
|  MongoDB  | Padrão | Compatível | Não suportado | Compatível | 
|  Db2 LUW  | Padrão | Não suportado | Compatível | Não suportado | 
|  Db2 for z/OS  | Padrão | Não suportado | Compatível | Não suportado | 

**nota**  
A opção Modo SSL no console ou na API do DMS não se aplica a alguns serviços de streaming de dados e de NoSQL, como o Kinesis e o DynamoDB. Eles são seguros por padrão, portanto, o DMS mostra que a configuração do modo SSL é igual a nenhum (**Modo SSL= nenhum**). Não é necessário fornecer nenhuma configuração adicional para que o endpoint utilize o SSL. Por exemplo, ao utilizar o Kinesis como um endpoint de destino, ele é seguro por padrão. Todas as chamadas de API para o Kinesis usam SSL, portanto, não há necessidade de uma opção adicional de SSL no endpoint do DMS. É possível colocar e recuperar dados com segurança por meio de endpoints do SSL utilizando o protocolo HTTPS, que o DMS utiliza por padrão ao se conectar a um fluxo de dados Kinesis.

## Limitações no uso de SSL com AWS DMS
<a name="CHAP_Security.SSL.Limitations"></a>

A seguir estão as limitações do uso de SSL com AWS DMS:
+ Não há suporte para conexões SSL com endpoints de destino do Amazon Redshift. AWS DMS usa um bucket do Amazon S3 para transferir dados para o banco de dados do Amazon Redshift. Por padrão, essa transmissão é criptografada pelo Amazon Redshift. 
+ Os limites de tempo do SQL podem ocorrer enquanto tarefas de CDC são executadas com endpoints do Oracle com SSL ativado. Se você tiver esse problema, em que contadores de CDC não refletem os números esperados, defina o parâmetro `MinimumTransactionSize` da seção `ChangeProcessingTuning` das configurações de tarefa, como um valor menor. É possível começar com um valor baixo como 100. Para obter mais informações sobre o parâmetro `MinimumTransactionSize`, consulte [Configurações de ajuste de processamento de alterações](CHAP_Tasks.CustomizingTasks.TaskSettings.ChangeProcessingTuning.md).
+ Você pode importar certificados somente nos formatos .pem e .sso (Oracle wallet).
+ Em alguns casos, o certificado SSL do servidor pode ser assinado por uma autoridade de certificação (CA) intermediária. Em caso afirmativo, verifique se toda a cadeia de certificados da CA intermediária até a CA raiz é importada como um único arquivo .pem.
+ Se você estiver utilizando certificados autoassinados no servidor, escolha **require** como modo SSL. O modo SSL **require** confia implicitamente no certificado SSL do servidor e não tentará validar se o certificado foi assinado por uma CA. 
+ AWS DMS não suporta a versão 1.3 do TLS para MySQL MariaDb e endpoints.

## Gerenciar certificados
<a name="CHAP_Security.SSL.ManagingCerts"></a>

É possível usar o console do DMS para visualizar e gerenciar certificados SSL. Você também pode importar os certificados utilizando o console do DMS.

![\[AWS Database Migration Service Gerenciamento de certificados SSL\]](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/images/datarep-certificatemgr.png)


## Ativar SSL para um endpoint de SQL Server ou PostgreSQL compatível com MySQL
<a name="CHAP_Security.SSL.Procedure"></a>

É possível adicionar uma conexão SSL a um endpoint recém-criado ou existente.

**Para criar um AWS DMS endpoint com SSL**

1. Faça login no Console de gerenciamento da AWS e abra o AWS DMS console em [https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/). 

   Se você estiver conectado como usuário AWS Identity and Access Management (IAM), verifique se você tem as permissões apropriadas para acessar AWS DMS. Para obter mais informações sobre as permissões necessárias para a migração de banco de dados, consulte [Permissões do IAM necessárias para usar AWS DMS](security-iam.md#CHAP_Security.IAMPermissions).

1. No painel de navegação, escolha **Certificates**.

1. Selecione **Import Certificate**.

1. Carregue o certificado que deseja usar para criptografar a conexão a um endpoint.
**nota**  
Você também pode carregar um certificado usando o AWS DMS console ao criar ou modificar um endpoint selecionando **Adicionar novo certificado CA** na página **Criar endpoint de banco de dados**.  
Para o Aurora Serverless como destino, obtenha o certificado mencionado em Usando [com TLS/SSL ](https://docs.aws.amazon.com//AmazonRDS/latest/AuroraUserGuide/aurora-serverless.html#aurora-serverless.tls) o Aurora Serverless.

1. Crie um endpoint conforme descrito em [Etapa 2: Especificar endpoints de origem e de destino](CHAP_GettingStarted.Replication.md#CHAP_GettingStarted.Replication.Endpoints)

**Para modificar um AWS DMS endpoint existente para usar SSL**

1. Faça login no Console de gerenciamento da AWS e abra o AWS DMS console em [https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/). 

   Se estiver conectado como um usuário do IAM, verifique se você possui as permissões necessárias para acessar o AWS DMS. Para obter mais informações sobre as permissões necessárias para a migração de banco de dados, consulte [Permissões do IAM necessárias para usar AWS DMS](security-iam.md#CHAP_Security.IAMPermissions).

1. No painel de navegação, escolha **Certificates**.

1. Selecione **Import Certificate**.

1. Carregue o certificado que deseja usar para criptografar a conexão a um endpoint.
**nota**  
Você também pode carregar um certificado usando o AWS DMS console ao criar ou modificar um endpoint selecionando **Adicionar novo certificado CA** na página **Criar endpoint de banco de dados**.

1. No painel de navegação, selecione **Endpoints**, escolha o endpoint que você deseja modificar e selecione **Modify**.

1. Escolha um valor para o **SSL mode (Modo SSL)**.

   Se você escolher o modo **verify-ca** ou **verify-full**, especifique o certificado que você deseja usar para **CA certificate (Certificado CA)**, conforme mostrado a seguir.   
![\[AWS Database Migration Service Gerenciamento de certificados SSL\]](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/images/datarep-certificate2.png)

   

1. Escolha **Modificar**.

1. Quando o endpoint tiver sido modificado, selecione-o e escolha **Test connection (Testar conexão)** para determinar se a conexão SSL está funcionando.

Após criar os endpoints de origem e de destino, crie uma tarefa que os use. Para obter mais informações sobre como criar uma tarefa, consulte [Etapa 3: Criar uma tarefa e migrar os dados](CHAP_GettingStarted.Replication.md#CHAP_GettingStarted.Replication.Tasks). 

## Alterar a senha do banco de dados
<a name="CHAP_Security.ChangingDBPassword"></a>

Na maioria das situações, alterar a senha do banco de dados do endpoint de origem ou de destino é simples. Se for necessário alterar a senha do banco de dados de um endpoint usado atualmente em uma tarefa de migração ou de replicação, o processo precisará de algumas etapas adicionais. O procedimento a seguir mostra como fazer isso.

**Como alterar a senha do banco de dados de um endpoint em uma tarefa de migração ou de replicação**

1. Faça login no Console de gerenciamento da AWS e abra o AWS DMS console em [https://console.aws.amazon.com/dms/v2/](https://console.aws.amazon.com/dms/v2/). 

   Se estiver conectado como um usuário do IAM, verifique se você possui as permissões necessárias para acessar o AWS DMS. Para obter mais informações sobre as permissões necessárias, consulte [Permissões do IAM necessárias para usar AWS DMS](security-iam.md#CHAP_Security.IAMPermissions).

1. No painel de navegação, escolha **Tarefas de migração de banco de dados**.

1. Escolha a tarefa que utiliza o endpoint cuja senha do banco de dados você deseja alterar e selecione **Stop**.

1. Enquanto a tarefa está interrompida, é possível alterar a senha do banco de dados do endpoint utilizando as ferramentas nativas usadas para trabalhar com o banco de dados.

1. Retorne ao DMS Management Console e selecione **Endpoints** no painel de navegação.

1. Escolha o endpoint do banco de dados cuja senha você modificou e selecione **Modify**.

1. Digite a nova senha na caixa **Senha** e selecione **Modificar**.

1. Escolha **Tarefas de migração de banco de dados** no painel de navegação.

1. Escolha a tarefa interrompida anteriormente e selecione **Iniciar/retomar**.

1. Selecione **Reiniciar** ou **Retomar**, dependendo de como você deseja continuar a tarefa, e escolha **Iniciar tarefa**.

# Usando a autenticação Kerberos com AWS Database Migration Service
<a name="CHAP_Security.Kerberos"></a>

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?](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html) .

## AWS DMS Visão geral da arquitetura de autenticação Kerberos
<a name="CHAP_Security.Kerberos.architecture"></a>

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\]](http://docs.aws.amazon.com/pt_br/dms/latest/userguide/images/datarep-kerberos-architecture.jpg)


## Limitações no uso da autenticação Kerberos com AWS DMS
<a name="CHAP_Security.Kerberos.limitations"></a>

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
<a name="CHAP_Security.Kerberos.prerequisites"></a>

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](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_setup_trust.html).
+ 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](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass) na *documentação do Windows Server*. 

    Para ter mais informações sobre o utilitário **kutil** do MIT, consulte [kutil](https://web.mit.edu/kerberos/krb5-1.12/doc/admin/admin_commands/ktutil.html) 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](https://web.mit.edu/kerberos/krb5-1.12/doc/user/user_commands/kinit.html) 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](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_CreateSecret.html) 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](security-iam.md#CHAP_Security.APIRole).

O exemplo a seguir mostra uma política de perfil do IAM com as permissões `GetSecretValue` e `DescribeSecret` do Secrets Manager. O *<keycache\$1secretsmanager\$1arn>* 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
<a name="CHAP_Security.Kerberos.enable.instance"></a>

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](https://docs.aws.amazon.com/route53/). 

### Habilitando o suporte ao Kerberos em uma instância de replicação do DMS usando o Console de gerenciamento da AWS
<a name="CHAP_Security.Kerberos.enable.instance.console"></a>

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
<a name="CHAP_Security.Kerberos.enable.instance.cli"></a>

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](https://docs.aws.amazon.com/cli/latest/reference/dms/create-replication-instance.html).

```
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
<a name="CHAP_Security.Kerberos.enable.endpoint"></a>

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 instância do Amazon EC2 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](CHAP_SupportAmi.md).

### Usando o console do AWS DMS
<a name="CHAP_Security.Kerberos.enable.endpoint.console"></a>

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

### Usando o AWS CLI
<a name="CHAP_Security.Kerberos.enable.endpoint.cli"></a>

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
<a name="CHAP_Security.Kerberos.test"></a>

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](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/dms/test-connection.html).