Administración de claves para el acceso a datos de Amazon S3 - AWS Data Exchange Guía del usuario

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Administración de claves para el acceso a datos de Amazon S3

Esta página es específica del tipo de acceso a datos de Amazon S3 en el que el proveedor comparte objetos cifrados con SSE-KMS. El suscriptor debe tener derechos concedidos sobre las claves utilizadas para el acceso.

Si su bucket de Amazon S3 contiene datos cifrados mediante claves administradas por el AWS KMS cliente, debe compartirlos AWS KMS keys con el AWS Data Exchange fin de configurar su conjunto de datos de acceso a los datos de Amazon S3. Para obtener más información, consulte Paso 2: Configuración del acceso a los datos de Amazon S3.

Crear AWS KMS subvenciones

Cuando los proporciona AWS KMS keys como parte de su conjunto de datos de acceso a los datos de Amazon S3, AWS Data Exchange crea una AWS KMS concesión por cada uno de los datos AWS KMS key compartidos. Esta subvención, conocida como subvención principal, se utiliza para permitir la AWS Data Exchange creación de AWS KMS subvenciones adicionales para los suscriptores. Estas concesiones adicionales se conocen como concesiones secundarias. A cada suscriptor se le permite una AWS KMS subvención. Los suscriptores obtienen permiso para descifrar el AWS KMS key. A continuación, pueden descifrar y utilizar los objetos cifrados de Amazon S3 compartidos con ellos. Para obtener más información, consulte Concesiones de AWS KMS en la Guía para desarrolladores de AWS Key Management Service .

AWS Data Exchange también utiliza la subvención AWS KMS principal para gestionar el ciclo de vida de la AWS KMS subvención que crea. Cuando finaliza una suscripción, AWS Data Exchange se retira la subvención AWS KMS secundaria creada para el suscriptor correspondiente. Si se revoca la revisión o se elimina el conjunto de datos, se AWS Data Exchange retira la AWS KMS subvención principal. Para obtener más información sobre AWS KMS las acciones, consulta la referencia de la AWS KMS API.

Contexto de cifrado y restricciones de concesión

AWS Data Exchange utiliza restricciones de concesión para permitir la operación de descifrado solo cuando la solicitud incluye el contexto de cifrado especificado. Puede utilizar la función Amazon S3 Bucket Key para cifrar sus objetos de Amazon S3 y compartirlos con AWS Data Exchange ellos. Amazon S3 utiliza implícitamente el nombre de recurso de Amazon (ARN) del bucket como contexto de cifrado. El siguiente ejemplo muestra que AWS Data Exchange usa el ARN del bucket como restricción de concesión para todas las AWS KMS concesiones que crea.

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

Supervisar tu entrada AWS KMS keysAWS Data Exchange

Cuando compartes las claves gestionadas por el AWS KMS cliente AWS Data Exchange, puedes utilizarlas AWS CloudTrailpara hacer un seguimiento de las solicitudes AWS Data Exchange o los datos a los que envían los suscriptores AWS KMS. Los siguientes son ejemplos del aspecto que tendrán tus CloudTrail registros para las Decrypt llamadas CreateGrant y a las llamadas AWS KMS.

CreateGrant for parent

CreateGrantes para subvenciones para padres creadas AWS Data Exchange por ella misma.

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

CreateGrantes para becas para hijos creadas AWS Data Exchange por suscriptores.

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

Los suscriptores llaman a Decrypt cuando intentan leer los datos cifrados a los que están suscritos.

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