View a markdown version of this page

Crittografia a REST per AWS HealthLake - AWS HealthLake

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crittografia a REST per AWS HealthLake

HealthLake fornisce la crittografia per impostazione predefinita per proteggere i dati sensibili dei clienti inattivi utilizzando una chiave AWS Key Management Service (AWS KMS) di proprietà del servizio. Customer-managed Le chiavi KMS sono inoltre supportate e sono necessarie sia per l'importazione che per l'esportazione di file da un archivio dati. Per saperne di più su Customer-managed KMS Key, consulta Amazon Key Management Service. I clienti possono scegliere una chiave KMS di proprietà di AWS o una chiave Customer-managed KMS durante la creazione di un data store. La configurazione di crittografia non può essere modificata dopo la creazione di un data store. Se un archivio dati utilizza una chiave KMS di proprietà di AWS, verrà contrassegnata come AWS_OWNED_KMS_KEY inattiva e non verrà visualizzata la chiave specifica utilizzata per la crittografia.

Chiave KMS di proprietà di AWS

HealthLake utilizza queste chiavi per impostazione predefinita per crittografare automaticamente informazioni potenzialmente sensibili, ad esempio dati di identificazione personale o dati sanitari privati (PHI) inattivi. Le chiavi KMS di proprietà di AWS non vengono archiviate nel tuo account. Fanno parte di una raccolta di chiavi KMS che AWS possiede e gestisce per l'utilizzo in più account AWS. I servizi AWS possono utilizzare le chiavi KMS di proprietà di AWS per proteggere i tuoi dati. Non puoi visualizzare, gestire, utilizzare le chiavi KMS di proprietà di AWS né controllarne l'uso. Tuttavia, non è necessario eseguire alcuna operazione o modificare alcun programma per proteggere le chiavi che crittografano i dati.

Se utilizzi chiavi KMS di proprietà di AWS, non ti viene addebitata una tariffa mensile o una tariffa di utilizzo e queste non vengono conteggiate nelle quote AWS KMS per il tuo account. Per ulteriori informazioni, consulta le chiavi possedute da AWS.

Chiavi KMS gestite dal cliente

HealthLake supporta l'uso di una chiave KMS simmetrica gestita dal cliente che crei, possiedi e gestisci per aggiungere un secondo livello di crittografia rispetto alla crittografia esistente di proprietà di AWS. Avendo il pieno controllo di questo livello di crittografia, è possibile eseguire operazioni quali:

  • Stabilire e mantenere politiche chiave, politiche IAM e sovvenzioni

  • Ruotare i materiali crittografici delle chiavi

  • Abilitare e disabilitare le policy delle chiavi

  • Aggiungere tag

  • Creare alias delle chiavi

  • Pianificare l’eliminazione delle chiavi

Puoi anche utilizzarlo CloudTrail per tracciare le richieste che vengono HealthLake inviate per tuo AWS KMS conto. AWS KMS Si applicano costi aggiuntivi. Per ulteriori informazioni, consulta le chiavi di proprietà del cliente.

Creazione di una chiave gestita dal cliente

Puoi creare una chiave simmetrica gestita dal cliente utilizzando la Console di gestione AWS o le API. AWS KMS

Segui i passaggi per la creazione di una chiave simmetrica gestita dal cliente nella AWS Key Management Service Developer Guide.

Le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, è possibile specificare una policy della chiave. Per ulteriori informazioni, consulta Gestire l'accesso alle chiavi gestite dal cliente nella AWS Key Management Service Developer Guide.

Per utilizzare la chiave gestita dal cliente con HealthLake le tue risorse, kms: CreateGrant operations deve essere consentito nella policy chiave. Ciò aggiunge una concessione a una chiave gestita dal cliente che controlla l'accesso a una chiave KMS specificata, che consente a un utente di accedere a quanto richiesto dalle operazioni kms:grant. HealthLake Per ulteriori informazioni, vedere Utilizzo delle sovvenzioni.

Per utilizzare la chiave KMS gestita dal cliente con HealthLake le tue risorse, le seguenti operazioni API devono essere consentite nella policy chiave:

  • kms: CreateGrant aggiunge le sovvenzioni a una specifica chiave KMS gestita dal cliente che consente l'accesso alle operazioni di concessione.

  • kms: DescribeKey fornisce i dettagli chiave gestiti dal cliente necessari per convalidare la chiave. Questo è necessario per tutte le operazioni.

  • kms: GenerateDataKey fornisce l'accesso alle risorse di crittografia inattive per tutte le operazioni di scrittura.

  • kms:Decrypt fornisce l'accesso alle operazioni di lettura o ricerca di risorse crittografate.

Di seguito è riportato un esempio di dichiarazione politica che consente a un utente di creare e interagire con un archivio dati in AWS HealthLake cui è crittografato da quella chiave:

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

Autorizzazioni IAM richieste per l'utilizzo di una chiave KMS gestita dal cliente

Quando si crea un data store con AWS KMS crittografia abilitata utilizzando una chiave KMS gestita dal cliente, sono necessarie le autorizzazioni sia per la policy chiave che per la policy IAM per l'utente o il ruolo che crea il data store. HealthLake

È possibile utilizzare la chiave kms: ViaService condition per limitare l'uso della chiave KMS alle sole richieste provenienti da. HealthLake

Per ulteriori informazioni sulle policy chiave, consulta Enabling IAM Policy nella AWS Key Management Service Developer Guide.

L'utente IAM, il ruolo IAM o l'account AWS che crea i repository devono disporre delle autorizzazioni kms:CreateGrant, kms: GenerateDataKey e kms: più DescribeKey le autorizzazioni necessarie. HealthLake

Come vengono utilizzate le sovvenzioni in AWS KMS HealthLake

HealthLake richiede una concessione per utilizzare la chiave KMS gestita dal cliente. Quando crei un Data Store crittografato con una chiave KMS gestita dal cliente, HealthLake crea una concessione per tuo conto inviando una CreateGrant richiesta ad AWS KMS. Le sovvenzioni in AWS KMS vengono utilizzate per dare HealthLake accesso a una chiave KMS in un account cliente.

Le sovvenzioni HealthLake create per tuo conto non devono essere revocate o ritirate. Se revochi o ritiri la concessione che HealthLake autorizza l'uso delle chiavi AWS KMS nel tuo account, HealthLake non puoi accedere a questi dati, crittografare le nuove risorse FHIR inviate al data store o decrittografarle quando vengono recuperate. Quando si revoca o si ritira una sovvenzione, la modifica avviene immediatamente. HealthLake Per revocare i diritti di accesso, è necessario eliminare il data store anziché revocare la concessione. Quando un data store viene eliminato, le sovvenzioni vengono HealthLake ritirate per conto dell'utente.

Monitoraggio delle chiavi di crittografia per HealthLake

Puoi utilizzarlo CloudTrail per tenere traccia delle richieste HealthLake inviate per tuo AWS KMS conto quando utilizzi una chiave KMS gestita dal cliente. Le voci del CloudTrail registro indicano healthlake.amazonaws.com nel campo UserAgent per distinguere chiaramente le richieste effettuate da. HealthLake

Gli esempi seguenti sono CloudTrail eventi per CreateGrant, GenerateDataKey, Decrypt e per monitorare AWS KMS le operazioni chiamate per accedere DescribeKey ai dati crittografati dalla chiave gestita dal cliente HealthLake .

Di seguito viene illustrato come utilizzare CreateGrant per consentire l'accesso HealthLake a una chiave KMS fornita dal cliente, che consente di utilizzare tale chiave KMS HealthLake per crittografare tutti i dati del cliente inattivi.

Gli utenti non sono tenuti a creare le proprie sovvenzioni. HealthLake crea una sovvenzione per tuo conto inviando una CreateGrant richiesta ad AWS KMS. Le sovvenzioni AWS KMS vengono utilizzate per dare HealthLake accesso a una AWS KMS chiave in un account 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" }

Gli esempi seguenti mostrano come utilizzare per GenerateDataKey garantire che l'utente disponga delle autorizzazioni necessarie per crittografare i dati prima di archiviarli.

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

L'esempio seguente mostra come HealthLake chiama l'operazione Decrypt per utilizzare la chiave dati crittografata archiviata per accedere ai dati crittografati.

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

L'esempio seguente mostra come HealthLake utilizza l' DescribeKey operazione per verificare se la AWS KMS chiave di proprietà AWS KMS del cliente è utilizzabile e per aiutare l'utente a risolvere i problemi se non funziona.

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

Ulteriori informazioni

Le seguenti risorse forniscono ulteriori informazioni sulla crittografia dei dati inattivi.

Per ulteriori informazioni sui concetti di base di AWS Key Management Service, consulta la AWS KMS documentazione.

Per ulteriori informazioni sulle migliori pratiche di sicurezza, consulta la AWS KMS documentazione.