

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 para usar as chaves do KMS geradas pelo usuário
<a name="permissions-user-key-KMS"></a>

Antes de usar a criptografia do lado do servidor com uma chave KMS gerada pelo usuário, você deve configurar AWS KMS políticas de chaves para permitir a criptografia de fluxos e a criptografia e descriptografia de registros de fluxo. Para obter exemplos e mais informações sobre AWS KMS permissões, consulte Permissões [da API AWS KMS: referência de ações e recursos](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html). 

**nota**  
O uso da chave padrão do serviço para criptografia não requer a aplicação de permissões personalizadas do IAM.

Antes de usar chaves mestras do KMS geradas pelo usuário, verifique se seus produtores e consumidores de fluxos do Kinesis (entidades principais do IAM) são usuários na política de chaves mestras do KMS. Caso contrário, as gravações e as leituras de um fluxo falharão, o que pode resultar, em última análise, em perda de dados, processamento atrasado, ou travamento de aplicativos. É possível gerenciar permissões para chaves do KMS usando políticas do IAM. Para obter mais informações, consulte Como [usar políticas do IAM com o AWS KMS.](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html)

## Contexto de criptografia do Kinesis Data Streams
<a name="sse-kms-encryption-context"></a>

Quando o Amazon Kinesis Data AWS KMS Streams liga em seu nome, ele passa um AWS KMS contexto de criptografia que pode ser usado como condição para autorização nas principais políticas e concessões. O Kinesis Data Streams usa o ARN do stream como contexto de criptografia em todas as chamadas. AWS KMS 

```
"encryptionContext": {
    "aws:kinesis:arn": "arn:aws:kinesis:region:account-id:stream/stream-name"
}
```

Você pode usar o contexto de criptografia para identificar o uso da sua chave KMS nos registros e registros de auditoria. Ele também aparece em texto simples em registros, como. AWS CloudTrail

Para limitar o uso da sua chave KMS às solicitações do Kinesis Data Streams para um stream específico, use a chave de condição na política de chaves `kms:EncryptionContext:aws:kinesis:arn` do KMS ou na política do IAM.

## Exemplo de permissões de produtor
<a name="example-producer-permissions"></a>

Seus produtores de fluxos do Kinesis devem ter a permissão `kms:GenerateDataKey`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:GenerateDataKey"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesis:PutRecord",
            "kinesis:PutRecords"
        ],
        "Resource": "arn:aws:kinesis:*:123456789012:MyStream"
    }
  ]
}
```

------

## Exemplo de permissões de consumidor
<a name="example-consumer-permissions"></a>

Seus consumidores de fluxos do Kinesis devem ter a permissão `kms:Decrypt`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesis:GetRecords",
            "kinesis:DescribeStream"
        ],
        "Resource": "arn:aws:kinesis:*:123456789012:MyStream"
    }
  ]
}
```

------

Amazon Managed Service para Apache Flink e AWS Lambda use funções para consumir streams do Kinesis. Adicione a permissão `kms:Decrypt` às funções que esses consumidores usam.

## Permissões de administrador de fluxo
<a name="stream-administrator-permissions"></a>

Os administradores de fluxos do Kinesis precisam ter autorização para chamar `kms:List*` e ```kms:DescribeKey*`.