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.
Cifrado en reposo para AWS HealthLake
HealthLake proporciona cifrado de forma predeterminada para proteger los datos confidenciales de los clientes en reposo mediante el uso de una clave de AWS Key Management Service (AWS KMS) propiedad del servicio. Customer-managed Las claves de KMS también son compatibles y son necesarias tanto para importar como para exportar archivos de un almacén de datos. Para obtener más información sobre la clave de Customer-managed KMS, consulte Amazon Key Management Service. Los clientes pueden elegir una clave de KMS de propiedad de AWS o una clave de Customer-managed KMS al crear un almacén de datos. La configuración de cifrado no se puede cambiar una vez creado un almacén de datos. Si un almacén de datos utiliza una clave de KMS propiedad de AWS, se indicará como AWS_OWNED_KMS_KEY y no verá la clave específica utilizada para el cifrado en reposo.
Clave KMS propiedad de AWS
HealthLake utiliza estas claves de forma predeterminada para cifrar automáticamente la información potencialmente confidencial, como los datos de identificación personal o de información médica privada (PHI) guardados. Las claves de KMS que posee AWS no se almacenan en su cuenta. Forman parte de una colección de claves de KMS que AWS posee y administra para su uso en varias cuentas de AWS. Los servicios de AWS pueden usar las claves de KMS de propiedad de AWS para proteger sus datos. No puede ver, administrar ni usar las claves de KMS de propiedad de AWS ni auditar su uso. Sin embargo, no es necesario que realice ninguna acción ni que cambie programas para proteger las claves que cifran sus datos.
No se le cobrará una cuota mensual ni una cuota de uso si utiliza claves de KMS de propiedad de AWS, y estas no se deducen de las cuotas de AWS KMS de su cuenta. Para obtener más información, consulte las claves propiedad de AWS.
Clave de KMS administradas por el cliente
HealthLake admite el uso de una clave KMS simétrica administrada por el cliente que usted cree, posea y administre para agregar una segunda capa de cifrado al cifrado existente que pertenece a AWS. Como usted tiene el control total de dicho cifrado, puede realizar tareas como las siguientes:
-
Establecer y mantener políticas de claves, políticas de IAM y concesiones
-
Rotar el material criptográfico
-
Habilitar y deshabilitar políticas de claves
-
Adición de etiquetas de
-
Crear alias de clave
-
Programar la eliminación de claves
También puede utilizarla CloudTrail para realizar un seguimiento de las solicitudes que se HealthLake envían AWS KMS en su nombre. Se aplican AWS KMS cargos adicionales. Para obtener más información, consulta las claves propiedad del cliente.
Creación de una clave administrada por el cliente
Puede crear una clave simétrica administrada por el cliente mediante la consola de administración de AWS o las API. AWS KMS
Siga los pasos para crear una clave simétrica administrada por el cliente en la guía para desarrolladores del servicio de administración de claves de AWS.
Las políticas de clave controlan el acceso a la clave administrada por el cliente. Cada clave administrada por el cliente debe tener exactamente una política de clave, que contiene instrucciones que determinan quién puede usar la clave y cómo puede utilizarla. Cuando crea la clave administrada por el cliente, puede especificar una política de clave. Para obtener más información, consulte Cómo administrar el acceso a las claves administradas por los clientes en la Guía para desarrolladores del servicio de administración de claves de AWS.
Para utilizar la clave gestionada por el cliente con sus HealthLake recursos, kms: CreateGrant las operaciones deben estar permitidas en la política de claves. Esto añade una concesión a una clave gestionada por el cliente, que controla el acceso a una clave de KMS específica, lo que permite al usuario acceder a las operaciones de kms:grant que requieren las operaciones de kms:grant. HealthLake Consulta Cómo usar las subvenciones para obtener más información.
Para usar tu clave de KMS administrada por el cliente con tus HealthLake recursos, la política de claves debe permitir las siguientes operaciones de API:
-
kms: CreateGrant agrega concesiones a una clave de KMS específica administrada por el cliente, lo que permite el acceso a las operaciones de concesión.
-
kms: DescribeKey proporciona a la clave gestionada por el cliente los detalles necesarios para validar la clave. Esto es necesario para todas las operaciones.
-
kms: GenerateDataKey proporciona acceso para cifrar los recursos en reposo para todas las operaciones de escritura.
-
kms:Decrypt proporciona acceso a las operaciones de lectura o búsqueda de recursos cifrados.
El siguiente es un ejemplo de declaración de política que permite a un usuario crear e interactuar con un almacén de datos cifrado mediante AWS HealthLake esa clave:
"Statement": [ { "Sid": "Allow access to create data stores and do CRUD/search in AWS HealthLake", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:HealthLakeFullAccessRole" }, "Action": [ "kms:DescribeKey", "kms:CreateGrant", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "healthlake.amazonaws.com", "kms:CallerAccount": "111122223333" } } } ]
Permisos de IAM necesarios cuando al utilizar una clave de KMS administrada por el cliente
Al crear un almacén de datos con el AWS KMS cifrado habilitado mediante una clave de KMS administrada por el cliente, el usuario o el rol que crea el almacén de HealthLake datos deben tener permisos tanto para la política de claves como para la política de IAM.
Puedes usar la clave kms: ViaService condition para limitar el uso de la clave de KMS únicamente a las solicitudes HealthLake originarias.
Para obtener más información sobre las políticas clave, consulte Habilitar las políticas de IAM en la Guía para desarrolladores de AWS Key Management Service.
El usuario de IAM, el rol de IAM o la cuenta de AWS que cree sus repositorios debe tener los permisos kms:CreateGrant, kms: GenerateDataKey y kms: más DescribeKey los permisos necesarios. HealthLake
¿Cómo se HealthLake utilizan las subvenciones en AWS KMS
HealthLake requiere una concesión para usar la clave de KMS administrada por el cliente. Al crear un almacén de datos cifrado con una clave de KMS gestionada por el cliente, HealthLake crea una concesión en su nombre enviando una CreateGrant solicitud a AWS KMS. Las subvenciones en AWS KMS se utilizan para dar HealthLake acceso a una clave de KMS en una cuenta de cliente.
Las subvenciones que se HealthLake crean en su nombre no se deben revocar ni retirar. Si revoca o retira la concesión que otorga el HealthLake permiso para usar las claves de AWS KMS de su cuenta, HealthLake no puede acceder a estos datos, cifrar los nuevos recursos del FHIR que se envían al almacén de datos o descifrarlos cuando se retiran. Cuando revoca o retira una concesión HealthLake, el cambio se produce de inmediato. Para revocar los derechos de acceso, debes eliminar el almacén de datos en lugar de revocar la concesión. Cuando se elimina un almacén de datos, HealthLake retira las concesiones en su nombre.
Supervisar sus claves de cifrado para HealthLake
Puedes utilizarlas CloudTrail para hacer un seguimiento de las solicitudes que se HealthLake envían AWS KMS en tu nombre cuando utilizas una clave de KMS gestionada por el cliente. Las entradas del CloudTrail registro muestran healthlake.amazonaws.com en el campo UserAgent para distinguir claramente las solicitudes realizadas por. HealthLake
Los siguientes ejemplos son CloudTrail eventos para CreateGrant descifrar y supervisar las AWS KMS operaciones realizadas para acceder DescribeKey a los datos cifrados por la clave gestionada por HealthLake el cliente. GenerateDataKey
A continuación, se muestra cómo usar CreateGrant para permitir el acceso HealthLake a una clave de KMS proporcionada por un cliente, lo que permite HealthLake usar esa clave de KMS para cifrar todos los datos del cliente en reposo.
Los usuarios no están obligados a crear sus propias concesiones. HealthLake crea una subvención en su nombre enviando una CreateGrant solicitud a AWS KMS. Las subvenciones AWS KMS se utilizan para dar HealthLake acceso a una AWS KMS clave en una cuenta de cliente.
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "EXAMPLEROLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Sampleuser01, "accountId": "111122223333", "accessKeyId": "EXAMPLEKEYID", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "EXAMPLEROLE", "arn": "arn:aws:iam::111122223333:role/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-06-30T19:33:37Z", "mfaAuthenticated": "false" } }, "invokedBy": "healthlake.amazonaws.com" }, "eventTime": "2021-06-30T20:31:15Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "healthlake.amazonaws.com", "userAgent": "healthlake.amazonaws.com", "requestParameters": { "operations": [ "CreateGrant", "Decrypt", "DescribeKey", "Encrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "ReEncryptFrom", "ReEncryptTo", "RetireGrant" ], "granteePrincipal": "healthlake.us-east-1.amazonaws.com", "keyId": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN", "retiringPrincipal": "healthlake.us-east-1.amazonaws.com" }, "responseElements": { "grantId": "EXAMPLE_ID_01" }, "requestID": "EXAMPLE_ID_02", "eventID": "EXAMPLE_ID_03", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
En los siguientes ejemplos se muestra cómo utilizarlos GenerateDataKey para garantizar que el usuario tenga los permisos necesarios para cifrar los datos antes de almacenarlos.
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "EXAMPLEUSER", "arn": "arn:aws:sts::111122223333:assumed-role/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLEKEYID", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "EXAMPLEROLE", "arn": "arn:aws:iam::111122223333:role/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-06-30T21:17:06Z", "mfaAuthenticated": "false" } }, "invokedBy": "healthlake.amazonaws.com" }, "eventTime": "2021-06-30T21:17:37Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "healthlake.amazonaws.com", "userAgent": "healthlake.amazonaws.com", "requestParameters": { "keySpec": "AES_256", "keyId": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" }, "responseElements": null, "requestID": "EXAMPLE_ID_01", "eventID": "EXAMPLE_ID_02", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
En el siguiente ejemplo se muestra cómo se HealthLake invoca la operación de descifrado para utilizar la clave de datos cifrados almacenada para acceder a los datos cifrados.
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "EXAMPLEUSER", "arn": "arn:aws:sts::111122223333:assumed-role/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLEKEYID", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "EXAMPLEROLE", "arn": "arn:aws:iam::111122223333:role/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-06-30T21:17:06Z", "mfaAuthenticated": "false" } }, "invokedBy": "healthlake.amazonaws.com" }, "eventTime": "2021-06-30T21:21:59Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "healthlake.amazonaws.com", "userAgent": "healthlake.amazonaws.com", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "keyId": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" }, "responseElements": null, "requestID": "EXAMPLE_ID_01", "eventID": "EXAMPLE_ID_02", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
En el siguiente ejemplo, se muestra cómo se HealthLake utiliza la DescribeKey operación para verificar si la AWS KMS clave propiedad del AWS KMS cliente se encuentra en estado utilizable y para ayudar al usuario a solucionar problemas si no funciona.
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "EXAMPLEUSER", "arn": "arn:aws:sts::111122223333:assumed-role/Sampleuser01", "accountId": "111122223333", "accessKeyId": "EXAMPLEKEYID", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "EXAMPLEROLE", "arn": "arn:aws:iam::111122223333:role/Sampleuser01", "accountId": "111122223333", "userName": "Sampleuser01" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-07-01T18:36:14Z", "mfaAuthenticated": "false" } }, "invokedBy": "healthlake.amazonaws.com" }, "eventTime": "2021-07-01T18:36:36Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-east-1", "sourceIPAddress": "healthlake.amazonaws.com", "userAgent": "healthlake.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" }, "responseElements": null, "requestID": "EXAMPLE_ID_01", "eventID": "EXAMPLE_ID_02", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE_KEY_ARN" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
Más información
Los siguientes recursos proporcionan más información sobre el cifrado de datos en reposo.
Para obtener más información sobre los conceptos básicos del servicio de administración de claves de AWS, consulte la AWS KMS documentación.
Para obtener más información sobre las prácticas recomendadas de seguridad, AWS KMS consulte la documentación.