Gerenciamento de chaves para acesso aos dados do Amazon S3 - AWS Data Exchange Guia do usuário

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

Gerenciamento de chaves para acesso aos dados do Amazon S3

Esta página é específica para o tipo de acesso a dados do Amazon S3 em que o provedor compartilha objetos criptografados usando SSE-KMS. O assinante deve ter uma concessão nas chaves utilizadas para acesso.

Se seu bucket do Amazon S3 contiver dados criptografados usando chaves gerenciadas pelo AWS KMS cliente, você deverá compartilhá-los AWS Data Exchange para configurar seu AWS KMS keys conjunto de dados de acesso a dados do Amazon S3. Para ter mais informações, consulte Etapa 2: configurar o acesso aos dados do Amazon S3.

Criação de AWS KMS subsídios

Quando você fornece AWS KMS keys como parte do seu conjunto de dados de acesso a dados do Amazon S3, AWS Data Exchange cria uma AWS KMS concessão em cada AWS KMS key compartilhamento. Esse subsídio, conhecido como subsídio principal, é usado para dar AWS Data Exchange permissão para criar AWS KMS subsídios adicionais para assinantes. Esses subsídios adicionais são conhecidos como subsídios secundários. Cada assinante tem direito a uma AWS KMS concessão. Os assinantes têm permissão para decifrar o. AWS KMS key Em seguida, eles poderão descriptografar e usar os objetos criptografados do Amazon S3 compartilhados com eles. Para obter mais informações, consulte Concessões no AWS KMS no Guia do desenvolvedor AWS Key Management Service .

AWS Data Exchange também usa a concessão AWS KMS principal para gerenciar o ciclo de vida da AWS KMS concessão que ela cria. Quando uma assinatura termina, o subsídio AWS Data Exchange para AWS KMS crianças criado para o assinante correspondente é cancelado. Se a revisão for revogada ou o conjunto de dados for excluído, a concessão AWS KMS principal será AWS Data Exchange cancelada. Para obter mais informações sobre AWS KMS ações, consulte a referência AWS KMS da API.

Contexto de criptografia e restrições de concessão

AWS Data Exchange usa restrições de concessão para permitir a operação de descriptografia somente quando a solicitação inclui o contexto de criptografia especificado. Você pode usar o recurso Amazon S3 Bucket Key para criptografar seus objetos do Amazon S3 e compartilhá-los com. AWS Data Exchange O nome de recurso da Amazon (ARN) do bucket é usado implicitamente pelo Amazon S3 como contexto de criptografia. O exemplo a seguir mostra que AWS Data Exchange usa o ARN do bucket como a restrição de concessão para todas as AWS KMS concessões que ele cria.

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

Monitorando sua AWS KMS keys entrada AWS Data Exchange

Ao compartilhar chaves gerenciadas pelo AWS KMS cliente AWS Data Exchange, você pode usá-las AWS CloudTrailpara rastrear solicitações AWS Data Exchange ou dados para os quais os assinantes enviam AWS KMS. Veja a seguir exemplos de como serão seus CloudTrail registros para o CreateGrant e as Decrypt chamadas para AWS KMS.

CreateGrant for parent

CreateGranté para subsídios para pais criados AWS Data Exchange por ele mesmo.

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

CreateGranté para bolsas infantis criadas por AWS Data Exchange para assinantes.

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

Decrypt é chamado pelos assinantes quando tentam ler os dados criptografados nos quais estão inscritos.

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