Gestion des clés pour l'accès aux données Amazon S3 - AWS Data Exchange Guide de l'utilisateur

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.

Gestion des clés pour l'accès aux données Amazon S3

Cette page est spécifique au type d'accès aux données Amazon S3 où le fournisseur partage des objets chiffrés à l'aide de SSE -KMS. L'abonné doit disposer d'une autorisation sur les clés utilisées pour l'accès.

Si votre compartiment Amazon S3 contient des données chiffrées à l'aide de clés gérées par le AWS KMS client, vous devez les AWS KMS keys partager AWS Data Exchange pour configurer votre ensemble de données d'accès aux données Amazon S3. Pour de plus amples informations, veuillez consulter Étape 2 : configurer l'accès aux données Amazon S3.

Création de AWS KMS subventions

Lorsque vous fournissez dans AWS KMS keys le cadre de votre ensemble de données d'accès aux données Amazon S3, vous AWS Data Exchange créez une AWS KMS autorisation pour chaque AWS KMS key partage. Cette subvention, connue sous le nom de subvention parentale, est utilisée pour AWS Data Exchange autoriser la création de AWS KMS subventions supplémentaires pour les abonnés. Ces subventions supplémentaires sont connues sous le nom de subventions pour enfants. Chaque abonné a droit à une AWS KMS subvention. Les abonnés sont autorisés à déchiffrer le AWS KMS key. Ils peuvent ensuite déchiffrer et utiliser les objets Amazon S3 chiffrés partagés avec eux. Pour plus d'informations, consultez la section Subventions AWS KMS dans le guide du AWS Key Management Service développeur.

AWS Data Exchange utilise également la subvention AWS KMS parent pour gérer le cycle de vie de la AWS KMS subvention qu'elle crée. Lorsqu'un abonnement prend fin, la AWS Data Exchange subvention pour AWS KMS enfants créée pour l'abonné correspondant est retirée. Si la révision est révoquée ou si l'ensemble de données est supprimé, la AWS Data Exchange licence AWS KMS parent est retirée. Pour plus d'informations sur AWS KMS les actions, consultez la AWS KMS APIréférence.

Contexte de chiffrement et contraintes liées aux subventions

AWS Data Exchange utilise des contraintes d'autorisation pour autoriser l'opération de déchiffrement uniquement lorsque la demande inclut le contexte de chiffrement spécifié. Vous pouvez utiliser la fonctionnalité Amazon S3 Bucket Key pour chiffrer vos objets Amazon S3 et les partager avec AWS Data Exchange eux. Le bucket Amazon Resource Name (ARN) est implicitement utilisé par Amazon S3 comme contexte de chiffrement. L'exemple suivant montre qu'il AWS Data Exchange utilise le bucket ARN comme contrainte de subvention pour toutes les AWS KMS subventions qu'il crée.

"Constraints": { "EncryptionContextSubset": "aws:s3:arn": “arn:aws:s3:::<Bucket ARN>" } }

Surveiller votre AWS KMS keys entrée AWS Data Exchange

Lorsque vous partagez des clés gérées par le AWS KMS client avec AWS Data Exchange, vous pouvez les utiliser AWS CloudTrailpour suivre les demandes AWS Data Exchange ou les données auxquelles les abonnés envoient des données AWS KMS. Vous trouverez ci-dessous des exemples de ce à quoi ressembleront vos CloudTrail journaux pour les Decrypt appels CreateGrant et vers AWS KMS.

CreateGrant for parent

CreateGrantest destiné aux subventions aux parents créées par AWS Data Exchange elle-même.

{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:Provider01", "arn": "arn:aws:sts::<your-account-id>:assumed-role/Admin/Provider01", "accountId": "<your-account-id>", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::<your-account-id>:role/Admin/Provider01”, "accountId": "<your-account-id>", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-02-16T17:29:23Z", "mfaAuthenticated": "false" } }, "invokedBy": "datax.amazonaws.com" }, "eventTime": "2023-02-16T17:32:47Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-2", "sourceIPAddress": "datax.amazonaws.com", "userAgent": "datax.amazonaws.com", "requestParameters": { "keyId": "<Key ARN of the Key you shared with AWS Data Exchange>", "operations": [ "CreateGrant", "Decrypt", "RetireGrant" ], "granteePrincipal": "dataexchange.us-east-2.amazonaws.com", "retiringPrincipal": "dataexchange.us-east-2.amazonaws.com", "constraints": { "encryptionContextSubset": { AWS:s3:arn": "arn:aws:s3:::<Your Bucket ARN>" } } }, "responseElements": { "grantId": "<KMS Grant ID of the created Grant>", "keyId": "<Key ARN of the Key you shared with AWS Data Exchange>" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "<Your Account Id>", "type": "AWS::KMS::Key", "ARN": "<Key ARN of the Key you shared with AWS Data Exchange>" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "<Your Account Id>", "eventCategory": "Management" }
CreateGrant for child

CreateGrantest destiné aux allocations pour enfants créées par AWS Data Exchange pour les abonnés.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "datax.amazonaws.com" }, "eventTime": "2023-02-15T23:15:49Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-2", "sourceIPAddress": "datax.amazonaws.com", "userAgent": "datax.amazonaws.com", "requestParameters": { "keyId": "<Key ARN of the Key you shared with AWS Data Exchange>", "operations": [ "Decrypt" ], "granteePrincipal": “<Subscriber’s account Id>”, "retiringPrincipal": "dataexchange.us-east-2.amazonaws.com", "constraints": { "encryptionContextSubset": { "aws:s3:arn": "arn:aws:s3:::<Your Bucket ARN>" } } }, "responseElements": { "grantId": "<KMS Grant ID of the created Grant>", "keyId": "<Key ARN of the Key you shared with AWS Data Exchange>" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "<Your Account Id>", "type": "AWS::KMS::Key", "ARN": "<Key ARN of the Key you shared with AWS Data Exchange>" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "<Your Account Id>", "sharedEventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE ", "eventCategory": "Management" }
Decrypt

Decryptest appelé par les abonnés lorsqu'ils tentent de lire les données cryptées auxquelles ils sont abonnés.

{ "eventVersion": "1.08", "userIdentity": { "type": "AWSAccount", "principalId": "AROAIGDTESTANDEXAMPLE:Subscriber01", "accountId": "<subscriber-account-id>", "invokedBy": "<subscriber’s IAM identity>" }, "eventTime": "2023-02-15T23:28:30Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-2", "sourceIPAddress": "<subscriber’s IP address>", "userAgent": "<subscriber’s user agent>", "requestParameters": { "encryptionContext": { "aws:s3:arn": "arn:aws:s3:::<Your Bucket ARN>" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": ""ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": ""ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE”, "readOnly": true, "resources": [ { "accountId": "<Your Account Id>", "type": "AWS::KMS::Key", "ARN": "<Key ARN of the Key you shared with AWS Data Exchange>" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "602466227860", "sharedEventID": "bcf4d02a-31ea-4497-9c98-4c3549f20a7b", "eventCategory": "Management" }