

# Usar o IAM com o CloudWatch Contributor Insights para DynamoDB
<a name="Contributor_Insights_IAM"></a>

Na primeira vez que você habilitar o Amazon CloudWatch Contributor Insights para DynamoDB, o Amazon DynamoDB criará automaticamente uma função vinculada ao serviço do AWS Identity and Access Management (IAM) para você. Essa função `AWSServiceRoleForDynamoDBCloudWatchContributorInsights` permite que o DynamoDB gerencie as regras do CloudWatch Contributor Insights em seu nome. Não exclua essa função vinculada ao serviço. Se você excluí-la, todas as regras gerenciadas não serão mais removidas quando excluir a tabela ou o índice secundário global.

Para ter mais informações sobre perfis vinculados ao serviço, consulte [Criar um perfil vinculado ao serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) no *Guia do usuário do IAM*.

As seguintes permissões são necessárias:
+ Para habilitar ou desabilitar o CloudWatch Contributor Insights para DynamoDB, é necessário ter a permissão `dynamodb:UpdateContributorInsights` na tabela ou no índice.
+ Para visualizar os gráficos do CloudWatch Contributor Insights para DynamoDB, é necessário ter a permissão `cloudwatch:GetInsightRuleReport`.
+ Para descrever o CloudWatch Contributor Insights para DynamoDB para determinada tabela ou índice do DynamoDB, é necessário ter a permissão `dynamodb:DescribeContributorInsights`.
+ Para listar os status do CloudWatch Contributor Insights para DynamoDB para cada tabela e cada índice secundário global, é necessário ter a permissão `dynamodb:ListContributorInsights`.

## Exemplo: ativar ou desativar o CloudWatch Contributor Insights para DynamoDB
<a name="access-policy-Contributor_Insights-example1"></a>

A política do IAM a seguir concede permissões para ativar ou desativar o CloudWatch Contributor Insights para DynamoDB. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/contributorinsights.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBCloudWatchContributorInsights",
            "Condition": {"StringLike": {"iam:AWSServiceName": "contributorinsights.dynamodb.amazonaws.com"}}
        },
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:UpdateContributorInsights"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*"
        }
    ]
}
```

------

 Para tabelas criptografadas pela chave do KMS, o usuário precisa ter permissões kms:Decrypt para atualizar o Contributor Insights. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/contributorinsights.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBCloudWatchContributorInsights",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "contributorinsights.dynamodb.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:UpdateContributorInsights"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*"
        },
        {
            "Effect": "Allow",
            "Resource": "arn:aws:kms:*:*:key/*",
            "Action": [
                "kms:Decrypt"
            ]
        }
    ]
}
```

------

## Exemplo: recuperar o relatório de regras do CloudWatch Contributor Insights
<a name="access-policy-Contributor_Insights-example2"></a>

A política do IAM a seguir concede permissões para recuperar o relatório de regras do CloudWatch Contributor Insights.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetInsightRuleReport"
            ],
            "Resource": "arn:aws:cloudwatch:*:*:insight-rule/DynamoDBContributorInsights*"
        }
    ]
}
```

------

## Exemplo: aplicar seletivamente o CloudWatch Contributor Insights para permissões do DynamoDB com base em recurso
<a name="access-policy-Contributor_Insights-example3"></a>

A política do IAM a seguir permite as ações `ListContributorInsights` e `DescribeContributorInsights` e nega a ação `UpdateContributorInsights` para um índice secundário global específico.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:ListContributorInsights",
                "dynamodb:DescribeContributorInsights"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "dynamodb:UpdateContributorInsights"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books/index/Author-index"
        }
    ]
}
```

------

## Usar funções vinculadas ao serviço para o CloudWatch Contributor Insights para DynamoDB
<a name="contributorinsights-service-linked-roles"></a>

O CloudWatch Contributor Insights para DynamoDB usa [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) do AWS Identity and Access Management (IAM). Uma função vinculada ao serviço é um tipo exclusivo de perfil do IAM que é vinculado diretamente ao CloudWatch Contributor Insights para DynamoDB. As funções vinculadas ao serviço são predefinidas pelo CloudWatch Contributor Insights para DynamoDB e incluem todas as permissões que o serviço requer para chamar outros serviços da AWS em seu nome. 

Uma função vinculada ao serviço facilita a configuração do CloudWatch Contributor Insights para DynamoDB porque você não precisa adicionar as permissões necessárias manualmente. O CloudWatch Contributor Insights para DynamoDB define as permissões de suas funções vinculadas ao serviço e, exceto se definido de outra forma, somente o CloudWatch Contributor Insights para DynamoDB poderá assumir suas funções. As permissões definidas incluem a política de confiança e a política de permissões, que não pode ser anexada a nenhuma outra entidade do IAM.

Para saber mais sobre outros serviços compatíveis com funções vinculadas a serviços, consulte [Serviços da AWS compatíveis com o IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) e procure os serviços que contenham **Sim** na coluna **Função vinculada a serviço**. Escolha um **Sim** com um link para visualizar a documentação da função vinculada a esse serviço.

### Permissões de funções vinculadas ao serviço para o CloudWatch Contributor Insights para DynamoDB
<a name="slr-permissions"></a>

O CloudWatch Contributor Insights para DynamoDB usa a função vinculada ao serviço chamada **AWSServiceRoleForDynamoDBCloudWatchContribuorInsights**. O objetivo da função vinculada ao serviço é permitir que o Amazon DynamoDB gerencie as regras do Amazon CloudWatch Contributor Insights criadas para tabelas do e índices secundários globais do DynamoDB em seu nome.

O perfil vinculado ao serviço `AWSServiceRoleForDynamoDBCloudWatchContributorInsights` confia nos seguintes serviços para aceitar o perfil:
+ `contributorinsights.dynamodb.amazonaws.com `

A política de permissões da função permite que o CloudWatch Contributor Insights para DynamoDB conclua as seguintes ações nos recursos especificados:
+ Ação: `Create and manage Insight Rules` em `DynamoDBContributorInsights`

Você deve configurar permissões para que uma entidade do IAM (por exemplo, um usuário, grupo ou função) crie, edite ou exclua um perfil vinculado a serviço. Para saber mais, consulte [Permissões de Função Vinculadas ao Serviço](https://docs.aws.amazon.com/IAM/latest/UserGuide/contributorinsights-service-linked-roles.html#service-linked-role-permissions) no *Guia do Usuário do IAM*.

### Criar uma função vinculada ao serviço para o CloudWatch Contributor Insights para DynamoDB
<a name="create-slr"></a>

Não é necessário criar manualmente uma função vinculada ao serviço. Quando você habilita o Colaborador Insights via Console de gerenciamento da AWS, AWS CLI ou AWS API, o CloudWatch Contributor Insights para DynamoDB cria uma função vinculada ao serviço para você. 

Se excluir essa função vinculada ao serviço e precisar criá-la novamente, você poderá usar esse mesmo processo para recriar a função em sua conta. Quando você habilita o Contributor Insights, o CloudWatch Contributor Insights para DynamoDB cria uma função vinculada ao serviço para você mais uma vez. 

### Editar uma função vinculada ao serviço para o CloudWatch Contributor Insights para DynamoDB
<a name="edit-slr"></a>

O CloudWatch Contributor Insights para DynamoDB não permite editar a função vinculada ao serviço `AWSServiceRoleForDynamoDBCloudWatchContributorInsights`. Depois que criar um perfil vinculado ao serviço, você não poderá alterar o nome do perfil, pois várias entidades podem fazer referência a ele. No entanto, será possível 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*.

### Excluir uma função vinculada ao serviço para o CloudWatch Contributor Insights para DynamoDB
<a name="delete-slr"></a>

Você não precisa excluir manualmente a função `AWSServiceRoleForDynamoDBCloudWatchContributorInsights`. Quando você desabilita o Contributor Insights via Console de gerenciamento da AWS, AWS CLI ou AWS API, o CloudWatch Contributor Insights para DynamoDB limpa os recursos.

Também é possível usar o console do IAM, a AWS CLI ou a API da AWS para excluir manualmente a função vinculada ao serviço. Para isso, primeiro você deve limpar manualmente os recursos de sua função vinculada ao serviço e depois excluí-la manualmente.

**nota**  
Se o serviço CloudWatch Contributor Insights para DynamoDB estiver usando a função quando você tentar excluir os recursos, poderá haver falha na exclusão. Se isso acontecer, espere alguns minutos e tente a operação novamente.

**Para excluir manualmente a função vinculada ao serviço usando o IAM**

Use o console do IAM, a AWS CLI ou a API da AWS para excluir a função vinculada ao serviço `AWSServiceRoleForDynamoDBCloudWatchContributorInsights`. Para obter mais informações, 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*.