

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

# Permissões de fluxo no QLDB
<a name="streams.perms"></a>

**Importante**  
Aviso de fim do suporte: os clientes existentes poderão usar o Amazon QLDB até o final do suporte em 31/07/2025. Para obter mais detalhes, consulte [Migrar um Amazon QLDB Ledger para o Amazon](https://aws.amazon.com/blogs/database/migrate-an-amazon-qldb-ledger-to-amazon-aurora-postgresql/) Aurora PostgreSQL.

Antes de criar um fluxo do Amazon QLDB, você deve fornecer ao QLDB permissões de gravação para seu recurso especificado do Amazon Kinesis Data Streams. Se você estiver usando um cliente gerenciado AWS KMS key para criptografia do lado do servidor do seu fluxo do Kinesis, você também deve fornecer ao QLDB permissões para usar sua chave de criptografia simétrica especificada. O Kinesis Data Streams [não é compatível com chaves KMS assimétricas](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html).

Para fornecer ao seu fluxo do QLDB as permissões necessárias, você pode fazer com que o QLDB assuma um perfil de serviço do IAM com as políticas de permissões apropriadas. O perfil de serviço é um [perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que um serviço assume para executar ações em seu nome. Um administrador do IAM pode criar, modificar e excluir um perfil de serviço do IAM. Para obter mais informações, consulte [Criar um perfil para delegar permissões a um AWS service (Serviço da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) no *Guia do Usuário do IAM*. 

**nota**  
Para transmitir uma função ao QLDB ao solicitar um fluxo de diário, você deve ter permissões para realizar a ação `iam:PassRole` no recurso do perfil do IAM. Isso é um acréscimo à permissão `qldb:StreamJournalToKinesis` no sub-recurso de fluxo do QLDB.  
Para saber como controlar o acesso ao QLDB usando o IAM, consulte [Como o Amazon QLDB funciona com o IAM](security_iam_service-with-iam.md). Para ver um exemplo de política do QLDB, consulte [Exemplos de políticas baseadas em identidade para o Amazon QLDB](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-stream-to-kinesis).

Neste exemplo, você cria uma função que permite que o QLDB grave registros de dados em um fluxo de dados do Kinesis em seu nome. Para obter mais informações, consulte [Criar um perfil para delegar permissões a um AWS service (Serviço da AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) no *Guia do usuário do IAM*.

Se você estiver transmitindo um diário do QLDB pela primeira vez, primeiro crie uma função do IAM com as políticas apropriadas, fazendo o seguinte. Conta da AWS Ou você pode [usar o console do QLDB](streams.create.md#streams.create.con) para criar automaticamente a função para você. Caso contrário, você poderá escolher uma função que você criou anteriormente.

**Topics**
+ [Criação de uma política de permissões](#streams.perms.create-policy)
+ [Criar um perfil do IAM](#streams.perms.create-role)

## Criação de uma política de permissões
<a name="streams.perms.create-policy"></a>

Complete as etapas a seguir para criar políticas de permissão para o fluxo do QLDB. Este exemplo mostra uma política do Kinesis Data Streams que concede permissões ao QLDB para gravar registros de dados no fluxo de dados especificado do Kinesis. Se aplicável, o exemplo também mostra uma política de chave que permite que o QLDB use sua chave KMS de criptografia simétrica.

Para obter mais informações sobre Kinesis Data Streams, consulte [Controlar acesso aos recursos do Amazon Kinesis Data Streams usando o IAM](https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html) e [Permissões para usar chaves KMS gerada pelo usuário](https://docs.aws.amazon.com/streams/latest/dev/permissions-user-key-KMS.html) no *Guia do desenvolvedor do Amazon Kinesis Data Streams*. Para saber mais sobre as AWS KMS principais políticas, consulte [Como usar políticas de chaves AWS KMS no](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) *Guia do AWS Key Management Service desenvolvedor*.

**nota**  
Seu stream de dados do Kinesis e sua chave KMS devem estar na mesma conta e na mesma conta do seu livro Região da AWS contábil do QLDB.

**Para usar o editor de políticas JSON para criar uma política**

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

1. Na coluna de navegação à esquerda, selecione **Políticas**.

   Se essa for a primeira vez que você escolhe **Políticas**, a página **Bem-vindo às políticas gerenciadas** será exibida. Escolha **Começar**.

1. Na parte superior da página, escolha **Criar política**.

1. Selecione a guia **JSON**.

1. Insira um documento de política JSON.
   + Se você estiver usando uma chave KMS gerenciada pelo cliente para criptografia do lado do servidor do seu fluxo do Kinesis, use o seguinte exemplo de documento de política. Para usar essa política, substitua *us-east-1**123456789012*,*kinesis-stream-name*,, e *1234abcd-12ab-34cd-56ef-1234567890ab* no exemplo por suas próprias informações.

     ```
     {
         "Version": "2012-10-17",
         "Statement": [
             {
                 "Sid": "QLDBStreamKinesisPermissions",
                 "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ],
                 "Effect": "Allow",
                 "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/kinesis-stream-name"
             },
             {
                 "Sid": "QLDBStreamKMSPermission",
                 "Action": [ "kms:GenerateDataKey" ],
                 "Effect": "Allow",
                 "Resource": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
             }
         ]
     }
     ```
   + Ou, use o seguinte exemplo de documento de política. Para usar essa política*us-east-1*, substitua e*123456789012*, *kinesis-stream-name* no exemplo, por suas próprias informações.

     ```
     {
         "Version": "2012-10-17",
         "Statement": [
             {
                 "Sid": "QLDBStreamKinesisPermissions",
                 "Action": [ "kinesis:PutRecord*", "kinesis:DescribeStream", "kinesis:ListShards" ],
                 "Effect": "Allow",
                 "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/kinesis-stream-name"
             }
         ]
     }
     ```

1. Selecione **Revisar política**.
**nota**  
Você pode alternar entre as guias **Editor visual** e **JSON** sempre que quiser. No entanto, se você fizer alterações ou escolher **Revisar política** na guia **Editor visual**, o IAM pode reestruturar sua política de forma a otimizá-la para o editor visual. Para obter mais informações, consulte [Restruturação de política](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_policies.html#troubleshoot_viseditor-restructure) no *Manual do usuário do IAM*.

1. Na página **Review policy (Revisar política)**, insira um **Name (Nome)** e uma **Description (Descrição)** opcional para a política que você está criando. Revise o **Resumo** da política para ver as permissões que são concedidas pela política. Em seguida, escolha **Criar política** para salvar seu trabalho.

## Criar um perfil do IAM
<a name="streams.perms.create-role"></a>

Depois de criar uma política de permissões para seu fluxo do QLDB, você pode criar um perfil do IAM e anexar sua política a ele.

**Para criar um perfil de serviço para QLDB (console do IAM)**

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

1. No painel de navegação do console do IAM, escolha **Perfis** e, em seguida, **Criar perfil**.

1. Em **Tipo de Entidade Confiável**, escolha **AWS service (Serviço da AWS)**.

1. Para **Serviço ou caso de uso**, escolha **QLDB** e, em seguida, escolha o caso de uso do **QLDB**.

1. Escolha **Próximo**.

1. Selecione a caixa ao lado da política que você criou nas etapas anteriores.

1. (Opcional) Defina um [limite de permissões](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html). Esse é um atributo avançado que está disponível para perfis de serviço, mas não para perfis vinculados ao serviço.

   1. Abra a seção **Definir limite de permissões** e escolha **Usar um limite de permissões para controlar o número máximo de permissões do perfil**.

      O IAM inclui uma lista das políticas AWS gerenciadas e gerenciadas pelo cliente em sua conta.

   1. Selecione a política a ser usada para o limite de permissões.

1. Escolha **Próximo**.

1. Insira um nome de perfil ou um sufixo de nome de perfil para ajudar a identificar a finalidade do perfil.
**Importante**  
Quando nomear um perfil, observe o seguinte:  
Os nomes das funções devem ser exclusivos dentro de você Conta da AWS e não podem ser diferenciados por maiúsculas e minúsculas.  
Por exemplo, não crie dois perfis denominados **PRODROLE** e **prodrole**. Quando usado em uma política ou como parte de um ARN, o nome de perfil diferencia maiúsculas de minúsculas. No entanto, quando exibido para os clientes no console, como durante o processo de login, o nome de perfil diferencia maiúsculas de minúsculas.
Não é possível editar o nome do perfil depois de criá-lo porque outras entidades podem referenciar o perfil.

1. (Opcional) Em **Descrição**, insira uma descrição para o perfil.

1. (Opcional) Para editar os casos de uso e as permissões do perfil, escolha **Editar** nas seções **Etapa 1: selecionar entidades confiáveis** ou **Etapa 2: adicionar permissões**.

1. (Opcional) Para ajudar a identificar, organizar ou pesquisar o perfil, adicione tags como pares de chave-valor. Para obter mais informações sobre o uso de tags no IAM, consulte [Tags para AWS Identity and Access Management recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html) no *Guia do usuário do IAM*.

1. Reveja a função e escolha **Criar função**.

O documento JSON a seguir é um exemplo de política de confiança que permite ao QLDB assumir um perfil do IAM com permissões específicas anexadas.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "qldb.amazonaws.com"
            },
            "Action": [ "sts:AssumeRole" ],
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:qldb:us-east-1:123456789012:stream/myExampleLedger/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

**nota**  
O exemplo a seguir mostra como é possível usar as chaves de contexto de condição globais `aws:SourceArn` e `aws:SourceAccount` para evitar o problema de *substituto confuso*. Com essa política de confiança, o QLDB pode assumir a função de qualquer fluxo de QLDB na conta `123456789012` somente para o ledger `myExampleLedger`.  
Para obter mais informações, consulte [Prevenção contra o ataque do “substituto confuso” em todos os serviços](cross-service-confused-deputy-prevention.md).

Depois de criar seu perfil do IAM, retorne ao console do QLDB e atualize a página **Criar fluxo de QLDB** para que ele possa encontrar seu novo perfil.