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 REST para AWS HealthLake
HealthLake proporciona cifrado de forma predeterminada para proteger los datos confidenciales de los clientes en reposo mediante una clave propiedad del servicio AWS Key Management Service (AWS KMS). También se admiten las claves KMS administradas por el cliente y son necesarias tanto para importar como exportar archivos de un almacén de datos. Para obtener más información sobre la clave KMS gestionada por el cliente, consulte Amazon Key Management Service. Los clientes pueden elegir una clave de KMS propiedad de AWS o una clave de KMS administrada por el cliente 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 KMS propiedad de AWS, se denominará 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 de salud privada (PHI) en reposo. Las claves de KMS propiedad de AWS no se almacenan en su cuenta. Forman parte de un conjunto de claves de KMS que AWS posee y administra para su uso en varias cuentas de AWS. Los servicios de AWS pueden usar claves de KMS propiedad de AWS para proteger sus datos. No puede ver, administrar, usar las claves de KMS 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 propiedad de AWS, y no se tienen en cuenta para las cuotas de AWS KMS de su cuenta. Para obtener más información, consulte 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 crea, posee y administra para agregar una segunda capa de cifrado sobre el cifrado existente propiedad de 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
-
Agregar etiquetas.
-
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 la AWS KMS APIs.
Siga los pasos para crear una clave simétrica gestionada por el cliente de la Guía para desarrolladores de AWS Key Management Service.
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 Administrar el acceso a las claves administradas por el cliente en la Guía para desarrolladores de AWS Key Management Service.
Para utilizar la clave gestionada por el cliente con sus HealthLake recursos, la política de claves debe permitir las CreateGrant operaciones. 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 los kms:grant que requieren las operaciones. HealthLake Consulte Uso de subvenciones para obtener más información.
Para usar la clave de KMS administrada por el cliente con sus HealthLake recursos, la política de claves debe permitir las siguientes operaciones de API:
-
kms: CreateGrant añade concesiones a una clave de KMS específica administrada por el cliente que permite el acceso a las operaciones de concesión.
-
kms: DescribeKey proporciona los detalles de la clave administrada por el cliente necesarios para validar la clave. Esto es necesario para todas las operaciones.
-
kms: GenerateDataKey proporciona acceso a los recursos de cifrado en reposo para todas las operaciones de escritura.
-
KMS:Decrypt proporciona acceso a las operaciones de lectura o búsqueda de recursos cifrados.
A continuación se muestra un ejemplo de declaración de política que permite a un usuario crear un almacén de datos cifrado con esa clave e interactuar con él: AWS HealthLake
"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 banco de datos con el AWS KMS cifrado habilitado mediante una clave de KMS administrada por el cliente, se requieren permisos tanto para la política de claves como para la política de IAM para el usuario o rol que crea el banco de HealthLake datos.
Puede usar la clave de ViaService condición kms: para limitar el uso de la clave KMS únicamente a las solicitudes que se HealthLake originen en.
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 crea los repositorios debe tener los permisos kms:CreateGrant, kms: yGenerateDataKey, además, kms: 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. Cuando crea un almacén de datos cifrado con una clave de KMS administrada por el cliente, HealthLake crea una concesión en su nombre mediante el envío de una CreateGrantsolicitud 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 deben revocarse ni retirarse. Si revoca o retira la concesión que le da HealthLake permiso para usar las claves de AWS KMS de su cuenta, HealthLake no puede acceder a estos datos, cifra los nuevos recursos del FHIR enviados al almacén de datos o los descifra cuando se extraen. Cuando revoca o retira una subvención HealthLake, el cambio se produce inmediatamente. Para revocar los derechos de acceso, debe 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 tu nombre.
Supervisar sus claves de cifrado para HealthLake
Puede utilizarla CloudTrail para realizar un seguimiento de las solicitudes que se HealthLake envían AWS KMS en su nombre cuando utiliza una clave KMS administrada 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 solicitadas para acceder DescribeKey a los datos cifrados por la clave gestionada por HealthLake el cliente. GenerateDataKey
A continuación, se muestra cómo se utiliza CreateGrant para permitir el acceso HealthLake a una clave de KMS proporcionada por el cliente, lo que HealthLake permite utilizar esa clave de KMS para cifrar todos los datos inactivos del cliente.
Los usuarios no están obligados a crear sus propias subvenciones. HealthLake crea una subvención en su nombre mediante el envío de una CreateGrant solicitud a AWS KMS. Las concesiones in se AWS KMS utilizan para dar HealthLake acceso a una AWS KMS clave de la cuenta de un 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" }
Los siguientes ejemplos muestran cómo se utilizan 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" }
El siguiente ejemplo muestra cómo se HealthLake llama a 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" }
El siguiente ejemplo muestra cómo se HealthLake utiliza la DescribeKey operación para comprobar si la AWS KMS clave propiedad del AWS KMS cliente está en un 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 de AWS Key Management Service, 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.