View a markdown version of this page

Proteção de dados no Amazon Cognito - Amazon Cognito

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

O modelo de responsabilidade AWS 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.

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 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 os AWS SDKs. AWS CLI 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 criptografia de dados geralmente se encaixa em duas categorias: criptografia em repouso e criptografia em trânsito.

Criptografia em repouso

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 chaves AWS próprias. Você não pode mudar esse comportamento.

  • Por padrão, o Amazon Cognito também criptografa dados de clientes em grupos de usuários com chaves AWS 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.

AWS chave própria

O Amazon Cognito criptografa os dados em seu grupo de usuários ou grupos de identidades com uma chave AWS KMS 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.

nota

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 tome nenhuma ação para definir as configurações de criptografia.

  2. O Amazon Cognito oferece suporte somente a chaves KMS simétricas da Região da AWS mesma forma que seu grupo de usuários para 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. Você pode configurar a criptografia em repouso com chaves de uma única região e com chaves de várias regiões que estão na mesma região do seu grupo de usuários.

  3. Você pode configurar a criptografia do grupo de usuários somente com uma chave KMS ARN, 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) nas 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 de grupos de usuários, mapeiam entre os valores de texto simples e criptografados dos atributos do usuário. O Amazon Cognito calcula os 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 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 em políticas de chaves.

Set customer managed key policy

Para usar uma chave gerenciada pelo cliente, sua chave deve confiar em um diretor de serviço do Amazon Cognito para realizar operações de criptografia e descriptografia na chave. Configure a política de chaves 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 registros. 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. CloudWatch Configure a política de chaves 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. Podem ser solicitadas suas credenciais do AWS .

  2. Escolha User Pools (Grupos de usuários).

  3. Escolha um grupo de usuários existente na lista ou crie um grupo de usuários.

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

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

    2. Se você selecionou Chave gerenciada pelo cliente, insira o ARN de uma chave KMS no 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.

  6. Escolha Salvar alterações.

Configure encryption at rest with the API

Defina sua configuração de chave em uma solicitação de UpdateUserPool API CreateUserPool ou. 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.

"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 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

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 protege a infraestrutura, consulte Segurança AWS na nuvem. Para projetar seu AWS ambiente usando as melhores práticas de segurança de infraestrutura, consulte Proteção de infraestrutura no pilar de segurança 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 IAM-authenticated operações de API não autenticadas e autorizadas por token. 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. Todas as classes de operações da API do Amazon Cognito compartilham um namespace — cognito-idp para grupos de usuários, grupos de identidade — e cognito-identity endpoints de serviço. AWS os endpoints de serviço exigem criptografia em trânsito com uma versão TLS mínima de 1.2.

Os grupos de usuários do Amazon Cognito hospedam o login gerenciado 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 no capítulo de login gerenciado.