Halaman ini menjelaskan cara mengenkripsi data yang disimpan di instance AML AI dengan kunci enkripsi yang dikelola pelanggan (CMEK).
Ringkasan
Semua Data Pelanggan di instance AI AML dienkripsi saat dalam penyimpanan menggunakan kunci CMEK. Anda mengelola kunci dalam Cloud Key Management Service (Cloud KMS), dan mengontrol akses ke kunci menggunakan Identity and Access Management. Jika Anda menonaktifkan sementara atau menghancurkan kunci CMEK secara permanen, data yang dienkripsi dengan kunci tersebut tidak dapat diakses.
AI AML hanya mendukung CMEK dengan menggunakan Cloud KMS. Aplikasi ini tidak mendukung Enkripsi Default Google.
CMEK memberi Anda kontrol atas lebih banyak aspek siklus proses dan pengelolaan kunci, tetapi juga menimbulkan biaya tambahan untuk layanan Cloud KMS.
Cloud KMS dapat berjalan di project Google Cloud yang sama dengan AML AI atau di project terpisah tempat Anda mengelola kunci secara terpusat untuk beberapa project.
Konfigurasi enkripsi disiapkan saat Anda membuat instance. Setelah instance dibuat, Anda tidak dapat menetapkan kunci Cloud KMS yang berbeda. Anda tetap dapat memutar kunci.
Untuk informasi selengkapnya tentang CMEK secara umum, lihat dokumentasi Cloud KMS.
Level perlindungan
Cloud KMS memungkinkan Anda memilih dari berbagai tingkat perlindungan, termasuk:
- Kunci software
- Modul Keamanan Hardware (HSM) yang menggunakan Cloud HSM
Baca cara mengonfigurasi CMEK di AML AI. Tidak semua tingkat perlindungan tersedia di semua wilayah. Perhatikan bahwa AI AML tidak mendukung Kunci Enkripsi yang Disediakan Pelanggan (CSEK) atau Cloud External Key Manager.
Data Pelanggan
Semua Data Pelanggan yang ditangani oleh AML AI dienkripsi saat dalam penyimpanan menggunakan kunci CMEK yang ditentukan dalam resource Instance induk yang sesuai. Hal ini mencakup semua Data Pelanggan yang terkait dengan resource AML AI, seperti set data, konfigurasi mesin, model, dan lainnya. Semua penyimpanan sementara dan permanen Data Pelanggan, termasuk salinan input dan output, fitur ML yang dihasilkan, parameter hiper model, bobot model, dan hasil prediksi, dienkripsi menggunakan kunci CMEK dari instance yang sesuai.
Lihat persyaratan khusus layanan untuk mengetahui definisi data pelanggan, yang mungkin tidak mencakup ID resource, atribut, atau label data lainnya.
Mengenkripsi data input dan output
Konfigurasi enkripsi AML AI dalam instance hanya digunakan untuk resource AML AI dan datanya. AI AML tidak mengelola enkripsi data input atau output dalam project Google Cloud Anda. Jika ingin data ini dienkripsi menggunakan CMEK, Anda harus menyiapkan kunci Cloud KMS agar cocok dengan tingkat perlindungan kunci yang dipilih dan dikonfigurasi di set data BigQuery. Anda juga dapat menggunakan kembali kunci yang sama dengan yang digunakan oleh AI AML.
Baca selengkapnya tentang enkripsi di BigQuery.
Rotasi kunci
Memutar kunci secara berkala dan otomatis adalah praktik keamanan yang direkomendasikan. Dengan CMEK, rotasi kunci dikontrol oleh Anda. Saat Anda merotasi kunci, data yang dienkripsi dengan versi kunci sebelumnya tidak akan otomatis dienkripsi ulang dengan versi kunci baru.
Satu resource AI AML dapat disimpan secara internal sebagai beberapa unit. Jika, selama masa aktif resource AI AML, versi kunci dirotasi, tidak semua unit dapat dienkripsi dengan versi kunci yang sama.
Jika Anda merotasi kunci, tidak ada cara di AML AI untuk memaksa enkripsi ulang atau menentukan apakah versi kunci lama aman untuk dihapus.
Baca selengkapnya tentang rotasi kunci dengan Cloud KMS.
Membuat kunci dan memberikan izin
Petunjuk berikut menjelaskan cara membuat kunci untuk instance dan memberikan izin untuk mengenkripsi dan mendekripsi data instance dengan kunci tersebut. Anda dapat menggunakan kunci yang dibuat langsung di Cloud KMS atau kunci yang dikelola secara eksternal yang Anda sediakan dengan Cloud External Key Manager.
Di project Google Cloud tempat Anda ingin mengelola kunci:
Buat ring kunci menggunakan metode
projects.locations.keyRings.create
. Lokasi key ring Cloud KMS harus cocok dengan lokasi instance yang Anda enkripsi.REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
KMS_PROJECT_ID
: project ID Google Cloud untuk project yang berisi ring kunciLOCATION
: lokasi key ring; gunakan salah satu wilayah yang didukungMenampilkan lokasius-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
australia-southeast1
KEY_RING_ID
: ID yang ditentukan pengguna untuk key ring
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=KEY_RING_ID"PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=KEY_RING_ID" | Select-Object -Expand ContentAnda akan melihat respons JSON seperti berikut:
{ "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID", "createTime": "2023-03-14T15:52:55.358979323Z" }
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
KMS_PROJECT_ID
: project ID Google Cloud untuk project yang berisi ring kunciLOCATION
: lokasi key ring; gunakan salah satu wilayah yang didukungMenampilkan lokasius-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
australia-southeast1
KEY_RING_ID
: ID yang ditentukan pengguna untuk key ring
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud kms keyrings create KEY_RING_ID \ --project KMS_PROJECT_ID --location LOCATION
Windows (PowerShell)
gcloud kms keyrings create KEY_RING_ID ` --project KMS_PROJECT_ID --location LOCATION
Windows (cmd.exe)
gcloud kms keyrings create KEY_RING_ID ^ --project KMS_PROJECT_ID --location LOCATION
$
Buat kunci menggunakan metode
projects.locations.keyRings.cryptoKeys
.REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
KMS_PROJECT_ID
: project ID Google Cloud untuk project yang berisi ring kunciLOCATION
: lokasi key ring; gunakan salah satu wilayah yang didukungMenampilkan lokasius-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
australia-southeast1
KEY_RING_ID
: ID yang ditentukan pengguna untuk key ringKEY_ID
: ID yang ditentukan pengguna untuk kunci
Meminta isi JSON:
{ "purpose": "ENCRYPT_DECRYPT" }
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' { "purpose": "ENCRYPT_DECRYPT" } 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://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys?crypto_key_id=KEY_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:@' { "purpose": "ENCRYPT_DECRYPT" } '@ | 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://cloudkms.googleapis.com/v1/projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys?crypto_key_id=KEY_ID" | Select-Object -Expand ContentAnda akan melihat respons JSON seperti berikut:
{ "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID", "primary": { "name": "projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID/cryptoKeyVersions/1", "state": "ENABLED", "createTime": "2023-03-14T15:52:55.358979323Z", "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION", "generateTime": "2023-03-14T15:52:55.358979323Z" }, "purpose": "ENCRYPT_DECRYPT", "createTime": "2023-03-14T15:52:55.358979323Z", "versionTemplate": { "protectionLevel": "SOFTWARE", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "destroyScheduledDuration": "86400s" }
gcloud
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
KMS_PROJECT_ID
: project ID Google Cloud untuk project yang berisi ring kunciLOCATION
: lokasi key ring; gunakan salah satu wilayah yang didukungMenampilkan lokasius-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
australia-southeast1
KEY_RING_ID
: ID yang ditentukan pengguna untuk key ringKEY_ID
: ID yang ditentukan pengguna untuk kunci
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud kms keys create KEY_ID \ --keyring KEY_RING_ID \ --project KMS_PROJECT_ID \ --location LOCATION \ --purpose "encryption"
Windows (PowerShell)
gcloud kms keys create KEY_ID ` --keyring KEY_RING_ID ` --project KMS_PROJECT_ID ` --location LOCATION ` --purpose "encryption"
Windows (cmd.exe)
gcloud kms keys create KEY_ID ^ --keyring KEY_RING_ID ^ --project KMS_PROJECT_ID ^ --location LOCATION ^ --purpose "encryption"
$
Jika Anda belum membuat instance AML AI di project AML AI, akun layanan AML AI belum ada. Buat akun layanan.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
PROJECT_ID
: project ID Google Cloud untuk project tempat AML AI berjalan
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID
Windows (PowerShell)
gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID
Windows (cmd.exe)
gcloud beta services identity create --service=financialservices.googleapis.com --project=PROJECT_ID
Anda akan melihat respons seperti berikut:
Service identity created: service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com
Berikan peran IAM CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) ke akun layanan AML AI. Berikan izin ini pada kunci yang Anda buat.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
PROJECT_ID
: project ID Google Cloud untuk project tempat AML AI berjalanKEY_ID
: ID yang ditentukan pengguna untuk kunciLOCATION
: lokasi key ring; gunakan salah satu wilayah yang didukungMenampilkan lokasius-central1
us-east1
asia-south1
europe-west1
europe-west2
europe-west4
northamerica-northeast1
southamerica-east1
australia-southeast1
KEY_RING_ID
: ID yang ditentukan pengguna untuk key ringPROJECT_NUMBER
: nomor project Google Cloud untuk project tempat AI AML berjalan
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID \ --location LOCATION --keyring=KEY_RING_ID \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Windows (PowerShell)
gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID ` --location LOCATION --keyring=KEY_RING_ID ` --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com ` --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Windows (cmd.exe)
gcloud kms keys add-iam-policy-binding KEY_ID --project=PROJECT_ID ^ --location LOCATION --keyring=KEY_RING_ID ^ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com ^ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Anda akan melihat respons seperti berikut:
Updated IAM policy for key KEY_ID. bindings: - members: - serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwYCq0Sq4Ho= version: 1
Untuk informasi selengkapnya tentang perintah ini, lihat dokumentasi gcloud kms keys add-iam-policy-binding.
Sekarang Anda dapat membuat instance dan menentukan kunci yang akan digunakan untuk enkripsi.
Menghapus akses
Ada beberapa cara untuk menghapus akses ke kunci dari instance terenkripsi CMEK:
- Cabut peran Pengenkripsi/Pendekripsi Cloud KMS dari akun layanan AML AI menggunakan konsol Google Cloud atau gcloud CLI
- Menonaktifkan kunci CMEK untuk sementara
- Menghancurkan kunci CMEK secara permanen
Sebaiknya cabut izin dari akun layanan AML AI sebelum menonaktifkan atau menghancurkan kunci. Perubahan pada izin disebarkan dalam hitungan detik, sehingga Anda dapat mengamati dampak penonaktifan atau penghancuran kunci.
Saat menonaktifkan atau menghancurkan kunci enkripsi untuk instance, Anda kehilangan kemampuan untuk menggunakan atau mengambil data pelanggan yang terkait dengan instance tersebut. Semua data pelanggan yang disimpan di instance tidak dapat diakses, termasuk model, konfigurasi mesin, hasil pengujian balik, dan hasil prediksi. Pengguna dengan peran penampil AML AI apa pun masih dapat melihat kolom seperti nama instance atau kolom resource lainnya yang ditampilkan dengan mengambil resource AML AI.
Setiap operasi yang menggunakan atau mengekspor data pelanggan, misalnya mengekspor
metadata backtestResults
, akan gagal.
Pengguna dengan peran AML AI Administrator atau peran Pemilik dapat menghapus instance.
Kebijakan organisasi CMEK
AI AML tidak mendukung
kebijakan organisasi CMEK. Namun,
AML AI selalu memerlukan penggunaan CMEK, terlepas dari
kebijakan organisasi constraints/gcp.restrictNonCmekServices
.
Interaksi dengan VPC-SC
Jika Anda telah mengonfigurasi AML AI di dalam perimeter VPC-SC, kunciCMEK harus tetap dapat diakses oleh akun layanan. Jika kunci tidak berada di dalam perimeter VPC-SC yang sama, ada beberapa cara untuk melakukannya, termasuk:
- Menggunakan aturan keluar untuk mengizinkan resource
- Menggunakan peering perimeter VPC
Apa langkah selanjutnya?
- Membuat instance
- Pelajari CMEK lebih lanjut