Secara default, Google Cloud akan otomatis mengenkripsi data saat dalam penyimpanan menggunakan kunci enkripsi dikelola oleh Google. Jika Anda memiliki persyaratan kepatuhan atau peraturan tertentu kunci yang melindungi data Anda, Anda dapat menggunakan data kunci enkripsi (CMEK) untuk Cloud Healthcare API set data. Bukannya Google memiliki dan mengelola kunci enkripsi yang melindungi tersebut, set data Cloud Healthcare API Anda dienkripsi menggunakan kunci yang Anda kontrol dan kelola Cloud Key Management Service (Cloud KMS).
Untuk informasi lebih lanjut tentang CMEK secara umum, termasuk kapan dan alasan mengaktifkannya, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).
Sebelum memulai
Tentukan apakah set data dan Cloud KMS akan berada di project Google Cloud yang sama atau berbeda satu. Untuk panduan, lihat Pemisahan tugas.
Untuk tujuan dokumentasi, konvensi berikut digunakan:
PROJECT_ID
: project ID Cloud Healthcare APIKMS_PROJECT_ID
: project ID tempat Cloud KMS berjalan, yang mungkin sama denganPROJECT_ID
Untuk informasi tentang project ID dan nomor project Google Cloud, lihat Mengidentifikasi project.
Batasan
- Anda hanya dapat menggunakan kunci Cloud KMS saat membuat set data Cloud Healthcare API. Anda tidak dapat mengaktifkan, mengubah, atau menonaktifkan kunci Cloud KMS di Cloud Healthcare API yang ada {i>dataset<i} aslinya.
- Hanya penyimpanan FHIR, DICOM, dan HL7v2 yang didukung dalam set data yang dienkripsi CMEK. Perlindungan CMEK berlaku untuk penyimpanan DICOM, FHIR, dan HL7v2 dalam set data dan sumber daya mereka.
- Anda tidak dapat melakukan de-identifikasi resource yang dienkripsi CMEK.
Operasi CMEK
Kunci Cloud KMS digunakan saat resource yang dienkripsi CMEK dibuat, dibaca, diperbarui, atau dihapus, dan untuk tugas operasional seperti penagihan atau memastikan kunci tersedia.
Pertimbangan utama eksternal
Untuk informasi tentang penggunaan kunci yang Anda kelola dalam sistem partner pengelolaan kunci eksternal yang didukung untuk melindungi data dalam Google Cloud, lihat Cloud External Key Manager.
Jika Anda kehilangan kunci yang Anda kelola di luar Google Cloud, Google tidak dapat memulihkan data Anda.
Ketidaktersediaan kunci dan kehilangan data
Jika set data dienkripsi dengan kunci, dan kunci tersebut menjadi tidak tersedia serta tetap ada tidak tersedia, Cloud Healthcare API akan dinonaktifkan dan pada akhirnya dihapus {i>dataset <i}tersebut. Terkadang, kunci menjadi tidak tersedia jika dinonaktifkan atau dihancurkan, atau jika layanan tidak dapat diakses karena izin dicabut, tetapi perilaku ini terjadi jika kunci tersebut tidak tersedia karena alasan apa pun. Tingkat perlindungan kunci atau apakah itu kunci eksternal tidak mempengaruhi perilaku ini. Kunci eksternal juga dapat menjadi tidak tersedia secara tidak terduga. Misalnya, masalah konektivitas mungkin muncul antara resource Google Cloud dan EKM Anda.
Proses berikut menjelaskan cara pemeriksaan ketersediaan kunci, dan cara {i>dataset<i} dapat dinonaktifkan dan dihapus:
Setelah set data Cloud Healthcare API yang dienkripsi CMEK dibuat, Cloud Healthcare API memeriksa status kunci setiap lima menit untuk memastikan kunci tersebut tersedia. Jika kunci tidak tersedia, Cloud Healthcare API akan melanjutkan untuk mendukung permintaan ke {i>dataset<i} hingga satu jam.
Setelah satu jam, jika Cloud Healthcare API masih tidak dapat terhubung dengan Cloud KMS, set data Cloud Healthcare API dinonaktifkan sebagai perlindungan ukur. Untuk mengaktifkan kembali set data Cloud Healthcare API, hubungi perwakilan dukungan Anda.
Jika dinonaktifkan, Anda hanya dapat mengirim
datasets.get
dandatasets.delete
ke set data Cloud Healthcare API. Permintaan lain gagal dengan error400 FAILED_PRECONDITION
.Jika set data Cloud Healthcare API tetap tidak tersedia selama lebih dari 30 hari, set data tersebut akan dihapus secara permanen. Semua DICOM, FHIR, dan HL7v2 disimpan di dalam set data dan data terkaitnya juga dihapus. Jika dihapus, data ini tidak dapat dipulihkan.
Pembuatan kunci
Bagian berikut menjelaskan cara membuat key ring Cloud KMS dan tombol. Hanya kunci enkripsi simetris Cloud KMS yang didukung.
Lokasi yang didukung
Kunci Cloud KMS tersedia di lokasi Cloud Healthcare API. Membuat key ring di yang cocok dengan region atau multi-region dalam set data Cloud Healthcare API Anda.
Setiap set data Cloud Healthcare API multi-regional harus menggunakan key ring multi-regional dari lokasi yang cocok. Misalnya, set data Cloud Healthcare API di region
us
harus dilindungi dengan key ring dari regionus
, dan set data Cloud Healthcare API di regioneu
harus dilindungi dengan key ring dari regioneurope
.Set data Cloud Healthcare API regional harus menggunakan kunci regional yang cocok. Misalnya, set data Cloud Healthcare API di region
asia-northeast1
harus dilindungi dengan kunci dering dari wilayahasia-northeast1
.Anda tidak dapat menggunakan region
global
saat mengonfigurasi CMEK untuk set data Cloud Healthcare API.
Untuk informasi selengkapnya, lihat lokasi Cloud Healthcare API dan lokasi Cloud KMS.
Membuat key ring dan kunci
Selesaikan langkah-langkah berikut di project Google Cloud yang menjalankan Cloud KMS:
Memberikan izin enkripsi dan dekripsi
Untuk melindungi data Cloud Healthcare API Anda dengan kunci Cloud KMS, berikan
Akun layanan Agen Layanan Cloud Healthcare
CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter
)
peran pada kunci tersebut. Untuk mengetahui petunjuknya, lihat
Izin set data CMEK.
Setelah memberikan peran kepada akun layanan, Cloud Healthcare API dapat mengenkripsi dan mendekripsi resource yang dienkripsi CMEK. Aplikasi Anda tidak perlu menentukan kunci ketika membaca atau menulis data. Cloud Healthcare API menangani enkripsi.
Saat pemohon membaca atau menulis objek yang dienkripsi dengan kunci Cloud KMS, akses objek seperti biasa. Selama permintaan, agen layanan otomatis mengenkripsi atau mendekripsi objek yang diminta, dengan ketentuan kedua kondisi berikut terpenuhi:
- Agen layanan masih memiliki izin yang diperlukan.
- Kunci tersedia dan diaktifkan.
Membuat set data Cloud Healthcare API yang dienkripsi CMEK
Contoh berikut menunjukkan cara membuat set data yang dienkripsi CMEK.
Anda harus menentukan ID resource kunci Cloud KMS saat membuat {i>dataset <i}tersebut. Kunci ini peka huruf besar/kecil dan dalam format berikut:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Untuk melihat ID resource kunci Cloud KMS, lihat Mendapatkan ID resource Cloud KMS.
Konsol
Di konsol Google Cloud, buka halaman Browser.
Klik add_box Create dataset. Halaman Create dataset akan ditampilkan.
Di kolom Nama, masukkan ID untuk subjek set data sesuai dengan persyaratan ukuran dan karakter yang diizinkan set data.
Pilih salah satu jenis lokasi berikut:
Region. Set data secara permanen berada dalam satu region Google Cloud. Setelah memilih opsi ini, ketik atau pilih lokasi di kolom Region.
Multi-region. Set data secara permanen berada di lokasi yang membentang ke beberapa region Google Cloud. Setelah memilih opsi ini, ketik atau pilih lokasi multi-region di kolom Multi-region.
Di bagian Enkripsi, pilih salah satu jenis enkripsi berikut:
Kunci enkripsi yang dikelola Google: Metode enkripsi default. Gunakan metode ini jika Anda ingin Google mengelola kunci enkripsi yang melindungi data Anda dalam set data Cloud Healthcare API ini.
Kunci Cloud KMS: Gunakan kunci enkripsi yang dikelola pelanggan (CMEK).
Klik Create. Halaman Browser akan ditampilkan. {i>Dataset<i} yang baru ditampilkan dalam daftar {i>dataset<i}.
gcloud
Buat set data menggunakan perintah gcloud healthcare datasets create
.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
DATASET_ID
: ID yang tunduk pada persyaratan ukuran dan karakter yang diizinkan set dataLOCATION
: lokasi yang didukung untuk set dataKEY_RESOURCE_ID
: ID resource untuk kunci Cloud KMS, dalam formatprojects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Jalankan mengikuti berikut:
Linux, macOS, atau Cloud Shell
gcloud healthcare datasets create DATASET_ID \ --location=LOCATION \ --encryption-key=KEY_RESOURCE_ID
Windows (PowerShell)
gcloud healthcare datasets create DATASET_ID ` --location=LOCATION ` --encryption-key=KEY_RESOURCE_ID
Windows (cmd.exe)
gcloud healthcare datasets create DATASET_ID ^ --location=LOCATION ^ --encryption-key=KEY_RESOURCE_ID
Anda akan melihat respons seperti berikut:
Create request issued for: [DATASET_ID] Waiting for operation [projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID] to complete... Created dataset [DATASET_ID].
REST
Membuat set data menggunakan
datasets.create
.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaDATASET_ID
: ID yang tunduk pada persyaratan ukuran dan karakter yang diizinkan set dataLOCATION
: lokasi yang didukung untuk set dataKEY_RESOURCE_ID
: ID resource untuk kunci Cloud KMS, dalam formatprojects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
Meminta isi JSON:
{ "encryptionSpec": { "kmsKeyName": "KEY_RESOURCE_ID" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:cat > request.json << 'EOF' { "encryptionSpec": { "kmsKeyName": "KEY_RESOURCE_ID" } } EOF
Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?datasetId=DATASET_ID"PowerShell
Simpan isi permintaan dalam file bernama
request.json
. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:@' { "encryptionSpec": { "kmsKeyName": "KEY_RESOURCE_ID" } } '@ | Out-File -FilePath request.json -Encoding utf8
Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?datasetId=DATASET_ID" | Select-Object -Expand ContentAPIs Explorer
Salin isi permintaan dan buka halaman referensi metode. Panel APIs Explorer akan terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Tempelkan isi permintaan di alat ini, lengkapi kolom lainnya yang wajib diisi, lalu klik Jalankan.
OPERATION_ID
. Anda memerlukan nilai ini pada langkah berikutnya.Dapatkan status operasi yang berjalan lama menggunakan metode
projects.locations.datasets.operations.get
.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: ID project Google Cloud AndaLOCATION
: lokasi set dataDATASET_ID
: ID set dataOPERATION_ID
: ID yang ditampilkan dari operasi yang berjalan lama
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand ContentAPIs Explorer
Buka halaman referensi metode. Panel APIs Explorer akan terbuka di sisi kanan halaman. Anda bisa berinteraksi dengan alat ini untuk mengirim permintaan. Lengkapi kolom yang wajib diisi, lalu klik Jalankan.
"done": true
, elemen yang berjalan lama telah selesai.
Menentukan apakah set data dilindungi oleh Cloud KMS
Untuk setiap kunci yang telah Anda buat atau yang melindungi Cloud Healthcare API Anda Anda dapat melihat sumber daya apa yang dilindungi oleh kunci dengan pelacakan penggunaan kunci. Untuk mengetahui informasi selengkapnya, lihat Melihat penggunaan kunci.
Rotasi kunci
Cloud KMS mendukung rotasi kunci otomatis dan manual ke versi baru.
Merotasi hasil utama akan menghasilkan hal berikut:
- Set data Cloud Healthcare API yang dibuat setelah rotasi menggunakan versi kunci baru untuk enkripsi dan semua operasi.
- Resource di set data yang ada yang dienkripsi dengan kunci tidak dienkripsi ulang secara otomatis dengan versi kunci utama yang baru.
Agar enkripsi dapat berfungsi, semua versi kunci harus tersedia. Jika tidak, set data Cloud Healthcare API akan dinonaktifkan dan semua permintaan ke gagal. Untuk informasi selengkapnya, lihat Pertimbangan utama eksternal dan Set data yang dinonaktifkan dan penghapusan set data permanen.
Menghapus akses Cloud Healthcare API ke kunci Cloud KMS
Anda memegang kendali atas kunci dan dapat menonaktifkan, menghancurkan, atau mencabut izin pada kunci tersebut sehingga Cloud Healthcare API tidak dapat mengakses data yang dienkripsi CMEK. Setelah Anda menghancurkan kunci atau versi kunci yang terkait dengan set data Cloud Healthcare API, semua data yang dienkripsi dengan kunci tersebut atau versi kunci hilang secara permanen.
Ada jeda antara saat Anda menonaktifkan kunci atau versi kunci dan saat kunci tidak dapat digunakan lagi. Ada juga jeda antara saat mencabut izin akun layanan agen layanan Cloud Healthcare pada kunci tersebut dan kapan akses tersebut dapat tidak lagi dapat diakses. Untuk informasi selengkapnya, lihat Konsistensi resource Cloud KMS.
Mengekspor dan mengimpor data ke instance yang mendukung CMEK
Untuk menjaga data Anda tetap terenkripsi dengan kunci yang dikelola pelanggan selama operasi ekspor, Anda harus menetapkan CMEK pada tujuan penyimpanan sebelum memulai ekspor. Tidak ada persyaratan khusus atau pembatasan impor data ke set data terenkripsi CMEK saat mengimpor yang tidak dienkripsi dengan CMEK atau CMEK.
Pembatasan
- Justifikasi Akses Kunci dengan Cloud External Key Manager tidak didukung.
- Ada batas 10 set data CMEK per project dalam periode 30 hari. Ini
kuota diberlakukan oleh metrik kuota
cmek_datasets
. - Kontrol Layanan VPC dengan CMEK tidak didukung.
- Kebijakan organisasi CMEK tidak didukung.
Harga
Set data ditagih dengan cara yang sama terlepas dari apakah set data tersebut dienkripsi CMEK atau tidak. Untuk mengetahui informasi selengkapnya, lihat harga Cloud Healthcare API.
Anda ditagih oleh Cloud KMS untuk biaya kunci dan semua kriptografi operasi pada kunci tersebut. Operasi ini terjadi saat Cloud Healthcare API menggunakan kunci tersebut untuk enkripsi atau dekripsi. Biaya ini akan menjadi minimal, berdasarkan perkiraan jumlah operasi kriptografi yang dihasilkan oleh di Cloud Healthcare API. Untuk informasi selengkapnya, lihat Harga Cloud KMS.
Kuota Cloud KMS dan Cloud Healthcare API
Saat Anda menggunakan CMEK di Cloud Healthcare API,
project Anda dapat menggunakan permintaan kriptografi Cloud KMS
kuota tambahan. Set data Cloud Healthcare API yang dienkripsi CMEK serta penyimpanan DICOM, FHIR, dan HL7v2-nya menggunakan kuota ini untuk semua operasi, kecuali datasets.get
. Operasi enkripsi dan dekripsi menggunakan kunci CMEK memengaruhi kuota Cloud KMS hanya jika Anda menggunakan kunci hardware (Cloud HSM) atau kunci eksternal (Cloud EKM).
Untuk informasi selengkapnya, lihat
Kuota Cloud KMS.
Langkah selanjutnya
- Untuk informasi lebih lanjut tentang CMEK secara umum, termasuk kapan dan alasan mengaktifkannya, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).