

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

# 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 | 