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 https://aws.amazon.com/compliance/shared-responsibility-model/ s'applique à la protection des données dans Amazon Cognito (Amazon Cognito). Comme décrit dans ce modèle, AWS il 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 utilisateurs 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 des activités 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 des AWS kits de développement logiciel. AWS CLI 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 cryptées au repos conformément aux normes du secteur.

  • Amazon Cognito chiffre les données des clients dans des groupes d'identités à l'aide de clés AWS détenues. Vous ne pouvez pas modifier ce comportement.

  • Par défaut, Amazon Cognito chiffre également les données des clients dans les groupes d'utilisateurs avec des clés AWS détenues. Vous pouvez également configurer vos groupes d'utilisateurs pour qu'ils chiffrent plutôt les informations de vos clients à l'aide de clés gérées par le client.

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 qui vous appartient. 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 des suppressions planifiées.

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

  2. Amazon Cognito ne prend en charge que les clés KMS symétriques, identiques Région AWS à celles 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 https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html asymétriques. Vous pouvez configurer le chiffrement au repos avec des clés à région unique et à l'aide de clés multirégions situées dans la même région que votre groupe d'utilisateurs.

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

Chiffrement PII

Amazon Cognito garantit la confidentialité, l'intégrité et la disponibilité des informations personnelles identifiables (PII) dans les recherches par attributs utilisateur grâce à un cryptage consultable. Ces fonctions du code d'authentification des Hash-based messages (HMAC), optimisées en termes de performances pour les ensembles de données des groupes d'utilisateurs, établissent un mappage 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 permettent de configurer le chiffrement au repos dans votre groupe d'utilisateurs. Pour plus d'informations sur les politiques clés KMS qui délèguent l'accès à Amazon Services AWS Cognito, par exemple, voir Autorisations pour Amazon Cognito dans les 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 les 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 écrit 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 groupe de CloudWatch journaux Logs. Configurez la politique de clé de votre clé KMS comme indiqué dans l'exemple suivant. Le principal IAM qui écrit 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é AWS une clé détenue, 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 l'ARN de la 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 la configuration de votre clé dans une demande d'UpdateUserPoolAPI CreateUserPool ou. L'exemple partiel de corps de requête suivant définit un groupe d'utilisateurs pour qu'il utilise la clé gérée par le client fournie. Pour un exemple complet de demande, 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 requête suivant définit un groupe d'utilisateurs pour qu'il utilise une clé AWS détenue.

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

Si votre DescribeUserPool réponse n'inclut aucun KeyConfiguration paramètre, votre groupe d'utilisateurs est configuré pour chiffrer les données au repos à l'aide d'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 la manière de AWS protéger l'infrastructure, consultez AWS Cloud Security. 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 Security Pillar AWS Well‐Architected Framework.

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.

  • Suites de chiffrement avec une confidentialité directe parfaite (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 ont des opérations IAM-authenticated d'API 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 classes d'opérations d'API Amazon Cognito partagent un espace de noms (pour les groupes d'utilisateurs, cognito-idp cognito-identity pour les groupes d'identités) et les points de terminaison des services. AWS les terminaux de service nécessitent un chiffrement en transit avec une version TLS minimale de 1.2.

Les groupes d'utilisateurs Amazon Cognito hébergent la connexion gérée et l'interface utilisateur hébergée classique sur les domaines Web qui sont servis par des distributions Amazon appartenant à des services. 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 section Version TLS dans le chapitre sur la connexion gérée.