

# Associar uma política baseada em recurso a um fluxo do DynamoDB
<a name="rbac-attach-resource-policy-streams"></a>

É possível associar uma política baseada em recursos ao fluxo de uma tabela existente ou modificar uma política existente usando o console do DynamoDB, a API [PutResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutResourcePolicy.html), a AWS CLI, o SDK da AWS ou um [modelo do CloudFormation](rbac-create-table.md#rbac-create-table-cfn).

**nota**  
Não é possível associar uma política a um fluxo ao criá-lo usando as APIs [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) ou [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html). No entanto, é possível modificar ou excluir uma política após a exclusão de uma tabela. Também é possível modificar ou excluir a política de um fluxo desabilitado.



## AWS CLI
<a name="rbac-attach-policy-stream-CLI"></a>

O exemplo de política do IAM a seguir usa o comando `put-resource-policy` da AWS CLI para associar uma política baseada em recursos ao fluxo de uma tabela denominada *MusicCollection*. Este exemplo possibilita que o usuário *John* realize as ações de API [GetRecords](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html), [GetShardIterator](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html) e [DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html) no fluxo.

Lembre-se de substituir o texto em *itálico* pelas informações específicas do recurso.

```
aws dynamodb put-resource-policy \
    --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492 \
    --policy \
        "{
            \"Version\": \"2012-10-17\",		 	 	 
            \"Statement\": [
              {
                    \"Effect\": \"Allow\",
                    \"Principal\": {
                        \"AWS\": \"arn:aws:iam::111122223333:user/John\"
                    },
                    \"Action\": [
                        \"dynamodb:GetRecords\",
                        \"dynamodb:GetShardIterator\",
                        \"dynamodb:DescribeStream\"
                    ],
                    \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492\"
                }
            ]
        }"
```

## Console de gerenciamento da AWS
<a name="rbac-attach-policy-stream-console"></a>

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

1. No painel do console do DynamoDB, selecione **Tabelas** e, depois, uma tabela existente.

   Verifique se a tabela selecionada tem fluxos ativados. Para ter informações sobre como ativar fluxos para uma tabela, consulte [Habilitar um fluxo](Streams.md#Streams.Enabling).

1. Escolha a aba **Permissões**.

1. Em **Política baseada em recursos para fluxo ativo**, selecione **Criar política de fluxo**.

1. No editor **Política baseada em recursos**, adicione uma política para definir as permissões de acesso para o fluxo. Nessa política, você deve especificar quem tem acesso ao fluxo e as ações que podem realizar no fluxo. Para adicionar uma política, siga um destes procedimentos:
   + Digite ou cole um documento de política JSON. Para ter detalhes sobre a linguagem de política do IAM, consulte [Criar políticas usando o editor de JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) no *Guia do usuário do IAM*.
**dica**  
Para ver exemplos de políticas baseadas em recursos no Guia do desenvolvedor do Amazon DynamoDB, selecione **Exemplos de políticas**.
   + Selecione **Adicionar nova declaração** para adicionar uma nova declaração e insira as informações nos campos fornecidos. Repita esta etapa para todas as instruções que deseja adicionar.
**Importante**  
Solucione avisos de segurança, erros ou sugestões antes de salvar a política.

1. (Opcional) Escolha **Preview external access** (Pré-visualizar o acesso externo) na canto inferior direito para pré-visualizar a forma como sua nova política afetará o acesso público e entre contas ao seu recurso. Antes de salvar sua política, você pode verificar se ela introduz novas descobertas do IAM Access Analyzer ou resolve as descobertas existentes. Se você não vir um analisador ativo, escolha **Go to Access Analyzer** (Acessar o Access Analyzer) para [criar um analisador de contas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling) no IAM Access Analyzer. Para ter mais informações, consulte [Acesso de visualização](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html).

1. Escolha **Criar política**.

O exemplo de política do IAM a seguir associa uma política baseada em recursos ao fluxo de uma tabela denominada *MusicCollection*. Este exemplo possibilita que o usuário *John* realize as ações de API [GetRecords](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html), [GetShardIterator](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html) e [DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html) no fluxo.

Lembre-se de substituir o texto em *itálico* pelas informações específicas do recurso.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:user/username"
      },
      "Action": [
        "dynamodb:GetRecords",
        "dynamodb:GetShardIterator",
        "dynamodb:DescribeStream"
      ],
      "Resource": [
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492"
      ]
    }
  ]
}
```

------