Halaman ini menjelaskan cara mengenkripsi konten yang disimpan di repositori dengan kunci enkripsi yang dikelola pelanggan (CMEK).
Ringkasan
Secara default, Google Cloud otomatis mengenkripsi data saat dalam penyimpanan menggunakan kunci enkripsi yang dikelola oleh Google. Jika Anda memiliki persyaratan kepatuhan atau peraturan khusus terkait kunci yang melindungi data, Anda dapat membuat repositori yang dienkripsi dengan kunci CMEK. Metadata tentang repositori, seperti nama repositori, dienkripsi dengan enkripsi default Google.
Saat Anda mengaktifkan CMEK, data dalam penyimpanan di repositori dienkripsi menggunakan kunci yang Anda kelola dalam Cloud Key Management Service. Anda dapat mengontrol akses ke kunci CMEK menggunakan Identity and Access Management. Jika Anda menonaktifkan kunci CMEK untuk sementara atau menghancurkan permanen kunci tersebut, data yang dienkripsi dengan kunci tersebut tidak dapat diakses.
CMEK memberi Anda kontrol atas lebih banyak aspek siklus proses dan pengelolaan kunci, tetapi juga menimbulkan biaya tambahan untuk layanan Cloud KMS. Repositori Artifact Registry dan resource Google Cloud lainnya yang dienkripsi dengan CMEK juga dapat memakai kuota Cloud KMS, bergantung pada jenis kunci yang Anda gunakan. Pastikan Anda memiliki kuota yang cukup untuk mengaktifkan enkripsi rahasia lapisan aplikasi bagi aplikasi dan alur kerja Anda.
Cloud KMS dapat berjalan di project Google Cloud yang sama dengan Artifact Registry atau dalam project terpisah tempat Anda mengelola kunci secara terpusat untuk beberapa project. Untuk mendukung pemisahan tugas dan kontrol yang lebih besar atas akses ke kunci, sebaiknya buat dan kelola kunci di project terpisah yang menyertakan resource Google Cloud lainnya.
Anda menetapkan kunci CMEK saat membuat repositori. Anda tidak dapat mengubah mekanisme enkripsi repositori yang ada. Jika memiliki repositori yang dienkripsi dengan CMEK, Anda tidak dapat mengubah mekanisme enkripsi ke enkripsi default Google atau menetapkan kunci Cloud KMS lain untuk enkripsi.
Untuk mengetahui informasi selengkapnya tentang CMEK secara umum, termasuk waktu dan alasan mengaktifkannya, lihat dokumentasi Cloud KMS.
Membuat kunci dan memberikan izin
Petunjuk berikut menjelaskan cara membuat kunci untuk repositori dan memberikan izin untuk mengenkripsi dan mendekripsi data repositori 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 key ring dan kunci menggunakan salah satu opsi berikut:
- Buat key ring dan kunci langsung di Cloud KMS.
- Gunakan kunci yang dikelola secara eksternal. Buat kunci eksternal, lalu buat kunci Cloud EKM untuk membuat kunci tersebut tersedia melalui Cloud KMS.
Lokasi kunci Cloud KMS harus cocok dengan lokasi repositori repositori yang akan Anda enkripsi.
Jika Anda belum membuat repositori dalam project Artifact Registry, akun layanan Artifact Registry belum ada. Untuk membuat akun layanan, jalankan perintah berikut:
gcloud beta services identity create --service=artifactregistry.googleapis.com --project=PROJECT
Ganti PROJECT dengan ID project tempat Artifact Registry dijalankan.
Berikan peran IAM CryptoKey Encrypter/Decrypter (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) ke akun layanan Artifact Registry. Berikan izin ini pada kunci yang Anda buat.Konsol
Buka halaman Kunci kriptografis.
Pilih kunci yang Anda buat.
Berikan akses ke akun layanan Artifact Registry:
- Pilih TAMPILKAN Panel INFO.
- Klik TAMBAHKAN ANGGOTA.
- Tambahkan akun layanan Artifact Registry. Akun layanannya adalah service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, dengan PROJECT-NUMBER sebagai nomor project project Google Cloud tempat Artifact Registry dijalankan.
- Pada bagian Select a role, pilih Cloud KMS > Cloud KMS Bigtable Encrypter/Decrypter.
- Klik SAVE.
Ulangi langkah sebelumnya untuk memberikan akses ke akun yang akan membuat repositori.
Kembali ke halaman Kunci kriptografis, lalu pilih kunci tersebut lagi.
Pilih TAMPILKAN Panel INFO. Anda akan melihat peran di kolom Peran/Anggota.
gcloud
Jalankan perintah berikut untuk memberikan akses ke akun layanan Artifact Registry:
gcloud kms keys add-iam-policy-binding [--project=PROJECT] \ KEY --location LOCATION --keyring=KEYRING \ --member serviceAccount:service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Dari mana
- PROJECT adalah ID project yang berisi kunci.
- KEY adalah nama kunci.
- LOCATION adalah lokasi utama. Lokasi kunci harus cocok dengan lokasi repositori repositori yang akan Anda enkripsi.
- KEYRING adalah nama key ring.
- PROJECT-NUMBER adalah nomor project project Google Cloud yang menjalankan Artifact Registry.
Ulangi langkah sebelumnya untuk memberikan akses ke akun yang akan membuat repositori.
Untuk mengetahui informasi selengkapnya tentang perintah ini, lihat dokumentasi gcloud kms keys add-iam-policy-binding.
Anda sekarang dapat membuat repositori dan menentukan kunci yang akan digunakan untuk enkripsi.
Menghapus akses
Ada beberapa cara untuk menghapus akses ke repositori yang dienkripsi CMEK:
- Cabut peran Pengenkripsi/Pendekripsi Cloud KMS Bigtable dari akun layanan Artifact Registry menggunakan Konsol Google Cloud atau gcloud CLI
- Nonaktifkan sementara kunci CMEK
- Menghancurkan secara permanen kunci CMEK
Sebaiknya cabut izin dari akun layanan Artifact Registry sebelum menonaktifkan atau menghancurkan kunci. Perubahan pada izin konsisten dalam hitungan detik, sehingga Anda dapat mengamati dampak dari penonaktifan atau pemusnahan kunci.
Jika Anda menonaktifkan atau menghancurkan kunci enkripsi untuk repositori, Anda tidak akan dapat melihat atau mengambil data artefak. Semua data artefak yang disimpan di repositori menjadi tidak dapat diakses, termasuk artefak build, data biner arbitrer (blob), dan manifes seperti manifes Docker atau file paket npm. Pengguna dengan peran atau peran Viewer Artifact Registry Reader masih dapat melihat metadata artefak seperti nama artefak, versi, atau tag.
Pengguna dengan peran Administrator atau peran Pemilik Artifact Registry dapat menghapus repositori.
Kebijakan organisasi CMEK
Artifact Registry mendukung batasan kebijakan organisasi yang dapat memerlukan perlindungan CMEK.
Kebijakan dapat membatasi Bigtable Cloud KMS yang dapat digunakan untuk perlindungan CMEK.
Jika Artifact Registry API tercantum dalam daftar kebijakan
Deny
untuk layanan batasanconstraints/gcp.restrictNonCmekServices
, Artifact Registry akan menolak untuk membuat repositori baru yang tidak dilindungi CMEK.Saat
constraints/gcp.restrictCmekCryptoKeyProjects
dikonfigurasi, Artifact Registry akan membuat repositori yang dilindungi CMEK yang dilindungi oleh Bigtable dari project, folder, atau organisasi yang diizinkan.
Pub/Sub mendukung batasan yang sama. Saat Anda mengaktifkan Artifact Registry API di project Google Cloud, Artifact Registry akan mencoba membuat topik Pub/Sub secara otomatis dengan ID topik gcr
menggunakan kunci enkripsi yang dikelola Google. Saat Pub/Sub API ada dalam daftar kebijakan Deny
untuk batasan constraints/gcp.restrictNonCmekServices
, Pub/Sub akan menolak membuat topik. Untuk membuat topik gcr
dengan enkripsi CMEK, lihat
petunjuk Pub/Sub untuk mengenkripsi topik.
Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi kebijakan organisasi, lihat kebijakan organisasi CMEK.
Apa langkah selanjutnya?
- Membuat repositori yang dienkripsi dengan CMEK
- Pelajari CMEK lebih lanjut
- Pelajari enkripsi default Google lebih lanjut