Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Enkripsi di REST untuk AWS HealthLake
HealthLake menyediakan enkripsi secara default untuk melindungi data pelanggan sensitif saat istirahat dengan menggunakan kunci AWS Key Management Service (AWS KMS) yang dimiliki layanan. Kunci KMS yang dikelola pelanggan juga didukung dan diperlukan untuk mengimpor dan mengekspor file dari penyimpanan data. Untuk mempelajari lebih lanjut tentang Kunci KMS yang dikelola pelanggan, lihat Amazon Key Management Service. Pelanggan dapat memilih kunci KMS milik AWS atau kunci KMS yang dikelola Pelanggan saat membuat penyimpanan data. Konfigurasi enkripsi tidak dapat diubah setelah penyimpanan data dibuat. Jika penyimpanan data menggunakan Kunci KMS milik AWS, itu akan dilambangkan sebagai AWS_OWNED _KMS_KEY dan Anda tidak akan melihat kunci spesifik yang digunakan untuk enkripsi saat istirahat.
Kunci KMS milik AWS
HealthLake menggunakan kunci ini secara default untuk secara otomatis mengenkripsi informasi yang berpotensi sensitif seperti data yang dapat diidentifikasi secara pribadi atau Informasi Kesehatan Pribadi (PHI) saat istirahat. Kunci KMS yang dimiliki AWS tidak disimpan di akun Anda. Mereka adalah bagian dari kumpulan kunci KMS yang dimiliki dan dikelola AWS untuk digunakan di beberapa akun AWS. Layanan AWS dapat menggunakan kunci KMS milik AWS untuk melindungi data Anda. Anda tidak dapat melihat, mengelola, menggunakan kunci KMS milik AWS, atau mengaudit penggunaannya. Namun, Anda tidak perlu melakukan pekerjaan apa pun atau mengubah program apa pun untuk melindungi kunci yang mengenkripsi data Anda.
Anda tidak dikenakan biaya bulanan atau biaya penggunaan jika Anda menggunakan kunci KMS milik AWS, dan kunci tersebut tidak dihitung terhadap kuota AWS KMS untuk akun Anda. Untuk informasi selengkapnya, lihat kunci yang dimiliki AWS.
Kunci KMS yang dikelola pelanggan
HealthLake mendukung penggunaan kunci KMS terkelola pelanggan simetris yang Anda buat, miliki, dan kelola untuk menambahkan enkripsi lapisan kedua di atas enkripsi milik AWS yang ada. Karena Anda memiliki kontrol penuh atas lapisan enkripsi ini, Anda dapat melakukan tugas-tugas seperti:
-
Menetapkan dan memelihara kebijakan utama, kebijakan IAM, dan hibah
-
Memutar bahan kriptografi kunci
-
Mengaktifkan dan menonaktifkan kebijakan utama
-
Menambahkan tanda
-
Membuat alias kunci
-
Kunci penjadwalan untuk penghapusan
Anda juga dapat menggunakan CloudTrail untuk melacak permintaan yang HealthLake dikirim AWS KMS atas nama Anda. AWS KMS Biaya tambahan.Untuk informasi lebih lanjut, lihat kunci milik pelanggan.
Buat kunci terkelola pelanggan
Anda dapat membuat kunci terkelola pelanggan simetris dengan menggunakan AWS Management Console, atau. AWS KMS APIs
Ikuti langkah-langkah untuk Membuat kunci terkelola pelanggan simetris di Panduan Pengembang AWS Key Management Service.
Kebijakan utama mengontrol akses ke kunci yang dikelola pelanggan Anda. Setiap kunci yang dikelola pelanggan harus memiliki persis satu kebijakan utama, yang berisi pernyataan yang menentukan siapa yang dapat menggunakan kunci dan bagaimana mereka dapat menggunakannya. Saat membuat kunci terkelola pelanggan, Anda dapat menentukan kebijakan kunci. Untuk informasi selengkapnya, lihat Mengelola akses ke kunci terkelola pelanggan di Panduan Pengembang AWS Key Management Service.
Untuk menggunakan kunci yang dikelola pelanggan dengan HealthLake sumber daya Anda, kms: CreateGrant operasi harus diizinkan dalam kebijakan utama. Ini menambahkan hibah ke kunci terkelola pelanggan yang mengontrol akses ke kunci KMS tertentu, yang memberikan akses pengguna ke kms:grant operations require. HealthLake Lihat Menggunakan hibah untuk informasi lebih lanjut.
Untuk menggunakan kunci KMS yang dikelola pelanggan dengan HealthLake sumber daya Anda, operasi API berikut harus diizinkan dalam kebijakan kunci:
-
kms: CreateGrant menambahkan hibah ke kunci KMS yang dikelola pelanggan tertentu yang memungkinkan akses ke operasi hibah.
-
kms: DescribeKey memberikan detail kunci yang dikelola pelanggan yang diperlukan untuk memvalidasi kunci. Ini diperlukan untuk semua operasi.
-
kms: GenerateDataKey menyediakan akses untuk mengenkripsi sumber daya saat istirahat untuk semua operasi penulisan.
-
KMS: Decrypt menyediakan akses untuk membaca atau mencari operasi untuk sumber daya terenkripsi.
Berikut ini adalah contoh pernyataan kebijakan yang memungkinkan pengguna untuk membuat dan berinteraksi dengan penyimpanan data AWS HealthLake yang dienkripsi oleh kunci tersebut:
"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" } } } ]
Izin IAM yang diperlukan untuk menggunakan kunci KMS yang dikelola pelanggan
Saat membuat penyimpanan data dengan AWS KMS enkripsi diaktifkan menggunakan kunci KMS yang dikelola pelanggan, ada izin yang diperlukan untuk kebijakan kunci dan kebijakan IAM untuk pengguna atau peran yang membuat penyimpanan data. HealthLake
Anda dapat menggunakan kms: ViaService condition key untuk membatasi penggunaan kunci KMS hanya untuk permintaan yang berasal dari. HealthLake
Untuk informasi selengkapnya tentang kebijakan utama, lihat Mengaktifkan kebijakan IAM di Panduan Pengembang AWS Key Management Service.
Pengguna IAM, peran IAM, atau akun AWS yang membuat repositori Anda harus memiliki kms:CreateGrant, kms:GenerateDataKey, dan kms: DescribeKey izin ditambah izin yang diperlukan. HealthLake
Cara HealthLake menggunakan hibah di AWS KMS
HealthLake membutuhkan hibah untuk menggunakan kunci KMS yang dikelola pelanggan Anda. Saat Anda membuat Penyimpanan Data yang dienkripsi dengan kunci KMS yang dikelola pelanggan, HealthLake buat hibah atas nama Anda dengan mengirimkan CreateGrantpermintaan ke AWS KMS. Hibah di AWS KMS digunakan untuk HealthLake memberikan akses ke kunci KMS di akun pelanggan.
Hibah yang HealthLake dibuat atas nama Anda tidak boleh dicabut atau pensiun. Jika Anda mencabut atau menghentikan hibah yang memberikan HealthLake izin untuk menggunakan kunci AWS KMS di akun Anda, HealthLake tidak dapat mengakses data ini, mengenkripsi sumber daya FHIR baru yang didorong ke penyimpanan data, atau mendekripsi ketika ditarik. Ketika Anda mencabut atau pensiun hibah untuk HealthLake, perubahan terjadi segera. Untuk mencabut hak akses, Anda harus menghapus penyimpanan data daripada mencabut hibah. Ketika penyimpanan data dihapus, HealthLake pensiun hibah atas nama Anda.
Memantau kunci enkripsi Anda untuk HealthLake
Anda dapat menggunakan CloudTrail untuk melacak permintaan yang HealthLake dikirim atas nama Anda saat menggunakan kunci KMS yang dikelola pelanggan. AWS KMS Entri log di CloudTrail log menampilkan healthlake.amazonaws.com di bidang UserAgent untuk membedakan dengan jelas permintaan yang dibuat oleh. HealthLake
Contoh berikut adalah CloudTrail peristiwa untuk CreateGrant,, Dekripsi GenerateDataKey, dan DescribeKey untuk memantau AWS KMS operasi yang dipanggil oleh HealthLake untuk mengakses data yang dienkripsi oleh kunci yang dikelola pelanggan Anda.
Berikut ini menunjukkan cara menggunakan untuk memungkinkan CreateGrant HealthLake untuk mengakses kunci KMS yang disediakan pelanggan, memungkinkan HealthLake untuk menggunakan kunci KMS itu untuk mengenkripsi semua data pelanggan saat istirahat.
Pengguna tidak diharuskan untuk membuat hibah mereka sendiri. HealthLake membuat hibah atas nama Anda dengan mengirimkan CreateGrant permintaan ke AWS KMS. Hibah AWS KMS digunakan untuk memberikan HealthLake akses ke AWS KMS kunci di akun pelanggan.
{ "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" }
Contoh berikut menunjukkan cara menggunakan GenerateDataKey untuk memastikan pengguna memiliki izin yang diperlukan untuk mengenkripsi data sebelum menyimpannya.
{ "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" }
Contoh berikut menunjukkan cara HealthLake memanggil operasi Dekripsi untuk menggunakan kunci data terenkripsi yang disimpan untuk mengakses data terenkripsi.
{ "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" }
Contoh berikut menunjukkan cara HealthLake menggunakan DescribeKey operasi untuk memverifikasi apakah AWS KMS kunci milik AWS KMS pelanggan berada dalam keadaan yang dapat digunakan dan untuk membantu pengguna memecahkan masalah jika tidak berfungsi.
{ "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" }
Pelajari selengkapnya
Sumber daya berikut memberikan informasi lebih lanjut tentang enkripsi data saat istirahat.
Untuk informasi selengkapnya tentang konsep dasar AWS Key Management Service, lihat AWS KMS dokumentasinya.
Untuk informasi selengkapnya tentang praktik terbaik Keamanan dalam AWS KMS dokumentasi.