Mengenkripsi data dengan kunci enkripsi yang dikelola pelanggan

Secara default, Secure Source Manager mengenkripsi konten pelanggan dalam penyimpanan. Secure Source Manager menangani enkripsi untuk Anda tanpa 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 Secure Source Manager. 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 melacak penggunaan kunci, melihat log audit, dan mengontrol siklus proses kunci. Bukan Google yang memiliki dan mengelola kunci enkripsi kunci (KEK) simetris yang melindungi data Anda. Andalah yang mengontrol dan mengelola kunci ini di Cloud KMS.

Setelah Anda menyiapkan resource dengan CMEK, pengalaman mengakses resource Secure Source Manager Anda akan serupa dengan menggunakan enkripsi default Google. Untuk mengetahui informasi selengkapnya tentang opsi enkripsi, lihat Kunci enkripsi yang dikelola pelanggan (CMEK).

Cloud KMS dapat berjalan dalam project terpisah tempat Anda mengelola kunci secara terpusat untuk beberapa project, atau project yang sama Google Cloud dengan Secure Source Manager. Untuk mendukung pemisahan tugas dan kontrol yang lebih besar atas akses ke kunci, sebaiknya buat dan kelola kunci dalam project terpisah yang tidak menyertakan resource lain Google Cloud.

Anda menetapkan kunci Cloud KMS saat membuat instance. Anda tidak dapat mengubah mekanisme enkripsi instance yang ada. Jika memiliki instance yang dienkripsi CMEK, Anda tidak dapat mengubah mekanisme enkripsi ke enkripsi default Google atau menetapkan kunci Cloud Key Management Service yang berbeda untuk enkripsi.

Instance harus dibuat di lokasi yang sama dengan kunci Cloud KMS.

CMEK dengan Cloud KMS Autokey

Anda dapat membuat CMEK secara manual untuk melindungi resource Secure Source Manager atau menggunakan Cloud KMS Autokey. Dengan Autokey, key ring dan kunci dibuat sesuai permintaan untuk mendukung pembuatan resource di Secure Source Manager. Agen layanan yang menggunakan kunci untuk operasi enkripsi dan dekripsi dibuat jika belum ada dan diberi peran Identity and Access Management (IAM) yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Ringkasan Autokey.

Kuota Cloud KMS dan Secure Source Manager

Saat Anda menggunakan CMEK di Secure Source Manager, project Anda dapat memakai kuota permintaan kriptografis Cloud KMS. Instance yang dienkripsi CMEK menggunakan kuota ini pada waktu pembuatan. 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 mengetahui informasi selengkapnya, lihat Kuota Cloud KMS.

Membuat kunci CMEK dan memberikan izin

Petunjuk berikut menjelaskan cara membuat kunci dan memberikan izin akun layanan Secure Source Manager pada kunci.

  1. Buat kunci Cloud KMS:

    Secara manual

    1. Di Google Cloud project 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 project tempat Anda ingin membuat instance Secure Source Manager.

    Menggunakan Autokey

    1. Jika Anda belum melakukannya, aktifkan Cloud KMS Autokey.

    2. Buat Cloud KMS Autokey KeyHandle baru:

      curl -H "Content-Type: application/json" \
          -H "X-Goog-User-Project: PROJECT" \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -X POST https://cloudkms.googleapis.com/v1/projects/PROJECT/locations/LOCATION/keyHandles \
          -d '{"resource_type_selector": "securesourcemanager.googleapis.com/Instance"}'
      

      Ganti kode berikut:

      • PROJECT: project ID project tempat Cloud KMS Autokey diaktifkan dan tempat Anda ingin men-deploy instance Secure Source Manager
      • LOCATION: lokasi KeyHandle. Lokasi ini harus cocok dengan lokasi tempat Anda ingin men-deploy instance Secure Source Manager

      Outputnya mirip dengan hal berikut ini:

      {
        "name": "projects/PROJECT/locations/LOCATION/operations/OPERATION",
        "metadata": {
          "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
        }
      }
      

      Catat OPERATION dari output. Anda memerlukan nilai ini untuk mendapatkan ID resource kunci yang dibuat.

    3. Temukan kunci Cloud KMS yang terkait dengan key handle:

      curl -H "X-Goog-User-Project: PROJECT" \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -X GET https://cloudkms.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION
      

      Ganti kode berikut:

      • PROJECT: project ID project tempat Cloud KMS Autokey diaktifkan dan tempat Anda ingin men-deploy instance Secure Source Manager
      • LOCATION: lokasi KeyHandle. Lokasi ini harus cocok dengan lokasi tempat Anda ingin men-deploy instance Secure Source Manager
      • OPERATION: ID operasi permintaan key handle dari output langkah sebelumnya

      Outputnya mirip dengan hal berikut ini:

      {
        "name": "projects/PROJECT/locations/LOCATION/operations/OPERATION",
        "done": true,
        "response": {
          "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
          "name": "projects/PROJECT/locations/LOCATION/keyHandles/KEY_HANDLE",
          "kmsKey": "projects/PROJECT/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
          "resourceTypeSelector": "securesourcemanager.googleapis.com/Instance"
        }
      }
      

      Nilai elemen kmsKey dalam output adalah ID resource lengkap kunci yang dibuat oleh Cloud KMS Autokey untuk resource ini. Anda dapat menggunakan ID resource ini dengan cara yang sama seperti menggunakan ID resource untuk resource Cloud KMS lainnya.

  2. Jika Anda membuat instance Secure Source Manager pertama di project, Anda harus membuat agen layanan Secure Source Manager secara manual dengan menjalankan perintah berikut:

    gcloud beta services identity create \
    --service=securesourcemanager.googleapis.com \
    --project=PROJECT
    

    Dengan PROJECT adalah project ID project tempat Anda akan membuat instance Secure Source Manager.

    Setelah membuat agen layanan Secure Source Manager, Anda harus memberikan peran Agen Layanan Secure Source Manager (roles/securesourcemanager.serviceAgent) ke pokok service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com atau pembuatan instance akan gagal.

  3. Berikan peran IAM Pengenkripsi/Pendekripsi CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) ke akun layanan Secure Source Manager. Berikan izin ini pada kunci yang Anda buat.

    Konsol

    1. Buka halaman Key management.

      Buka Key Management

    2. Pilih key ring yang ingin Anda gunakan, buka halaman Key ring details, lalu pilih kunci yang Anda buat.

    3. Berikan akses ke akun layanan Secure Source Manager:

      1. Klik ADD PRINCIPLE.
      2. Tambahkan akun layanan Secure Source Manager. Akun layanan adalah service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, dengan PROJECT-NUMBER adalah nomor project dari Google Cloud project tempat Secure Source Manager di aktifkan.
      3. Di Select a role, pilih Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
      4. Klik SAVE.
    4. Ulangi langkah sebelumnya untuk memberikan akses ke akun yang akan membuat instance Secure Source Manager.

    5. Kembali ke halaman Key management , pilih key ring Anda, lalu buka halaman Key ring details. Kemudian, pilih kunci lagi.

    6. Pilih SHOW INFO PANEL. Anda akan melihat peran di kolom Role/Member.

    gcloud

    1. Jalankan perintah berikut untuk memberikan akses ke akun layanan Secure Source Manager:

      gcloud kms keys add-iam-policy-binding [--project=PROJECT] \
             KEY_NAME --location LOCATION --keyring=KEY_RING \
             --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com \
             --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Ganti kode berikut:

      • PROJECT: ID project yang berisi kunci
      • KEY_NAME: nama kunci
      • LOCATION: lokasi kunci. Lokasi kunci harus cocok dengan lokasi project tempat Anda ingin men-deploy instance Secure Source Manager
      • KEY_RING: nama key ring
      • PROJECT_NUMBER: nomor project dari Google Cloud project dengan Secure Source Manager diaktifkan
    2. Ulangi langkah sebelumnya untuk memberikan akses ke akun yang akan membuat instance Secure Source Manager.

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

Hapus akses

Ada beberapa cara untuk menghapus akses ke repositori yang dienkripsi CMEK:

Sebaiknya cabut izin dari akun layanan Secure Source Manager sebelum menonaktifkan atau menghancurkan kunci. Perubahan pada izin akan konsisten dalam hitungan detik, sehingga Anda dapat mengamati dampak dari menonaktifkan atau menghancurkan kunci.

Saat Anda menonaktifkan atau menghancurkan kunci enkripsi untuk instance, Anda akan kehilangan kemampuan untuk melihat atau mengambil data dari instance. Semua data yang disimpan dalam instance menjadi tidak dapat diakses, termasuk histori kode, permintaan pull, dan masalah.

Pengguna dengan peran Secure Source Manager Instance Manager atau peran Instance Owner dapat menghapus instance.

Kebijakan organisasi CMEK

Secure Source Manager mendukung batasan kebijakan organisasi yang dapat mewajibkan perlindungan CMEK.

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

  • Jika Secure Source Manager API berada dalam daftar kebijakan layanan Deny dari batasan constraints/gcp.restrictNonCmekServices, Secure Source Manager akan menolak pembuatan instance baru yang tidak dilindungi CMEK.

  • Jika constraints/gcp.restrictCmekCryptoKeyProjects dikonfigurasi, Secure Source Manager akan membuat instance yang dilindungi CMEK yang dilindungi oleh CryptoKey dari project, folder, atau organisasi yang diizinkan.

Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi kebijakan organisasi, lihat Kebijakan organisasi CMEK.

Apa langkah selanjutnya?