Mengaktifkan kunci enkripsi yang dikelola pelanggan

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 milik dan dikelola 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 menghancurkannya secara permanen, 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 menggunakan kuota Cloud KMS, bergantung pada jenis kunci yang Anda gunakan. Pastikan Anda memiliki kuota yang cukup untuk mengaktifkan enkripsi secret lapisan aplikasi untuk aplikasi dan alur kerja Anda.

Cloud KMS dapat berjalan di project Google Cloud yang sama dengan Artifact Registry atau di 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 Anda membuat dan mengelola kunci dalam 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 CMEK, Anda tidak dapat mengubah mekanisme enkripsi ke enkripsi default Google atau menetapkan kunci Cloud KMS yang berbeda 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.

  1. Di project Google Cloud tempat Anda ingin mengelola kunci:

    1. Aktifkan Cloud KMS API.

    2. Buat key ring dan kunci menggunakan salah satu opsi berikut:

      Lokasi kunci Cloud KMS harus cocok dengan lokasi repositori repositori yang akan Anda enkripsi.

  2. Jika Anda belum membuat repositori di 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 berjalan.

  3. Berikan peran IAM CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) ke akun layanan Artifact Registry. Berikan izin ini pada kunci yang Anda buat.

    Konsol

    1. Buka halaman Kunci kriptografis.

      Buka halaman Cloud KMS

    2. Pilih kunci yang Anda buat.

    3. Berikan akses ke akun layanan Artifact Registry:

      1. Pilih TAMPILKAN PANEL INFO.
      2. Klik TAMBAHKAN ANGGOTA.
      3. Tambahkan akun layanan Artifact Registry. Akun layanannya adalah service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com, dengan PROJECT-NUMBER adalah nomor project project Google Cloud tempat Artifact Registry berjalan.
      4. Di Select a role, pilih Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
      5. Klik SIMPAN.
    4. Ulangi langkah sebelumnya untuk memberikan akses ke akun yang akan membuat repositori.

    5. Kembali ke halaman Kunci kriptografis dan pilih kunci lagi.

    6. Pilih TAMPILKAN PANEL INFO. Anda akan melihat peran di kolom Peran/Anggota.

    gcloud

    1. 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 kunci. Lokasi kunci harus cocok dengan lokasi repositori repositori yang akan Anda enkripsi.
      • KEYRING adalah nama key ring.
      • PROJECT-NUMBER adalah nomor project dari project Google Cloud yang menjalankan Artifact Registry.
    2. Ulangi langkah sebelumnya untuk memberikan akses ke akun yang akan membuat repositori.

    Untuk informasi selengkapnya tentang perintah ini, lihat dokumentasi gcloud kms keys add-iam-policy-binding.

Sekarang Anda dapat membuat repositori dan menentukan kunci yang akan digunakan untuk enkripsi.

Menghapus akses

Ada beberapa cara untuk menghapus akses ke repositori terenkripsi 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 penonaktifan atau penghancuran kunci.

Jika 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 di-build, data biner arbitrer (blob), dan manifes seperti manifes Docker atau file paket npm. Pengguna dengan peran Artifact Registry Reader atau peran Viewer tetap dapat melihat metadata artefak seperti nama, versi, atau tag artefak.

Pengguna dengan peran Artifact Registry Administrator atau peran Pemilik dapat menghapus repositori.

Kebijakan organisasi CMEK

Artifact Registry mendukung batasan kebijakan organisasi yang dapat mewajibkan perlindungan CMEK.

Kebijakan dapat membatasi Cloud KMS CryptoKey mana yang dapat digunakan untuk perlindungan CMEK.

  • Jika Artifact Registry API tercantum dalam daftar kebijakan layanan Deny dari batasan constraints/gcp.restrictNonCmekServices, Artifact Registry akan menolak pembuatan repositori baru yang tidak dilindungi CMEK.

  • Saat 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 di project Google Cloud, Artifact Registry akan mencoba membuat topik Pub/Sub secara otomatis dengan ID topik gcr menggunakan kunci milik dan dikelola Google. Jika Pub/Sub API berada dalam daftar kebijakan Deny untuk batasan constraints/gcp.restrictNonCmekServices, Pub/Sub akan menolak untuk 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?