Crittografia presso for REST 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 presso for REST AWS HealthLake

HealthLake fornisce la crittografia di default per proteggere i dati sensibili dei clienti archiviati utilizzando una AWS chiave Key Management Service (AWSKMS) di proprietà del servizio. Sono supportate anche KMS le chiavi gestite dal cliente e sono necessarie sia per l'importazione che per l'esportazione di file da un data store. Per ulteriori informazioni sulla KMS chiave gestita dal cliente, consulta Amazon Key Management Service. I clienti possono scegliere una KMS chiave AWS di proprietà o una KMS chiave gestita dal cliente durante la creazione di un data store. La configurazione di crittografia non può essere modificata dopo la creazione di un data store. Se un data store utilizza una KMS chiave AWS di proprietà, la chiave specifica utilizzata per la crittografia verrà contrassegnata come inattiva AWS_OWNED_KMS_KEY e non verrà visualizzata.

AWSchiave di proprietà KMS

HealthLake utilizza queste chiavi per impostazione predefinita per crittografare automaticamente le informazioni potenzialmente sensibili come i dati personali identificabili o i dati Private Health Information (PHI) archiviati. AWSKMSle chiavi di proprietà non sono archiviate nel tuo account. Fanno parte di una raccolta di KMS chiavi che AWS possiede e gestisce per l'utilizzo in più AWS account. AWSi servizi possono utilizzare KMS chiavi AWS di proprietà per proteggere i dati. Non puoi visualizzare, gestire, utilizzare KMS chiavi AWS di proprietà o controllarne l'utilizzo. Tuttavia, non è necessario eseguire alcuna operazione o modificare alcun programma per proteggere le chiavi che crittografano i dati.

Non ti viene addebitato un canone mensile o un canone di utilizzo se utilizzi KMS chiavi AWS di proprietà e queste non vengono conteggiate nelle AWS KMS quote del tuo account. Per ulteriori informazioni, consulta Chiavi AWS possedute.

KMSChiavi gestite dal cliente

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

  • Stabilire e mantenere politiche, IAM politiche e sovvenzioni chiave

  • 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 tenere traccia delle richieste HealthLake inviate a per tuo AWS KMS conto. AWS KMS Si applicano costi aggiuntivi. Per ulteriori informazioni, consulta la sezione Customer Owned Keys.

Creazione di una chiave gestita dal cliente

È possibile creare una chiave simmetrica gestita dal cliente utilizzando la console di AWS gestione o il. AWS KMS APIs

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, puoi 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 le operazioni devono essere consentite nella politica chiave. Ciò aggiunge una concessione a una chiave gestita dal cliente che controlla l'accesso a una KMS chiave specificata, che consente a un utente l'accesso alle operazioni kms:grant richieste. HealthLake Per ulteriori informazioni, vedere Utilizzo delle sovvenzioni.

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

  • kms: CreateGrant aggiunge le concessioni a una KMS chiave specifica 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 a riposo per tutte le operazioni di scrittura.

  • KMS:Decrypt fornisce l'accesso alle operazioni di lettura o ricerca per 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 tale 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" } } } ]

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

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

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

Per ulteriori informazioni sulle politiche chiave, vedere Enabling IAM policies nella AWS Key Management Service Developer Guide.

L'IAMutente, il IAM ruolo o l'AWSaccount che crea i tuoi repository deve disporre delle autorizzazioni kms:CreateGrant, kms:GenerateDataKey, e più kms: DescribeKey le autorizzazioni necessarie. HealthLake

Come utilizza le sovvenzioni in HealthLake AWS KMS

HealthLake richiede una concessione per utilizzare la KMS chiave gestita dal cliente. Quando crei un Data Store crittografato con una KMS chiave gestita dal cliente, HealthLake crea una concessione per tuo conto inviando una CreateGrantrichiesta a AWSKMS. Le sovvenzioni AWS KMS vengono utilizzate per HealthLake consentire l'accesso a una KMS chiave 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 AWS KMS chiavi del tuo account, HealthLake non puoi accedere a questi dati, crittografare le nuove FHIR risorse trasferite nell'archivio dati o decrittografarle quando vengono estratte. Quando si revoca o si ritira una sovvenzione, la modifica avviene immediatamente. HealthLake Per revocare i diritti di accesso, è necessario eliminare l'archivio dati anziché revocare la concessione. Quando un data store viene eliminato, annulla le HealthLake concessioni per tuo conto.

Monitoraggio delle chiavi di crittografia per HealthLake

Puoi utilizzarlo CloudTrail per tenere traccia delle richieste HealthLake inviate a per tuo AWS KMS conto quando utilizzi una KMS chiave gestita dal cliente. Le voci di registro nel CloudTrail registro mostrano healthlake.amazonaws.com nel userAgent campo 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 richieste per accedere DescribeKey HealthLake ai dati crittografati dalla chiave gestita dal cliente.

Di seguito viene illustrato come utilizzare CreateGrant per consentire l'accesso HealthLake a una KMS chiave fornita dal cliente, che consente di utilizzare tale KMS chiave 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 a AWSKMS. Le sovvenzioni AWS KMS vengono utilizzate per HealthLake consentire l'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 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 richiama l'operazione Decrypt per utilizzare la chiave di dati crittografati 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 è in uno stato 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 a riposo.

Per ulteriori informazioni sui concetti di base del servizio di gestione delle AWS chiavi, consulta la AWS KMS documentazione.

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