

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 Cognito
<a name="data-protection"></a>

O modelo de [responsabilidade AWS compartilhada O modelo](https://aws.amazon.com/compliance/shared-responsibility-model/) se aplica à proteção de dados no Amazon Cognito (Amazon Cognito). Conforme descrito neste modelo, AWS é responsável por proteger a infraestrutura global que executa toda a AWS nuvem. Você é responsável por manter o controle sobre o conteúdo hospedado nessa infraestrutura. Esse conteúdo inclui as tarefas de configuração e gerenciamento de segurança dos AWS serviços que você usa. Para obter mais informações sobre a privacidade de dados, consulte as [Perguntas frequentes sobre privacidade de dados](https://aws.amazon.com/compliance/data-privacy-faq).

Para fins de proteção de dados, recomendamos que você proteja as credenciais da AWS conta e configure contas de usuário individuais com AWS Identity and Access Management (IAM). Dessa maneira, cada usuário receberá apenas as permissões necessárias para cumprir suas obrigações de trabalho. Recomendamos também que você proteja seus dados das seguintes formas:
+ Use uma autenticação multifator (MFA) com cada conta.
+ Use SSL/TLS para se comunicar com AWS os recursos.
+ Configure a API e o registro de atividades do usuário com AWS CloudTrail.
+ Use soluções AWS de criptografia, juntamente com todos os controles de segurança padrão nos AWS serviços.
+ Use serviços gerenciados de segurança avançada, como o Amazon Macie, que ajuda a localizar e proteger dados pessoais armazenados no Amazon S3.

É altamente recomendável que você nunca coloque informações de identificação confidenciais, como números de conta dos seus clientes, em campos de formato livre, como um campo **Nome**. Isso inclui quando você trabalha com o Amazon Cognito ou outros AWS serviços usando o console, a API ou AWS os AWS CLI SDKs. Todos os dados inseridos no Amazon Cognito ou em outros serviços poderão ser selecionados para inclusão em logs de diagnóstico. Ao fornecer um URL para um servidor externo, não inclua informações de credenciais no URL para validar a solicitação a esse servidor.

## Criptografia de dados
<a name="data-encryption"></a>

A criptografia de dados geralmente se encaixa em duas categorias: criptografia em repouso e criptografia em trânsito.

### Criptografia em repouso
<a name="data-encryption-at-rest"></a>

Os dados nos grupos de usuários e grupos de identidade do Amazon Cognito são criptografados em repouso de acordo com os padrões do setor. 
+ [O Amazon Cognito criptografa os dados do cliente em grupos de identidade com AWS chaves próprias.](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) Você não pode mudar esse comportamento.
+ *Por padrão*, o Amazon Cognito também criptografa os dados do cliente em grupos de usuários com AWS chaves próprias. Você também pode configurar seus grupos de usuários para, em vez disso, criptografar as informações de seus clientes com chaves [gerenciadas pelo cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

**AWS chave de propriedade**  
O Amazon Cognito criptografa os dados em seu grupo de usuários ou grupo de identidades com uma chave KMS AWS própria. Chaves desse tipo não estão visíveis em AWS KMS.

**Chave gerenciada pelo cliente**  
O Amazon Cognito criptografa os dados em seu grupo de usuários com uma chave gerenciada pelo cliente. Você é o proprietário da administração das políticas de chaves gerenciadas pelo cliente, da rotação e da exclusão programada.  
A criptografia com chaves gerenciadas pelo cliente pode não estar disponível em alguns grupos de usuários. Newly-created grupos de usuários sempre têm essa forma de criptografia disponível para eles.

**Coisas que você deve saber sobre criptografia de grupos de usuários com chaves gerenciadas pelo cliente**

1. Todos os dados do cliente nos grupos de usuários são criptografados em repouso, mesmo que você não realize nenhuma ação para definir as configurações de criptografia.

1. O Amazon Cognito suporta somente chaves KMS simétricas no mesmo grupo de usuários para Região da AWS criptografia de grupos de usuários em repouso. Você não pode configurar a criptografia do grupo de usuários em repouso com chaves [assimétricas](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html). Você pode configurar a criptografia em repouso com chaves de região única e com [chaves de várias regiões](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html) que estão na mesma região do seu grupo de usuários.

1. Você pode configurar a criptografia do grupo de usuários somente com um ARN de chave KMS, não com um alias.

**Criptografia de PII**  
[O Amazon Cognito oferece suporte à confidencialidade, integridade e disponibilidade de informações de identificação pessoal (PII) em pesquisas de atributos do usuário com criptografia pesquisável.](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/searchable-encryption.html) Essas funções do Código de Autenticação de Hash-based Mensagens (HMAC), com desempenho otimizado para conjuntos de dados do grupo de usuários, mapeiam entre o texto simples e os valores criptografados dos atributos do usuário. O Amazon Cognito calcula valores de HMAC com a chave KMS que criptografa seu grupo de usuários. Essa proteção se aplica aos seguintes atributos:
+ `sub`
+ `email`
+ `phone_number`
+ `given_name`
+ `family_name`
+ `name`
+ `username`
+ `preferred_username`
+ `cognito:user_status`

Os procedimentos a seguir configuram a criptografia em repouso em seu grupo de usuários. Para obter mais informações sobre as políticas de chaves do KMS que delegam acesso a, Serviços da AWS como o Amazon Cognito, [consulte Permissões para o Amazon Cognito](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-services.html) nas políticas de chaves.

------
#### [ Set customer managed key policy ]

Para usar uma chave gerenciada pelo cliente, sua chave deve confiar em um responsável pelo serviço do Amazon Cognito para realizar operações de criptografia e descriptografia na chave. Configure a [política de chaves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) da sua chave KMS conforme mostrado no exemplo a seguir. O diretor do IAM que escreve essa política deve ter acesso de gravação à sua chave KMS, com `kms:PutKeyPolicy` permissão.

```
{
    "Id": "cognito-cmk-policy",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Allow Amazon Cognito service access",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "cognito-idp.amazonaws.com",
                    "identitystore.amazonaws.com"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKeyWithoutPlainText"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": [
                        "arn:{{aws}}:cognito-idp:{{us-east-1}}:{{111122223333}}:userpool/{{us-east-1_EXAMPLE}}"
                    ]
                },
                "StringEquals": {
                    "aws:SourceAccount": [
                        "{{111122223333}}"
                    ]
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:{{aws}}:cognito-idp:{{us-east-1}}:{{111122223333}}:userpool/{{us-east-1_EXAMPLE}}"
                }
            }
        },
        {
            "Sid": "Allow Amazon Cognito service DescribeKey access",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "cognito-idp.amazonaws.com",
                    "identitystore.amazonaws.com"
                ]
            },
            "Action": [
                "kms:DescribeKey"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": [
                        "arn:{{aws}}:cognito-idp:{{us-east-1}}:{{111122223333}}:userpool/{{us-east-1_EXAMPLE}}"
                    ]
                },
                "StringEquals": {
                    "aws:SourceAccount": [
                        "{{111122223333}}"
                    ]
                }
            }
        },
        {
            "Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "kms:DescribeKey"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": [
                        "cognito-idp.{{us-east-1}}.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKeyWithoutPlainText"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": [
                        "cognito-idp.{{us-east-1}}.amazonaws.com"
                    ]
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:{{aws}}:cognito-idp:{{us-east-1}}:{{111122223333}}:userpool/{{us-east-1_EXAMPLE}}"
                }
            }
        },
        {
            "Sid": "Allow administrators to manage the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:{{aws}}:iam::{{111122223333}}:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        }
    ]
}
```

------
#### [ Set customer managed key policy with permissions for encryption of exported logs ]

Aplique essa política à sua chave KMS quando você tiver configurado a [exportação de log](exporting-quotas-and-usage.md). Essa política permite que o Amazon Cognito criptografe os registros à medida que os exporta, e que o serviço intermediário os descriptografe antes de gravá-los no seu grupo de registros de registros. CloudWatch Configure a [política de chaves](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) da sua chave KMS conforme mostrado no exemplo a seguir. O diretor do IAM que escreve essa política deve ter acesso de gravação à sua chave KMS, com `kms:PutKeyPolicy` permissão.

```
{
    "Id": "cognito-cmk-policy",
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Allow Amazon Cognito service access",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "cognito-idp.amazonaws.com",
                    "identitystore.amazonaws.com"
                ]
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKeyWithoutPlainText"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": [
                        "arn:{{aws}}:cognito-idp:{{us-east-1}}:{{111122223333}}:userpool/{{us-east-1_EXAMPLE}}"
                    ]
                },
                "StringEquals": {
                    "aws:SourceAccount": [
                        "{{111122223333}}"
                    ]
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:{{aws}}:cognito-idp:{{us-east-1}}:{{111122223333}}:userpool/{{us-east-1_EXAMPLE}}"
                }
            }
        },
        {
            "Sid": "Allow Amazon Cognito service DescribeKey access",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "cognito-idp.amazonaws.com",
                    "identitystore.amazonaws.com"
                ]
            },
            "Action": [
                "kms:DescribeKey"
            ],
            "Resource": "*",
            "Condition": {
                "ArnEquals": {
                    "aws:SourceArn": [
                        "arn:{{aws}}:cognito-idp:{{us-east-1}}:{{111122223333}}:userpool/{{us-east-1_EXAMPLE}}"
                    ]
                },
                "StringEquals": {
                    "aws:SourceAccount": [
                        "{{111122223333}}"
                    ]
                }
            }
        },
        {
            "Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "kms:DescribeKey"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": [
                        "cognito-idp.{{us-east-1}}.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "Allow access through Amazon Cognito for all principals in account that are authorized to use Amazon Cognito",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKeyWithoutPlainText"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": [
                        "cognito-idp.{{us-east-1}}.amazonaws.com"
                    ]
                },
                "StringLike": {
                    "kms:EncryptionContext:aws:cognito-idp:userpool-arn": "arn:{{aws}}:cognito-idp:{{us-east-1}}:{{111122223333}}:userpool/{{us-east-1_EXAMPLE}}"
                }
            }
        },
        {
            "Sid": "Allow Amazon Cognito service log delivery access",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "cognito-idp.amazonaws.com"
                ]
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Encrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:SourceArn": "arn:{{aws}}:logs:{{us-east-1}}:{{111122223333}}:*"
                }
            }
        },
        {
            "Sid": "Allow IngestionHub service log delivery access",
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "delivery.logs.amazonaws.com"
                ]
            },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:SourceArn": "arn:{{aws}}:logs:{{us-east-1}}:{{111122223333}}:*"
                }
            }
        },
        {
            "Sid": "Allow administrators to manage the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:{{aws}}:iam::{{111122223333}}:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        }
    ]
}
```

------
#### [ Configure encryption at rest in the console ]

**Para configurar a criptografia em repouso em um grupo de usuários**

1. Acesse o [console do Amazon Cognito](https://console.aws.amazon.com/cognito/home). Podem ser solicitadas suas credenciais do AWS .

1. Escolha **User Pools** (Grupos de usuários).

1. Escolha um grupo de usuários existente na lista ou [crie um grupo de usuários](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Escolha o menu **Configurações** e navegue até a guia **Segurança do grupo de usuários**. Localize **Criptografia em repouso** e selecione **Editar**.

1. Em **Tipo de chave**, selecione **Chave AWS própria ou Chave** **gerenciada pelo cliente**.

   1. Se você selecionou **AWS a chave própria**, nenhuma configuração adicional será necessária.

   1. Se você selecionou **Chave gerenciada pelo cliente**, insira o ARN de uma chave KMS em ARN da chave gerenciada **pelo cliente**. Você também pode escolher **Criar uma AWS KMS chave** e abrir uma nova janela no AWS KMS console para criar uma nova chave KMS.

1. Escolha **Salvar alterações**.

------
#### [ Configure encryption at rest with the API ]

Defina sua configuração de chave em uma solicitação de [UpdateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_UpdateUserPool.html#CognitoUserPools-UpdateUserPool-request-KeyConfiguration)API [CreateUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#CognitoUserPools-CreateUserPool-request-KeyConfiguration)ou API. O exemplo parcial de corpo de solicitação a seguir define um grupo de usuários para usar a chave gerenciada pelo cliente fornecida. Para ver um exemplo completo de solicitação, consulte [Exemplos](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateUserPool.html#API_CreateUserPool_Examples).

```
"KeyConfiguration": { 
   "KeyType": "CUSTOMER_MANAGED_KEY",
   "KmsKeyArn": "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{a1b2c3d4-5678-90ab-cdef-EXAMPLE22222}}"
},
```

O exemplo parcial de corpo de solicitação a seguir define um grupo de usuários para usar AWS uma chave própria.

```
"KeyConfiguration": { 
   "KeyType": "AWS_OWNED_KEY"
},
```

Se sua [DescribeUserPool](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_DescribeUserPool.html)resposta não incluir um `KeyConfiguration` parâmetro, seu grupo de usuários será configurado para criptografar dados em repouso com uma chave AWS própria.

------

## Criptografia em trânsito
<a name="data-encryption-in-transit"></a>

Como um serviço gerenciado, o Amazon Cognito é protegido pela segurança de rede AWS global. Para obter informações sobre serviços AWS de segurança e como AWS proteger a infraestrutura, consulte [AWS Cloud Security](https://aws.amazon.com/security/). Para projetar seu AWS ambiente usando as melhores práticas de segurança de infraestrutura, consulte [Proteção](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) de infraestrutura no *Security Pillar AWS Well‐Architected* Framework.

Você usa chamadas de API AWS publicadas para acessar o Amazon Cognito pela rede. Os clientes devem oferecer compatibilidade com:
+ Transport Layer Security (TLS). Exigimos TLS 1.2 e recomendamos TLS 1.3.
+ Suítes de criptografia com sigilo direto perfeito (PFS), como DHE (Ephemeral) ou ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Diffie-Hellman A maioria dos sistemas modernos, como Java 7 e versões posteriores, comporta esses modos.

Os grupos de usuários e grupos de identidades do Amazon Cognito têm operações de IAM-authenticated API não autenticadas e autorizadas por tokens. Algumas são operações do tipo *plano de controle* para operações administrativas, como configurar um domínio de grupo de usuários, e outras são operações do tipo *plano de dados* para autenticação. Para obter mais informações, consulte [Lista de operações de API agrupadas por modelo de autorização](authentication-flows-public-server-side.md#user-pool-apis-auth-unauth). Todas as classes de operações da API do Amazon Cognito compartilham um namespace — `cognito-idp` para grupos de usuários, grupos de identidades — e endpoints de `cognito-identity` serviço. [AWS os endpoints de serviço](https://docs.aws.amazon.com/general/latest/gr/rande.html) exigem criptografia em trânsito com uma [versão TLS mínima de 1.2](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/).

Os grupos de usuários do Amazon Cognito hospedam o [login gerenciado](cognito-user-pools-managed-login.md) e a interface de usuário hospedada clássica em domínios da web que são servidos por distribuições da Amazon de propriedade do serviço. CloudFront O Amazon Cognito gerencia as configurações de criptografia em trânsito nessas distribuições. Para obter mais informações sobre as configurações de criptografia para login gerenciado, consulte a [versão TLS](cognito-user-pools-managed-login.md#managed-login-things-to-know-TLSversion) no capítulo de login gerenciado.