View a markdown version of this page

Protection des données dans Amazon Cognito - Amazon Cognito

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Protection des données dans Amazon Cognito

Le modèle de responsabilité AWS partagée Le modèle s'applique à la protection des données dans Amazon Cognito (Amazon Cognito). Comme décrit dans ce modèle, AWS est responsable de la protection de l'infrastructure mondiale qui gère l'ensemble du AWS cloud. La gestion du contrôle de votre contenu hébergé sur cette infrastructure relève de votre responsabilité. Ce contenu inclut la configuration de la sécurité et les tâches de gestion pour les AWS services que vous utilisez. Pour plus d’informations sur la confidentialité des données, consultez Questions fréquentes (FAQ) relatives à la confidentialité des données.

Pour des raisons de protection des données, nous vous recommandons de protéger les informations d'identification des AWS comptes et de configurer des comptes utilisateur individuels avec Gestion des identités et des accès AWS (IAM). Ainsi, chaque utilisateur se voit attribuer uniquement les autorisations nécessaires pour exécuter ses tâches. Nous vous recommandons également de sécuriser vos données comme indiqué ci-dessous :

  • Utilisez l’authentification multifactorielle (MFA) avec chaque compte.

  • SSL/TLS À utiliser pour communiquer avec AWS les ressources.

  • Configurez l'API et la journalisation de l'activité des utilisateurs avec AWS CloudTrail.

  • Utilisez des solutions de AWS chiffrement, ainsi que tous les contrôles de sécurité par défaut au sein AWS des services.

  • Utilisez des services de sécurité gérés avancés tels qu’Amazon Macie, qui contribuent à la découverte et à la sécurisation des données personnelles stockées dans Amazon S3.

Nous vous recommandons vivement de ne jamais placer d’informations identifiables sensibles, telles que les numéros de compte de vos clients, dans des champs de formulaire comme Nom. Cela inclut lorsque vous travaillez avec Amazon Cognito ou d'autres AWS services à l'aide de la console, de l'API ou AWS des AWS CLI SDK. Toutes les données que vous saisissez dans Amazon Cognito ou d’autres services peuvent être récupérées, afin d’être insérées dans des journaux de diagnostic. Lorsque vous fournissez une URL à un serveur externe, n’incluez pas les informations d’identification non chiffrées dans l’URL pour valider votre demande adressée au serveur.

Chiffrement des données

Le chiffrement des données se divise généralement en deux catégories : le chiffrement au repos et le chiffrement en transit.

Chiffrement au repos

Les données des groupes d'utilisateurs et des groupes d'identités Amazon Cognito sont chiffrées au repos conformément aux normes du secteur.

AWS clé possédée

Amazon Cognito chiffre les données de votre groupe d'utilisateurs ou de votre groupe d'identités à l'aide d'une clé KMS AWS détenue. Les clés de ce type ne sont pas visibles dans AWS KMS.

Clé gérée par le client

Amazon Cognito chiffre les données de votre groupe d'utilisateurs à l'aide d'une clé gérée par le client. Vous êtes responsable de l'administration des politiques clés gérées par le client, de la rotation et de la suppression planifiée.

Note

Le chiffrement à l'aide de clés gérées par le client peut ne pas être disponible dans certains groupes d'utilisateurs. Newly-created les groupes d'utilisateurs disposent toujours de cette forme de cryptage.

Ce qu'il faut savoir sur le chiffrement des groupes d'utilisateurs à l'aide de clés gérées par le client
  1. Toutes les données clients des groupes d'utilisateurs sont cryptées au repos, même si vous ne prenez aucune mesure pour configurer les paramètres de chiffrement.

  2. Amazon Cognito prend uniquement en charge les clés KMS symétriques identiques à celles Région AWS de votre groupe d'utilisateurs pour le chiffrement du groupe d'utilisateurs au repos. Vous ne pouvez pas configurer le chiffrement du groupe d'utilisateurs au repos avec des clés asymétriques. Vous pouvez configurer le chiffrement au repos à l'aide de clés à région unique et de clés multirégionales situées dans la même région que votre groupe d'utilisateurs.

  3. Vous pouvez configurer le chiffrement du groupe d'utilisateurs uniquement à l'aide d'un ARN de clé KMS, et non d'un alias.

Chiffrement des informations personnelles

Amazon Cognito garantit la confidentialité, l'intégrité et la disponibilité des informations personnelles identifiables (PII) dans les recherches d'attributs utilisateur grâce à un chiffrement consultable. Ces fonctions de code d'authentification des Hash-based messages (HMAC), optimisées pour les performances des ensembles de données du pool d'utilisateurs, font la correspondance entre le texte en clair et les valeurs cryptées des attributs utilisateur. Amazon Cognito calcule les valeurs HMAC à l'aide de la clé KMS qui chiffre votre groupe d'utilisateurs. Cette protection s'applique aux attributs suivants :

  • sub

  • email

  • phone_number

  • given_name

  • family_name

  • name

  • username

  • preferred_username

  • cognito:user_status

Les procédures suivantes configurent le chiffrement au repos dans votre groupe d'utilisateurs. Pour plus d'informations sur les politiques clés de KMS qui délèguent l'accès à Services AWS Amazon Cognito, voir Autorisations pour Amazon Cognito dans la section Politiques clés.

Set customer managed key policy

Pour utiliser une clé gérée par le client, votre clé doit faire confiance à un responsable du service Amazon Cognito pour effectuer des opérations de chiffrement et de déchiffrement sur la clé. Configurez la politique de clé de votre clé KMS comme indiqué dans l'exemple suivant. Le principal IAM qui rédige cette politique doit avoir un accès en écriture à votre clé KMS, avec kms:PutKeyPolicy autorisation.

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

Appliquez cette politique à votre clé KMS lorsque l'exportation des journaux est configurée. Cette politique permet à Amazon Cognito de chiffrer les journaux lorsqu'il les exporte, et au service intermédiaire de les déchiffrer avant de les écrire dans votre CloudWatch groupe de journaux de journaux. Configurez la politique de clé de votre clé KMS comme indiqué dans l'exemple suivant. Le principal IAM qui rédige cette politique doit avoir un accès en écriture à votre clé KMS, avec kms:PutKeyPolicy autorisation.

{ "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
Pour configurer le chiffrement au repos dans un groupe d'utilisateurs
  1. Accédez à la console Amazon Cognito. Il se peut que vous soyez invité à saisir vos informations d'identification AWS .

  2. Choisissez Groupes d'utilisateurs.

  3. Choisissez un groupe d’utilisateurs existant dans la liste ou créez-en un.

  4. Choisissez le menu Paramètres et accédez à l'onglet Sécurité du groupe d'utilisateurs. Localisez le chiffrement au repos et sélectionnez Modifier.

  5. Sous Type de clé, sélectionnez la cléAWS détenue ou la clé gérée par le client.

    1. Si vous avez sélectionné la cléAWS possédée, aucune configuration supplémentaire n'est requise.

    2. Si vous avez sélectionné Clé gérée par le client, entrez l'ARN d'une clé KMS dans ARN de clé gérée par le client. Vous pouvez également choisir Créer une AWS KMS clé et ouvrir une nouvelle fenêtre dans la AWS KMS console pour créer une nouvelle clé KMS.

  6. Sélectionnez Enregistrer les modifications.

Configure encryption at rest with the API

Définissez votre configuration clé dans une demande d'UpdateUserPoolAPI CreateUserPoolou d'API. L'exemple de corps de demande partiel suivant définit un groupe d'utilisateurs pour utiliser la clé gérée par le client fournie. Pour un exemple de demande complet, voir Exemples.

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

L'exemple partiel de corps de demande suivant définit un groupe d'utilisateurs pour qu'il utilise une clé AWS détenue.

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

Si votre DescribeUserPoolréponse n'inclut aucun KeyConfiguration paramètre, votre groupe d'utilisateurs est configuré pour chiffrer les données au repos avec une clé AWS détenue.

Chiffrement en transit

En tant que service géré, Amazon Cognito est protégé par la sécurité du réseau AWS mondial. Pour plus d'informations sur les services AWS de sécurité et sur la manière dont AWS l'infrastructure est protégée, consultez la section Sécurité du AWS cloud. Pour concevoir votre AWS environnement en utilisant les meilleures pratiques en matière de sécurité de l'infrastructure, consultez la section Protection de l'infrastructure dans le cadre AWS bien architecturé du pilier de sécurité.

Vous utilisez des appels d'API AWS publiés pour accéder à Amazon Cognito via le réseau. Les clients doivent prendre en charge les éléments suivants :

  • Protocole TLS (Transport Layer Security). Nous exigeons TLS 1.2 et recommandons TLS 1.3.

  • Des suites de chiffrement dotées d'un secret de transmission parfait (PFS), telles que DHE (Ephemeral) ou ECDHE (Elliptic Curve Ephemeral Diffie-Hellman). Diffie-Hellman La plupart des systèmes modernes tels que Java 7 et les versions ultérieures prennent en charge ces modes.

Les groupes d'utilisateurs et les groupes d'identités Amazon Cognito utilisent des opérations d' IAM-authenticatedAPI non authentifiées et autorisées par des jetons. Certaines sont des opérations de type plan de contrôle pour des opérations administratives telles que la configuration d'un domaine de groupe d'utilisateurs, tandis que d'autres sont des opérations de type plan de données pour l'authentification. Pour de plus amples informations, veuillez consulter Liste des opérations d'API regroupées par modèle d'autorisation. Toutes les catégories d'opérations d'API Amazon Cognito partagent un espace de noms (cognito-idppour les groupes d'utilisateurs, pour les groupes d'identités) et cognito-identity les points de terminaison de service.AWS les points de terminaison de service nécessitent un chiffrement en transit avec une version TLS minimale de 1.2.

Les groupes d'utilisateurs Amazon Cognito proposent une connexion gérée par l'hôte et l'interface utilisateur hébergée classique sur les domaines Web fournis par des distributions Amazon appartenant au service. CloudFront Amazon Cognito gère les paramètres de chiffrement en transit sur ces distributions. Pour plus d'informations sur les paramètres de chiffrement pour la connexion gérée, consultez la version TLS dans le chapitre sur la connexion gérée.