

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

# Proteção de dados no Amazon Kinesis Data Streams
<a name="server-side-encryption"></a>

A criptografia do lado do servidor usando chaves AWS Key Management Service (AWS KMS) facilita o cumprimento de requisitos rígidos de gerenciamento de dados, criptografando seus dados em repouso no Amazon Kinesis Data Streams.

**nota**  
Se você precisar de módulos criptográficos validados pelo FIPS 140-2 ao acessar AWS por meio de uma interface de linha de comando ou de uma API, use um endpoint FIPS. Para ter mais informações sobre endpoints do FIPS disponíveis, consulte [Federal Information Processing Standard (FIPS) 140-2](https://aws.amazon.com/compliance/fips/).

**Topics**
+ [O que é criptografia no lado do servidor para o Kinesis Data Streams?](what-is-sse.md)
+ [Custos, regiões e considerações sobre desempenho](costs-performance.md)
+ [Como começo a usar a criptografia no lado do servidor?](getting-started-with-sse.md)
+ [Criar e usar chaves do KMS geradas pelo usuário](creating-using-sse-master-keys.md)
+ [Permissões para usar as chaves do KMS geradas pelo usuário](permissions-user-key-KMS.md)
+ [Verificar e solucionar problemas de permissões de chaves do KMS](sse-troubleshooting.md)
+ [Usar o Amazon Kinesis Data Streams com endpoints da VPC de interface](vpc.md)

# O que é criptografia no lado do servidor para o Kinesis Data Streams?
<a name="what-is-sse"></a>

A criptografia do lado do servidor é um recurso do Amazon Kinesis Data Streams que criptografa automaticamente os dados antes que estejam em repouso AWS KMS usando uma chave mestra de cliente (CMK) especificada por você. Os dados são criptografados antes de serem gravados na camada de armazenamento do fluxo do Kinesis e descriptografados depois de recuperados do armazenamento. Como resultado, os dados são criptografados em repouso no serviço Kinesis Data Streams. Isso permite atender a requisitos normativos rígidos e aprimorar a segurança dos dados.

Com a criptografia no lado do servidor, seus produtores e consumidores de fluxos do Kinesis não precisam gerenciar chaves mestras ou operações de criptografia. Seus dados são criptografados automaticamente quando entram e saem do serviço Kinesis Data Streams, então seus dados em repouso são criptografados. AWS KMS fornece todas as chaves mestras usadas pelo recurso de criptografia do lado do servidor. AWS KMS facilita o uso de uma CMK for Kinesis gerenciada AWS por, uma CMK AWS KMS especificada pelo usuário ou uma chave mestra importada para o serviço. AWS KMS 

**nota**  
Criptografia no lado do servidor criptografa os dados de entrada somente após a criptografia ser ativada. Os dados preexistentes em um fluxo não criptografado não são criptografados após a ativação da criptografia no lado do servidor. 

Ao criptografar seus fluxos de dados e compartilhar o acesso a outros diretores, você deve conceder permissão na política de chaves da AWS KMS chave e nas políticas do IAM na conta externa. Para ter mais informações, consulte o tópico sobre como [Permitir que usuários de outras contas utilizem uma chave do KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html). 

Se você tiver habilitado a criptografia do lado do servidor para um fluxo de dados com chave KMS AWS gerenciada e quiser compartilhar o acesso por meio de uma política de recursos, deverá passar a usar a chave gerenciada pelo cliente (CMK), conforme mostrado a seguir: 

![\[Encryption settings interface with options for server-side encryption and customer-managed CMK.\]](http://docs.aws.amazon.com/pt_br/streams/latest/dev/images/cmk2.png)


Além disso, deve-se permitir que as entidades principais de compartilhamento tenham acesso à sua CMK, usando os recursos de compartilhamento entre contas do KMS. Certifique-se também de fazer a alteração nas políticas do IAM para as entidades principais de compartilhamento. Para ter mais informações, consulte o tópico sobre como [Permitir que usuários de outras contas utilizem uma chave do KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html).

# Custos, regiões e considerações sobre desempenho
<a name="costs-performance"></a>

Ao aplicar a criptografia do lado do servidor, você está sujeito ao uso AWS KMS da API e aos custos principais. Ao contrário das chaves mestras do KMS personalizadas, a chave mestra do cliente (CMK) do `(Default) aws/kinesis` é oferecida gratuitamente. No entanto, os custos de uso de API que o Amazon Kinesis Data Streams gera em seu nome ainda devem ser pagos.

Os custos de uso da API aplicam-se a cada CMK, incluindo as personalizadas. O Kinesis Data Streams chama o AWS KMS aproximadamente a cada cinco minutos quando está mudando a chave de dados. Em um mês de 30 dias, o custo total das chamadas de AWS KMS API iniciadas por um stream do Kinesis deve ser inferior a alguns dólares. Esse custo aumenta com o número de credenciais de usuário que você usa em seus produtores e consumidores de dados, pois cada credencial de usuário exige uma chamada de API exclusiva para. AWS KMS Ao usar um perfil do IAM para autenticação, cada chamada para assumir um perfil resulta em credenciais exclusivas ao usuário. Para economizar gastos com o KMS, armazene em cache as credenciais de usuário que são retornadas pela chamada de função assumida. 

Veja a seguir a descrição dos custos por recurso:

**Chaves**
+ A CMK para Kinesis gerenciada AWS por (alias `aws/kinesis` =) é gratuita.
+ As chaves do KMS geradas pelo usuário estão sujeitas aos custos de chave do KMS. Para obter mais informações, consulte [AWS Key Management Service Pricing](https://aws.amazon.com/kms/pricing/#Keys).

Os custos de uso da API aplicam-se a cada CMK, incluindo as personalizadas. O Kinesis Data Streams chama o KMS aproximadamente a cada cinco minutos quando está mudando a chave de dados. Em um mês de 30 dias, o custo total das chamadas à API do KMS que são iniciadas por um fluxo de dados do Kinesis deve ser apenas alguns dólares. Observe que esse custo aumenta de acordo com o número de credenciais de usuário que você usa em seus produtores e consumidores de dados, pois cada credencial de usuário exige uma chamada de API exclusiva para AWS o KMS. Quando você usa a função do IAM para autenticação, cada uma assume-role-call resultará em credenciais de usuário exclusivas e talvez você queira armazenar em cache as credenciais do usuário retornadas pela assume-role-call para economizar custos de KMS.

## Uso da API do KMS
<a name="api-usage"></a>

Para cada stream criptografado, ao ler o TIP e usar uma única chave de account/user acesso IAM entre leitores e gravadores, o serviço Kinesis liga para o AWS KMS serviço aproximadamente 12 vezes a cada 5 minutos. Não ler o TIP pode levar a um aumento no número de chamadas para o AWS KMS serviço. As solicitações de API para gerar novas chaves de criptografia de dados estão sujeitas aos custos AWS KMS de uso. Para obter mais informações, consulte [AWS Key Management Service Pricing: Usage](https://aws.amazon.com/kms/pricing/#Usage).

## Disponibilidade da criptografia no lado do servidor por região
<a name="sse-regions"></a>

Atualmente, a criptografia do lado do servidor dos Kinesis Streams está disponível em todas as regiões compatíveis com o Kinesis Data Streams, incluindo (Oeste dos EUA) e as regiões da China. AWS GovCloud Para obter mais informações sobre regiões compatíveis com o Kinesis Data [https://docs.aws.amazon.com/general/latest/gr/akStreams](https://docs.aws.amazon.com/general/latest/gr/ak.html), consulte .html.

## Considerações sobre desempenho
<a name="performance-considerations"></a>

Devido à sobrecarga de serviço da aplicação de criptografia, a aplicação de criptografia do lado do servidor aumenta a latência típica de `PutRecord`, `PutRecords` e `GetRecords` em menos de 100 μs.

# Como começo a usar a criptografia no lado do servidor?
<a name="getting-started-with-sse"></a>

A maneira mais fácil de começar a usar a criptografia do lado do servidor é usar a Console de gerenciamento da AWS e a chave de serviço do Amazon Kinesis KMS,. `aws/kinesis`

O procedimento a seguir demonstra como habilitar a criptografia no lado do servidor para um fluxo do Kinesis.

**Habilitar a criptografia no lado do servidor para um fluxo do Kinesis**

1. Faça login Console de gerenciamento da AWS e abra o console do [Amazon Kinesis Data Streams](https://console.aws.amazon.com/kinesis/home?region=us-east-1#/streams/list).

1. Crie ou selecione um fluxo do Kinesis no Console de gerenciamento da AWS.

1. Selecione a guia **Detalhes**.

1. Em **Criptografia no lado do servidor**, selecione **Editar**.

1. A não ser que seja preferível usar uma chave mestra do KMS gerada pelo usuário, selecione a chave mestra do KMS **(Padrão) aws/kinesis**. Essa é a chave mestra do KMS gerada pelo serviço Kinesis. Selecione **Habilitado** e, em seguida, selecione **Salvar**. 
**nota**  
A chave mestra padrão do serviço Kinesis é gratuita, no entanto, as chamadas de API feitas pelo Kinesis para o AWS KMS serviço estão sujeitas aos custos de uso do KMS. 

1. O fluxo passa por um estado **pendente**. Assim que o fluxo voltar a um estado **ativo** com a criptografia habilitada, todos os dados recebidos gravados no fluxo serão criptografados usando a chave mestra selecionada do KMS.

1. **Para desativar a criptografia do lado do servidor, escolha **Desativado** na criptografia do lado do **servidor no e, em seguida**, escolha Salvar Console de gerenciamento da AWS.**

# Criar e usar chaves do KMS geradas pelo usuário
<a name="creating-using-sse-master-keys"></a>

Esta seção descreve como criar e usar as próprias chaves do KMS em vez de usar a chave mestra administrada pelo Amazon Kinesis.

## Criar chaves do KMS geradas pelo usuário
<a name="creating-sse-master-keys"></a>

Para obter instruções sobre como criar as próprias chaves, consulte [Criar chaves](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) no *Guia do desenvolvedor do AWS Key Management Service *. Depois de criar chaves para sua conta, o serviço Kinesis Data Streams as retorna na lista de **chaves mestras do KMS**.

## Usar chaves do KMS geradas pelo usuário
<a name="using-sse-master-keys"></a>

Depois que as permissões corretas forem aplicadas aos seus consumidores, produtores e administradores, você poderá usar chaves KMS personalizadas em sua própria AWS conta ou em outra AWS conta. Todas as chaves mestras do KMS em sua conta aparecem na lista **Chave mestra do KMS** no Console de gerenciamento da AWS.

Para usar chaves mestras do KMS personalizadas localizadas em outra conta, são necessárias permissões para usar essas chaves. Também deve-se especificar o ARN da chave mestra do KMS na caixa de entrada ARN no Console de gerenciamento da AWS.

# 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*`.

# Verificar e solucionar problemas de permissões de chaves do KMS
<a name="sse-troubleshooting"></a>

Depois de ativar a criptografia em um stream do Kinesis, recomendamos que você monitore o sucesso de suas `getRecords` chamadas`putRecord`,`putRecords`, e usando as seguintes métricas da Amazon CloudWatch :
+  `PutRecord.Success` 
+  `PutRecords.Success` 
+  `GetRecords.Success` 

Para obter mais informações, consulte [Monitorar o Kinesis Data Streams](monitoring.md).

# Usar o Amazon Kinesis Data Streams com endpoints da VPC de interface
<a name="vpc"></a>

É possível usar um endpoint da VPC de interface para impedir que o tráfego entre sua Amazon VPC e o Kinesis Data Streams saia da rede da Amazon. Os endpoints VPC de interface não exigem um gateway de internet, dispositivo NAT, conexão VPN ou conexão. Direct Connect Os endpoints de VPC de interface são alimentados por AWS PrivateLink uma AWS tecnologia que permite a comunicação privada entre AWS serviços usando uma interface de rede elástica com privacidade em IPs sua Amazon VPC. Para obter mais informações, consulte [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html) e [Interface VPC Endpoints](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint) ().AWS PrivateLink 

**Topics**
+ [Usar os endpoints da VPC de interface para o Kinesis Data Streams](#using-interface-vpc-endpoints)
+ [Controlar o acesso a endpoints da VPC para o Kinesis Data Streams](#interface-vpc-endpoints-policies)
+ [Disponibilidade de políticas de endpoints da VPC para o Kinesis Data Streams](#availability)

## Usar os endpoints da VPC de interface para o Kinesis Data Streams
<a name="using-interface-vpc-endpoints"></a>

Para começar, você não precisa alterar as configurações para os fluxos, produtores ou consumidores. Crie um endpoint da VPC de interface para que o Kinesis Data Streams comece o fluxo de tráfego de e para os recursos da Amazon VPC pelo endpoint da VPC de interface. Os endpoints da VPC de interface habilitada para FIPS estão disponíveis para as regiões dos EUA. Para obter mais informações, consulte [Criação de um endpoint de interface](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint).

A Amazon Kinesis Producer Library (KPL) e a Kinesis Consumer Library (KCL) chamam serviços como AWS Amazon e Amazon CloudWatch DynamoDB usando endpoints públicos ou endpoints VPC de interface privada, os que estiverem em uso. Por exemplo, se a aplicação da KCL estiver sendo executada em uma VPC com interface do DynamoDB com endpoints da VPC habilitados, as chamadas entre o DynamoDB e a aplicação da KCL passarão pelo endpoint da VPC de interface.

## Controlar o acesso a endpoints da VPC para o Kinesis Data Streams
<a name="interface-vpc-endpoints-policies"></a>

As políticas de endpoint da VPC permitem que você controle o acesso anexando uma política a um endpoint da VPC ou usando campos adicionais em uma política anexada a um usuário, perfil ou grupo do IAM para restringir o acesso somente por meio do endpoint da VPC especificado. Use essas políticas para restringir o acesso a fluxos específicos a um endpoint da VPC especificado quando tais políticas forem usadas em conjunto com as políticas do IAM para conceder acesso somente a ações de fluxo de dados do Kinesis por meio do endpoint da VPC especificado.

Veja a seguir exemplos de políticas de endpoint para acessar fluxos de dados do Kinesis.
+ **Exemplo de política de VPC: acesso somente leitura** — esse exemplo de política pode ser anexado a um VPC endpoint. (Para obter mais informações, consulte [Como controlar o acesso aos recursos da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_IAM.html)). Ele restringe as ações a somente listar e descrever um fluxo de dados do Kinesis por meio do VPC endpoint ao qual está anexado.

  ```
  {
    "Statement": [
      {
        "Sid": "ReadOnly",
        "Principal": "*",
        "Action": [
          "kinesis:List*",
          "kinesis:Describe*"
        ],
        "Effect": "Allow",
        "Resource": "*"
      }
    ]
  }
  ```
+ **Exemplo de política de VPC: restringir o acesso a um fluxo de dados específico do Kinesis** — esse exemplo de política pode ser anexado a um VPC endpoint. Ele restringe o acesso a um fluxo de dados específico por meio do VPC endpoint ao qual está anexado.

  ```
  {
    "Statement": [
      {
        "Sid": "AccessToSpecificDataStream",
        "Principal": "*",
        "Action": "kinesis:*",
        "Effect": "Allow",
        "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/MyStream"
      }
    ]
  }
  ```
+ **Exemplo de política do IAM: restringir o acesso a um fluxo específico apenas de determinado endpoint da VPC**. Esse exemplo de política pode ser anexado a um usuário, um perfil ou um grupo do IAM. Ele restringe o acesso a um fluxo de dados especificado do Kinesis para ocorrer somente em determinado VPC endpoint.

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

****  

  ```
  {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
        {
           "Sid": "AccessFromSpecificEndpoint",
           "Action": "kinesis:*",
           "Effect": "Deny",
           "Resource": "arn:aws:kinesis:us-east-1:123456789012:stream/MyStream",
           "Condition": { "StringNotEquals" : { "aws:sourceVpce": "vpce-11aa22bb" } }
        }
     ]
  }
  ```

------

## Disponibilidade de políticas de endpoints da VPC para o Kinesis Data Streams
<a name="availability"></a>

Endpoints da VPC de interface do Kinesis Data Streams com políticas são compatíveis com as seguintes regiões: 
+ Europa (Paris)
+ Europa (Irlanda)
+ Leste dos EUA (Norte da Virgínia)
+ Europa (Estocolmo)
+ Leste dos EUA (Ohio)
+ Europa (Frankfurt)
+ América do Sul (São Paulo)
+ Europa (Londres)
+ Ásia-Pacífico (Tóquio)
+ Oeste dos EUA (N. da Califórnia)
+ Ásia-Pacífico (Singapura)
+ Ásia-Pacífico (Sydney)
+ China (Pequim)
+ China (Ningxia)
+ Ásia-Pacífico (Hong Kong)
+ Oriente Médio (Bahrein)
+ Oriente Médio (Emirados Árabes Unidos)
+ Europa (Milão)
+ África (Cidade do Cabo)
+ Ásia-Pacífico (Mumbai)
+ Ásia-Pacífico (Seul)
+ Canadá (Central)
+ Oeste dos EUA (Oregon), exceto usw2-az4
+ AWS GovCloud (Leste dos EUA)
+ AWS GovCloud (Oeste dos EUA)
+ Ásia-Pacífico (Osaka)
+ Europa (Zurique)
+ Ásia-Pacífico (Hyderabad)