Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verschlüsselung im REST für AWS HealthLake
HealthLake bietet standardmäßig Verschlüsselung zum Schutz vertraulicher Kundendaten im Ruhezustand mithilfe eines diensteigenen AWS Key Management Service (AWS KMS) -Schlüssels. Customer-managed KMS-Schlüssel werden ebenfalls unterstützt und sind sowohl für den Import als auch für den Export von Dateien aus einem Datenspeicher erforderlich. Weitere Informationen zu Customer-managed KMS Key finden Sie unter Amazon Key Management Service. Kunden können bei der Erstellung eines Datenspeichers einen AWS-eigenen Customer-managed KMS-Schlüssel oder einen KMS-Schlüssel wählen. Die Verschlüsselungskonfiguration kann nicht geändert werden, nachdem ein Datenspeicher erstellt wurde. Wenn ein Datenspeicher einen AWS-eigenen KMS-Schlüssel verwendet, wird er so AWS_OWNED_KMS_KEY gekennzeichnet, dass der für die Verschlüsselung verwendete spezifische Schlüssel im Ruhezustand nicht angezeigt wird.
AWS-eigener KMS-Schlüssel
HealthLake verwendet diese Schlüssel standardmäßig, um potenziell vertrauliche Informationen wie personenbezogene Daten oder private Gesundheitsdaten (PHI) im Ruhezustand automatisch zu verschlüsseln. AWS-eigene KMS-Schlüssel werden nicht in Ihrem Konto gespeichert. Sie sind Teil einer Sammlung von KMS-Schlüsseln, die AWS besitzt und verwaltet, um sie in mehreren AWS-Konten zu verwenden. AWS-Services können AWS-eigene KMS-Schlüssel verwenden, um Ihre Daten zu schützen. Sie können AWS-eigene KMS-Schlüssel nicht einsehen, verwalten, verwenden oder deren Verwendung überprüfen. Sie müssen jedoch keine Arbeiten ausführen oder Programme ändern, um die Schlüssel zu schützen, mit denen Ihre Daten verschlüsselt werden.
Ihnen wird weder eine monatliche Gebühr noch eine Nutzungsgebühr berechnet, wenn Sie AWS-eigene KMS-Schlüssel verwenden, und diese werden nicht auf die AWS KMS-Kontingente für Ihr Konto angerechnet. Weitere Informationen finden Sie unter AWS-eigene Schlüssel.
Kundenseitig verwaltete KMS-Schlüssel
HealthLake unterstützt die Verwendung eines symmetrischen, vom Kunden verwalteten KMS-Schlüssels, den Sie erstellen, besitzen und verwalten, um der vorhandenen AWS-eigenen Verschlüsselung eine zweite Verschlüsselungsebene hinzuzufügen. Da Sie die volle Kontrolle über diese Verschlüsselungsebene haben, können Sie beispielsweise folgende Aufgaben ausführen:
-
Festlegung und Pflege wichtiger Richtlinien, IAM-Richtlinien und Zuschüsse
-
Kryptographisches Material mit rotierendem Schlüssel
-
Aktivieren und Deaktivieren wichtiger Richtlinien
-
Hinzufügen von -Tags
-
Erstellen von Schlüsselaliasen
-
Schlüssel für das Löschen von Schlüsseln planen
Sie können es auch verwenden CloudTrail , um die Anfragen zu verfolgen, die in Ihrem Namen an AWS KMS Sie HealthLake gesendet werden. Es AWS KMS fallen zusätzliche Gebühren an. Weitere Informationen finden Sie unter Kundeneigene Schlüssel.
Erstellen eines kundenseitig verwalteten Schlüssels
Sie können einen symmetrischen, vom Kunden verwalteten Schlüssel mithilfe der AWS-Managementkonsole oder der APIs erstellen. AWS KMS
Folgen Sie den Schritten zur Erstellung eines symmetrischen, vom Kunden verwalteten Schlüssels im AWS Key Management Service Developer Guide.
Schlüsselrichtlinien steuern den Zugriff auf den vom Kunden verwalteten Schlüssel. Jeder vom Kunden verwaltete Schlüssel muss über genau eine Schlüsselrichtlinie verfügen, die aussagt, wer den Schlüssel wie verwenden kann. Wenn Sie Ihren kundenseitig verwalteten Schlüssel erstellen, können Sie eine Schlüsselrichtlinie angeben. Weitere Informationen finden Sie unter Verwaltung des Zugriffs auf vom Kunden verwaltete Schlüssel im AWS Key Management Service Developer Guide.
Damit Sie Ihren vom Kunden verwalteten Schlüssel mit Ihren HealthLake Ressourcen verwenden können, müssen kms: CreateGrant -Operationen in der Schlüsselrichtlinie zulässig sein. Dadurch wird einem vom Kunden verwalteten Schlüssel ein Zuschuss hinzugefügt, der den Zugriff auf einen bestimmten KMS-Schlüssel steuert, der einem Benutzer Zugriff auf die kms:grant-Operationen gewährt. HealthLake Weitere Informationen finden Sie unter Zuschüsse verwenden.
Um Ihren vom Kunden verwalteten KMS-Schlüssel mit Ihren HealthLake Ressourcen zu verwenden, müssen die folgenden API-Operationen in der Schlüsselrichtlinie zulässig sein:
-
kms: CreateGrant fügt einem bestimmten, vom Kunden verwalteten KMS-Schlüssel Zuschüsse hinzu, wodurch der Zugriff auf Zuschussvorgänge ermöglicht wird.
-
kms: DescribeKey liefert die vom Kunden verwalteten Schlüsseldetails, die zur Validierung des Schlüssels erforderlich sind. Dies ist für alle Operationen erforderlich.
-
kms: GenerateDataKey ermöglicht den Zugriff auf die Verschlüsselung ruhender Ressourcen für alle Schreibvorgänge.
-
kms:Decrypt bietet Zugriff auf Lese- oder Suchvorgänge für verschlüsselte Ressourcen.
Im Folgenden finden Sie ein Beispiel für eine Richtlinienanweisung, die es einem Benutzer ermöglicht, einen Datenspeicher zu erstellen und mit ihm zu interagieren, der mit diesem AWS HealthLake Schlüssel verschlüsselt ist:
"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" } } } ]
Erforderliche IAM-Berechtigungen für die Verwendung eines vom Kunden verwalteten KMS-Schlüssels
Beim Erstellen eines Datenspeichers mit aktivierter AWS KMS Verschlüsselung mithilfe eines vom Kunden verwalteten KMS-Schlüssels sind Berechtigungen sowohl für die Schlüsselrichtlinie als auch für die IAM-Richtlinie für den Benutzer oder die Rolle erforderlich, der den HealthLake Datenspeicher erstellt.
Sie können den ViaService Bedingungsschlüssel kms: verwenden, um die Verwendung des KMS-Schlüssels auf Anfragen zu beschränken, die von diesen stammen HealthLake.
Weitere Informationen zu wichtigen Richtlinien finden Sie unter Enabling IAM Policies im AWS Key Management Service Developer Guide.
Der IAM-Benutzer, die IAM-Rolle oder das AWS-Konto, das Ihre Repositorys erstellt, muss über die Berechtigungen kms:CreateGrant, kms: GenerateDataKey und kms: sowie die DescribeKey erforderlichen Berechtigungen verfügen. HealthLake
Wie werden Zuschüsse in HealthLake AWS KMS verwendet
HealthLake erfordert einen Zuschuss, um Ihren vom Kunden verwalteten KMS-Schlüssel verwenden zu können. Wenn Sie einen Datenspeicher erstellen, der mit einem vom Kunden verwalteten KMS-Schlüssel verschlüsselt ist, HealthLake wird in Ihrem Namen ein Zuschuss gewährt, indem Sie eine CreateGrant Anfrage an AWS KMS senden. Zuschüsse in AWS KMS werden verwendet, um HealthLake Zugriff auf einen KMS-Schlüssel in einem Kundenkonto zu gewähren.
Die Zuschüsse, HealthLake die in Ihrem Namen gewährt werden, sollten nicht widerrufen oder zurückgezogen werden. Wenn Sie die HealthLake Genehmigung zur Verwendung der AWS KMS-Schlüssel in Ihrem Konto widerrufen oder zurückziehen, können Sie HealthLake nicht auf diese Daten zugreifen, neue FHIR-Ressourcen, die in den Datenspeicher übertragen werden, verschlüsseln oder sie entschlüsseln, wenn sie abgerufen werden. Wenn Sie einen Zuschuss für widerrufen oder außer Kraft setzen HealthLake, wird die Änderung sofort wirksam. Um die Zugriffsrechte zu entziehen, sollten Sie den Datenspeicher löschen, anstatt die Gewährung zu widerrufen. Wenn ein Datenspeicher gelöscht wird, werden die Zuschüsse HealthLake in Ihrem Namen zurückgezogen.
Überwachung Ihrer Verschlüsselungsschlüssel für HealthLake
Sie können CloudTrail es verwenden, um die Anfragen zu verfolgen, die in Ihrem Namen an AWS KMS Sie HealthLake gesendet werden, wenn Sie einen vom Kunden verwalteten KMS-Schlüssel verwenden. In den Protokolleinträgen im CloudTrail Protokoll wird healthlake.amazonaws.com im Feld UserAgent angezeigt, um Anfragen von eindeutig unterscheiden zu können. HealthLake
Die folgenden Beispiele sind CloudTrail Ereignisse für CreateGrant,, Decrypt und zur Überwachung von AWS KMS Vorgängen GenerateDataKey, die von aufgerufen werden, DescribeKey um auf Daten zuzugreifen, die mit Ihrem vom Kunden HealthLake verwalteten Schlüssel verschlüsselt wurden.
Im Folgenden wird gezeigt, wie Sie CreateGrant den HealthLake Zugriff auf einen vom Kunden bereitgestellten KMS-Schlüssel zulassen und so die Verwendung dieses KMS-Schlüssels zum Verschlüsseln aller gespeicherten Kundendaten ermöglichen HealthLake .
Benutzer müssen keine eigenen Zuschüsse erstellen. HealthLake erstellt in Ihrem Namen einen Zuschuss, indem Sie eine CreateGrant Anfrage an AWS KMS senden. Grants in AWS KMS werden verwendet, um HealthLake Zugriff auf einen AWS KMS Schlüssel in einem Kundenkonto zu gewähren.
{ "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" }
Die folgenden Beispiele zeigen, wie Sie sicherstellen können GenerateDataKey , dass der Benutzer über die erforderlichen Berechtigungen zum Verschlüsseln von Daten verfügt, bevor sie gespeichert werden.
{ "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" }
Das folgende Beispiel zeigt, wie der Decrypt-Vorgang HealthLake aufgerufen wird, um mithilfe des gespeicherten verschlüsselten Datenschlüssels auf die verschlüsselten Daten zuzugreifen.
{ "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" }
Das folgende Beispiel zeigt, wie der DescribeKey Vorgang HealthLake verwendet wird, um zu überprüfen, ob sich der AWS KMS Schlüssel des AWS KMS Kunden in einem verwendbaren Zustand befindet, und um einem Benutzer bei der Problembehandlung zu helfen, falls er nicht funktioniert.
{ "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" }
Weitere Informationen
Die folgenden Ressourcen enthalten weitere Informationen zur Verschlüsselung von Daten im Ruhezustand.
Weitere Informationen zu den grundlegenden Konzepten von AWS Key Management Service finden Sie in der AWS KMS Dokumentation.
Weitere Informationen zu bewährten Sicherheitsmethoden finden Sie in der AWS KMS Dokumentation.