Halaman ini menjelaskan cara mengenkripsi konten yang disimpan di repositori dengan kunci enkripsi yang dikelola pelanggan (CMEK).
Ringkasan
Secara default, Artifact Registry mengenkripsi konten pelanggan dalam penyimpanan. Artifact Registry menangani enkripsi untuk Anda tanpa perlu tindakan tambahan dari Anda. Opsi ini disebut enkripsi default Google.
Jika ingin mengontrol kunci enkripsi, Anda dapat menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) di Cloud KMS dengan layanan yang terintegrasi dengan CMEK, termasuk Artifact Registry. Dengan menggunakan kunci Cloud KMS, Anda dapat mengontrol tingkat perlindungan, lokasi, jadwal rotasi, izin penggunaan dan akses, serta batasan kriptografisnya. Dengan Cloud KMS, Anda juga dapat melihat log audit dan mengontrol siklus proses kunci. Alih-alih Google yang memiliki dan mengelola kunci enkripsi kunci (KEK) simetris yang melindungi data Anda, Anda yang mengontrol dan mengelola kunci ini di Cloud KMS.
Setelah Anda menyiapkan resource dengan CMEK, pengalaman mengakses resource Artifact Registry Anda mirip dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).
Anda menetapkan kunci CMEK saat membuat repositori. Anda tidak dapat mengubah mekanisme enkripsi repositori yang ada. Jika Anda memiliki repositori yang dienkripsi CMEK, Anda tidak dapat mengubah mekanisme enkripsi untuk menggunakan kunci enkripsiyang didukung Google Cloud atau menetapkan kunci Cloud KMS yang berbeda untuk enkripsi.
Untuk mengetahui informasi selengkapnya tentang CMEK secara umum, termasuk waktu dan alasan mengaktifkannya, lihat Ringkasan CMEK.
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 Trusted Cloud tempat Anda ingin mengelola kunci:
Buat key ring dan kunci menggunakan salah satu opsi berikut:
Jika Anda belum membuat repositori di project Artifact Registry, akun layanan Artifact Registry tidak 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 berjalan.
Berikan peran IAM Pengenkripsi/Pendekripsi CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) ke akun layanan Artifact Registry. Beri 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 layanan adalah service-PROJECT-NUMBER@gcp-sa-artifactregistry.s3ns-system.iam.gserviceaccount.com, dengan PROJECT-NUMBER adalah nomor project dari project Trusted Cloud tempat Artifact Registry berjalan.
- Di Pilih peran, pilih Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
- Klik SIMPAN.
Ulangi langkah sebelumnya untuk memberikan akses ke akun yang akan membuat repositori.
Kembali ke halaman Key management dan pilih kunci lagi.
Pilih SHOW INFO PANEL. 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.s3ns-system.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter
Di mana
- PROJECT adalah ID project yang berisi kunci.
- KEY adalah nama kunci.
- LOCATION adalah lokasi kunci.
- KEYRING adalah nama key ring.
- PROJECT-NUMBER adalah nomor project dari project Trusted 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.
Selanjutnya, buat repositori dan tentukan kunci yang akan digunakan untuk enkripsi.
Menghapus akses
Ada beberapa cara untuk menghapus akses ke repositori yang dienkripsi CMEK:
- Cabut peran Pengenkripsi/Pendekripsi CryptoKey Cloud KMS dari akun layanan Artifact Registry menggunakan salah satu metode berikut:
- Menonaktifkan Kunci enkripsi yang dikelola pelanggan untuk sementara
- Hancurkan kunci CMEK secara permanen
Sebaiknya batalkan izin dari akun layanan Artifact Registry sebelum menonaktifkan atau menghapus kunci. Perubahan pada izin akan konsisten dalam hitungan detik, sehingga Anda dapat mengamati dampak penonaktifan atau penghancuran kunci.
Jika Anda menonaktifkan atau menghancurkan kunci enkripsi untuk repositori, Anda akan kehilangan
kemampuan untuk melihat atau mengambil data artefak. Semua data artefak yang disimpan di repositori menjadi tidak dapat diakses, termasuk artefak yang dibuat, data biner arbitrer (blob), dan manifes seperti manifes Docker atau file packument npm.
Pengguna dengan peran Pembaca Artifact Registry (roles/artifactregistry.reader
) atau peran Pelihat (roles/artifactregistry.viewer
) masih dapat melihat metadata artefak seperti nama, versi, atau tag artefak.
Pengguna dengan peran Administrator Artifact Registry
(roles/artifactregistry.admin
)
atau peran Pemilik (roles/owner
) dapat menghapus repositori.
Kebijakan organisasi CMEK
Artifact Registry mendukung batasan kebijakan organisasi yang dapat mewajibkan perlindungan CMEK.
Kebijakan dapat membatasi CryptoKey Cloud KMS yang dapat digunakan untuk perlindungan CMEK.
Jika Artifact Registry API tercantum dalam daftar kebijakan layanan
Deny
untuk batasanconstraints/gcp.restrictNonCmekServices
, Artifact Registry akan menolak pembuatan repositori baru yang tidak dilindungi CMEK.Jika
constraints/gcp.restrictCmekCryptoKeyProjects
dikonfigurasi, Artifact Registry akan membuat repositori yang dilindungi CMEK yang dilindungi oleh CryptoKey dari project, folder, atau organisasi yang diizinkan.
Pub/Sub mendukung batasan yang sama. Saat Anda mengaktifkan
Artifact Registry API dalam project Trusted Cloud by S3NS , Artifact Registry
akan mencoba membuat topik Pub/Sub secara otomatis dengan ID topik
gcr
menggunakan kunci enkripsi yang didukung Google Cloud . Namun, jika Pub/Sub API berada dalam
daftar kebijakan Deny
untuk batasan
constraints/gcp.restrictNonCmekServices
, maka
Pub/Sub tidak akan membuat topik. Dalam skenario ini, Anda harus
membuat topik gcr
dengan enkripsi CMEK. Untuk mengetahui informasi selengkapnya, lihat petunjuk Pub/Sub untuk mengenkripsi topik.
Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi kebijakan organisasi, lihat Kebijakan organisasi CMEK.
Apa langkah selanjutnya?
- Buat repositori yang dienkripsi dengan CMEK
- Pelajari CMEK lebih lanjut