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 REST per AWS HealthLake
HealthLake fornisce la crittografia di default per proteggere i dati sensibili dei clienti archiviati utilizzando una chiave AWS Key Management Service (AWS KMS) di proprietà del servizio. Sono supportate anche le chiavi KMS gestite dal cliente e sono necessarie sia per l'importazione che per l'esportazione di file da un data store. Per ulteriori informazioni sulla chiave KMS gestita dal cliente, consulta Amazon Key Management Service. I clienti possono scegliere una chiave KMS di proprietà di AWS o una chiave KMS 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 chiave KMS di proprietà di AWS, verrà indicata come AWS_OWNED _KMS_KEY e non verrà visualizzata la chiave specifica utilizzata per la crittografia a riposo.
Chiave KMS di proprietà di AWS
HealthLake utilizza queste chiavi per impostazione predefinita per crittografare automaticamente le informazioni potenzialmente sensibili come i dati personali identificabili o i dati PHI (Private Health Information) inattivi. Le chiavi KMS di proprietà di AWS non sono archiviate nel tuo account. Fanno parte di una raccolta di chiavi KMS di proprietà e gestione di AWS da utilizzare in più account AWS. I servizi AWS possono utilizzare chiavi KMS di proprietà di AWS per proteggere i tuoi dati. Non puoi visualizzare, gestire, utilizzare le chiavi KMS di proprietà di AWS o verificarne 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 chiavi KMS di proprietà di AWS e non vengono conteggiate nelle quote AWS KMS per il tuo account. Per ulteriori informazioni, consulta le chiavi di proprietà di AWS.
Chiavi KMS gestite dal cliente
HealthLake supporta l'uso di una chiave KMS simmetrica gestita dal cliente che puoi creare, possedere e gestire 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 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
Puoi creare una chiave simmetrica gestita dal cliente utilizzando la Console di gestione AWS o il. AWS KMS APIs
Segui i passaggi per la creazione di una chiave gestita dal cliente simmetrica 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 Managing access to customer managed keys 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 policy chiave. Ciò aggiunge una concessione a una chiave gestita dal cliente che controlla l'accesso a una chiave KMS specificata, che fornisce a un utente l'accesso alle operazioni kms:grant richieste. HealthLake Per ulteriori informazioni, vedi Utilizzo delle sovvenzioni.
Per utilizzare la chiave KMS gestita dai clienti con HealthLake le tue risorse, nella policy chiave devono essere consentite le seguenti operazioni API:
-
kms: CreateGrant aggiunge le concessioni a una chiave KMS gestita dal cliente specifica 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" } } } ]
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
Puoi utilizzare la chiave kms: ViaService condition per limitare l'uso della chiave KMS solo alle richieste che provengono da. HealthLake
Per ulteriori informazioni sulle policy chiave, consulta Enabling IAM policies nella AWS Key Management Service Developer Guide.
L'utente IAM, il ruolo IAM o l'account AWS che crea i tuoi repository deve disporre delle autorizzazioni kms:CreateGrant, kms: GenerateDataKey e più kms: DescribeKey le autorizzazioni necessarie. HealthLake
Come HealthLake utilizza le sovvenzioni in AWS KMS
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 CreateGrantrichiesta ad AWS KMS. Le sovvenzioni in AWS KMS vengono utilizzate per consentire l' 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 estratte. Quando revochi o ritiri una sovvenzione per, 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, le concessioni vengono HealthLake ritirate per conto dell'utente.
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 chiave KMS gestita dal cliente. Le voci di registro nel CloudTrail registro mostrano 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 le AWS KMS operazioni richiamate 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, abilitando l'utilizzo di tale chiave KMS HealthLake per crittografare tutti i dati inattivi del cliente.
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 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 di AWS Key Management Service, consulta la AWS KMS documentazione.
Per ulteriori informazioni sulle best practice di sicurezza, consulta la AWS KMS documentazione.