Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee Hybrid.
Lihat dokumentasi Apigee Edge.
Bagian ini menjelaskan jenis kunci enkripsi dan cara membuatnya.
Selama proses penyiapan Apigee, Anda akan membuat kunci enkripsi Cloud Key Management Service berikut:
Jenis Kunci | Saat Dibuat | Deskripsi |
---|---|---|
Kunci enkripsi bidang kontrol |
Konsol Google Cloud:
Antarmuka command line (CLI): |
Saat menggunakan data residency, Apigee menggunakan kunci ini untuk mengenkripsi data Analytics yang disimpan di BigQuery di dalam project tenant. Mengenkripsi proxy API, Server Target, Truststore, dan Keystore, data analitik, dan apa pun yang dibagikan di seluruh runtime. Apigee akan meminta Anda untuk memberikan dua kunci CMEK bidang kontrol. Kunci ini, dan kunci enkripsi data konsumen API. Lokasi kunci enkripsi bidang kontrol harus cocok dengan lokasi bidang kontrol. |
Kunci enkripsi data konsumen API |
Konsol Google Cloud:
Antarmuka command line (CLI): |
Saat menggunakan data residency, Apigee memerlukan satu kunci region, selain kunci enkripsi platform kontrol, yang digunakan untuk layanan yang hanya tersedia di satu region. Misalnya, Dataflow, dan Cloud SQL. Lokasi kunci enkripsi data konsumen API harus berada dalam lokasi platform kontrol. |
Kunci enkripsi database runtime |
Konsol Google Cloud:
Antarmuka command line (CLI): |
Mengenkripsi data aplikasi seperti KVM, cache, dan secret klien, yang kemudian disimpan dalam database. Ada satu kunci enkripsi database runtime per organisasi — semua instance/region dalam organisasi memiliki kunci enkripsi database runtime yang sama.
Kunci enkripsi database runtime mendukung semua lokasi Cloud KMS yang mendukung Cloud HSM dan Cloud EKM. Google merekomendasikan
penggunaan
lokasi multi-region (seperti Lokasi kunci enkripsi database runtime harus berada dalam lokasi platform kontrol saat menggunakan retensi data. |
Kunci enkripsi disk |
Konsol Google Cloud:
Antarmuka command line (CLI): |
Mengenkripsi data instance runtime sebelum ditulis ke disk. Jenis data yang dienkripsi mencakup Key Management System (KMS); Key Value Maps (KVM); definisi, bucket, dan penghitung kuota; serta semua data yang di-cache. Data KMS mencakup produk API, developer, aplikasi developer, token OAuth (termasuk token akses, token refresh, dan kode otorisasi), serta kunci API. Kunci ini berada di region yang sama dengan instance runtime; saat membuat kunci baru, cocokkan lokasi kunci dengan lokasi instance runtime Anda. Setiap kombinasi instance/region memiliki kunci enkripsi disknya sendiri. |
Poin utama
Perhatikan hal-hal berikut saat membuat kunci enkripsi database disk dan runtime:
- Lokasi kunci enkripsi database runtime Apigee mendukung semua lokasi Cloud KMS yang mendukung Cloud HSM dan Cloud EKM.
- Lokasi kunci enkripsi disk harus cocok dengan lokasi instance runtime tempat kunci digunakan.
- Setelah ditetapkan, Anda tidak dapat mengubah lokasi salah satu kunci.
- Semua kunci harus berada dalam gantungan kunci.
- Kunci dari berbagai jenis harus berada dalam key ring terpisah; kunci enkripsi disk tidak boleh berada dalam key ring yang sama dengan kunci enkripsi database runtime Anda.
-
Kunci harus memiliki
purpose
. Jika Anda menggunakan command line untuk membuat kunci baru, tetapkanpurpose
keencryption
. Jika Anda menggunakan konsol Google Cloud, pilih Symmetric encrypt/decrypt untuk tujuan tersebut. - Kunci ditentukan oleh jalur kunci, yang menggunakan pola
berikut:
projects/PROJECT_ID/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME
Mencantumkan kunci yang ada
Jika sudah membuat kunci enkripsi Cloud KMS baru untuk Apigee, Anda dapat menggunakannya, bukan membuat kunci baru selama penyiapan.
Untuk mencantumkan semua kunci KMS dalam key ring:
Jalankan perintah
gcloud kms keys list
:
gcloud kms keys list --keyring KEY_RING_NAME --location KEY_RING_LOCATION
Ganti kode berikut:
-
KEY_RING_NAME: nama key ring. Misalnya,
my-key-ring
. -
KEY_RING_LOCATION: lokasi fisik key ring,
Misalnya,
us-west1
.
Atau, Anda dapat melihat kunci di konsol Google Cloud.
Membuat kunci baru di command line
Anda dapat membuat ring kunci dan kunci di command line atau di konsol Google Cloud.
Setiap jenis kunci harus memiliki gantungan kuncinya sendiri. Misalnya, kunci enkripsi disk Anda dapat disimpan dalam satu key ring, tetapi kunci enkripsi database runtime Anda harus disimpan dalam key ring terpisah.
Langkah-langkah berikut menjelaskan cara membuat key ring dan kunci, serta cara memberikan akses bagi Agen Layanan Apigee untuk menggunakan kunci baru. Buat ring kunci dan kunci untuk bidang kontrol (jika menggunakan residensi data), database runtime, dan disk runtime.
-
Buat key ring baru menggunakan perintah
gcloud kms keyrings create
:Bidang kontrol
Jika residensi data diaktifkan, buat ring kunci untuk platform kontrol, dan ring kunci lainnya untuk region data konsumen.
gcloud kms keyrings create CONTROL_PLANE_KEY_RING_NAME \ --location CONTROL_PLANE_LOCATION \ --project PROJECT_ID
gcloud kms keyrings create CONSUMER_DATA_KEY_RING_NAME \ --location CONSUMER_DATA_REGION \ --project PROJECT_ID
Ganti kode berikut:
- CONTROL_PLANE_KEY_RING_NAME: nama key ring bidang kontrol.
- CONTROL_PLANE_LOCATION: lokasi fisik tempat data bidang kontrol Apigee akan disimpan.
- PROJECT_ID: project ID Google Cloud.
- CONSUMER_DATA_KEY_RING_NAME: nama key ring data konsumen.
- CONSUMER_DATA_REGION: sub-region dari region bidang kontrol. Anda harus menentukan CONTROL_PLANE_LOCATION dan CONSUMER_DATA_REGION.
Database runtime
gcloud kms keyrings create RUNTIMEDB_KEY_RING_NAME \ --location RUNTIMEDB_KEY_LOCATION \ --project PROJECT_ID
Ganti kode berikut:
- RUNTIMEDB_KEY_RING_NAME: nama key ring database yang Anda buat.
- RUNTIMEDB_KEY_LOCATION: lokasi fisik key ring database.
- PROJECT_ID: project ID Google Cloud.
Lokasi kunci enkripsi Apigee mendukung semua lokasi Cloud KMS yang mendukung Cloud HSM dan Cloud EKM.
Disk runtime
gcloud kms keyrings create RUNTIMEDISK_KEY_RING_NAME \ --location RUNTIMEDISK_KEY_LOCATION \ --project PROJECT_ID
Ganti kode berikut:
- RUNTIMEDISK_KEY_RING_NAME: nama key ring disk yang Anda buat.
- RUNTIMEDISK_KEY_LOCATION: lokasi fisik key ring disk.
- PROJECT_ID: project ID Google Cloud.
Pastikan key ring disk ditetapkan ke lokasi yang sama dengan instance. Setiap instance dan ring kunci harus memiliki lokasinya sendiri.
gcloud kms keyrings list \ --location \ --project $PROJECT_ID
gcloud kms keyrings describe $DISK_KEY_RING_NAME \ --location \ --project $PROJECT_ID
-
Buat kunci menggunakan perintah
kms keys create
:Bidang kontrol
Jika residensi data diaktifkan, buat ring kunci untuk platform kontrol, dan ring kunci lainnya untuk region data konsumen.
gcloud kms keys create CONTROL_PLANE_KEY_NAME \ --keyring CONTROL_PLANE_KEY_RING_NAME \ --location CONTROL_PLANE_LOCATION \ --purpose "encryption" \ --project PROJECT_ID
gcloud kms keys create CONSUMER_DATA_KEY_NAME \ --keyring CONSUMER_DATA_KEY_RING_NAME \ --location CONSUMER_DATA_REGION \ --purpose "encryption" \ --project PROJECT_ID
Ganti kode berikut:
- CONTROL_PLANE_KEY_NAME: nama kunci bidang kontrol.
- CONTROL_PLANE_KEY_RING_NAME: nama key ring bidang kontrol.
- CONTROL_PLANE_LOCATION: lokasi fisik tempat data bidang kontrol Apigee akan disimpan.
- PROJECT_ID: project ID Google Cloud.
- CONSUMER_DATA_KEY_NAME: nama kunci data konsumen.
- CONSUMER_DATA_KEY_RING_NAME: nama key ring data konsumen.
- CONSUMER_DATA_REGION: sub-region dari region bidang kontrol. Anda harus menentukan CONTROL_PLANE_LOCATION dan CONSUMER_DATA_REGION.
Database runtime
gcloud kms keys create RUNTIMEDB_KEY_NAME \ --keyring RUNTIMEDB_KEY_RING_NAME \ --location RUNTIMEDB_KEY_LOCATION \ --purpose "encryption" \ --project PROJECT_ID
Ganti kode berikut:
- RUNTIMEDB_KEY_NAME: nama kunci database yang Anda buat.
- RUNTIMEDB_KEY_RING_NAME: nama key ring database yang Anda buat.
- RUNTIMEDB_KEY_LOCATION: lokasi fisik key ring database.
- PROJECT_ID: project ID Google Cloud.
Disk runtime
gcloud kms keys create RUNTIMEDISK_KEY_NAME \ --keyring RUNTIMEDISK_KEY_RING_NAME \ --location RUNTIMEDISK_KEY_LOCATION \ --purpose "encryption" \ --project PROJECT_ID
Ganti kode berikut:
- RUNTIMEDISK_KEY_NAME: nama kunci disk yang Anda buat.
- RUNTIMEDISK_KEY_RING_NAME: nama key ring disk yang Anda buat.
- RUNTIMEDISK_KEY_LOCATION: lokasi fisik key ring disk.
- PROJECT_ID: project ID Google Cloud.
Perintah ini membuat kunci dan menambahkannya ke key ring.
Saat Anda merujuk ke kunci, gunakan ID kunci.
-
Berikan akses bagi Agen Layanan Apigee untuk menggunakan kunci baru menggunakan perintah
gcloud kms keys add-iam-policy-binding
:Bidang kontrol
Jika residensi data diaktifkan, buat ring kunci untuk platform kontrol, dan ring kunci lainnya untuk region data konsumen.
gcloud kms keys add-iam-policy-binding CONTROL_PLANE_KEY_NAME \ --location CONTROL_PLANE_LOCATION \ --keyring CONTROL_PLANE_KEY_RING_NAME \ --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project PROJECT_ID
gcloud kms keys add-iam-policy-binding CONSUMER_DATA_KEY_NAME \ --location CONSUMER_DATA_REGION \ --keyring CONSUMER_DATA_KEY_RING_NAME \ --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com" \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project PROJECT_ID
Ganti kode berikut:
- CONTROL_PLANE_KEY_NAME: nama kunci bidang kontrol.
- CONTROL_PLANE_LOCATION: lokasi fisik tempat data bidang kontrol Apigee akan disimpan.
- CONTROL_PLANE_KEY_RING_NAME: nama key ring bidang kontrol.
- PROJECT_NUMBER: nomor project Google Cloud.
- PROJECT_ID: project ID Google Cloud.
- CONSUMER_DATA_KEY_NAME: nama kunci data konsumen.
- CONSUMER_DATA_REGION: sub-region dari region bidang kontrol. Anda harus menentukan CONTROL_PLANE_LOCATION dan CONSUMER_DATA_REGION.
- CONSUMER_DATA_KEY_RING_NAME: nama key ring data konsumen.
Database runtime
gcloud kms keys add-iam-policy-binding RUNTIMEDB_KEY_NAME \ --location RUNTIMEDB_KEY_LOCATION \ --keyring RUNTIMEDB_KEY_RING_NAME \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project PROJECT_ID
Ganti kode berikut:
- RUNTIMEDB_KEY_NAME: nama kunci database yang Anda buat.
- RUNTIMEDB_KEY_RING_NAME: nama key ring database yang Anda buat.
- RUNTIMEDB_KEY_LOCATION: lokasi fisik key ring database.
- PROJECT_NUMBER: nomor project Google Cloud.
- PROJECT_ID: project ID Google Cloud.
Disk runtime
gcloud kms keys add-iam-policy-binding RUNTIMEDISK_KEY_NAME \ --location RUNTIMEDISK_KEY_LOCATION \ --keyring RUNTIMEDISK_KEY_RING_NAME \ --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project PROJECT_ID
Ganti kode berikut:
- RUNTIMEDISK_KEY_NAME: nama kunci disk yang Anda buat.
- RUNTIMEDISK_KEY_RING_NAME: nama key ring disk yang Anda buat.
- RUNTIMEDISK_KEY_LOCATION: lokasi fisik key ring disk.
- PROJECT_NUMBER: nomor project Google Cloud.
- PROJECT_ID: project ID Google Cloud.
Perintah ini mengikat kunci ke Agen Layanan Apigee.
Setelah permintaan ini berhasil diselesaikan,
gcloud
akan merespons dengan sesuatu yang mirip dengan berikut ini:Updated IAM policy for key [runtime]. bindings: - members: - serviceAccount:service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com role: roles/cloudkms.cryptoKeyEncrypterDecrypter etag: BwWqgEuCuwk= version: 1
Jika Anda menerima error seperti berikut:
INVALID_ARGUMENT: Role roles/cloudkms.cryptokms.cryptoKeyEncrypterDecrypter is not supported for this resource.
Pastikan Anda menggunakan nomor project, bukan nama project, di alamat email akun layanan.
Untuk memverifikasi bahwa kunci terikat dengan Agen Layanan Apigee:
gcloud kms keys get-iam-policy $DISK_KEY_NAME \ --keyring $DISK_KEY_RING_NAME \ --location \ --project $PROJECT_ID
gcloud kms keys describe $DISK_KEY_NAME \ --keyring $DISK_KEY_RING_NAME \ --location \ --project $PROJECT_ID
Nama ring kunci harus unik untuk organisasi Anda. Jika Anda membuat region tambahan, nama key ring untuk region tersebut tidak boleh sama dengan nama key ring yang ada.
Membuat kunci baru menggunakan Konsol Google Cloud
Anda dapat membuat kunci baru menggunakan konsol, seperti yang dijelaskan dalam Membuat kunci enkripsi simetris.
Saat Anda menggunakan konsol untuk membuat kunci baru:
- Untuk kunci enkripsi database runtime, tetapkan lokasi ke lokasi Cloud KMS yang mendukung Cloud HSM dan Cloud EKM. UI tidak mengizinkan Anda memilih lokasi lain untuk kunci, sehingga akan cocok dengan yang Anda pilih di key ring.
- Setelah Anda membuat kunci, dapatkan jalur kunci di panel Cryptographic keys dengan mengklik More di samping kunci, lalu pilih Copy Resource Name.
Mendapatkan ID kunci
Saat merujuk ke resource Cloud Key Management Service menggunakan Cloud KMS API atau Google Cloud CLI, Anda menggunakan ID resource. Anda dapat
mendapatkan ID kunci dengan perintah
gcloud kms keys list
:
Bidang kontrol
Jika residensi data diaktifkan, akan ada ring kunci untuk platform kontrol, dan ring kunci lainnya untuk region data konsumen.
gcloud kms keys list \ --location=CONTROL_PLANE_LOCATION \ --keyring=CONTROL_PLANE_KEY_RING_NAME \ --project=PROJECT_ID
gcloud kms keys list \ --location=CONSUMER_DATA_REGION \ --keyring=CONSUMER_DATA_KEY_RING_NAME \ --project=PROJECT_ID
ID kunci memiliki sintaksis berikut (mirip dengan jalur file):
projects/PROJECT_ID/locations/CONTROL_PLANE_LOCATION/keyRings/CONTROL_PLANE_KEY_RING_NAME/cryptoKeys/CONTROL_PLANE_KEY_NAME
Database runtime
gcloud kms keys list \ --location=RUNTIMEDB_KEY_LOCATION \ --keyring=RUNTIMEDB_KEY_RING_NAME \ --project=PROJECT_ID
ID kunci memiliki sintaksis berikut (mirip dengan jalur file):
projects/PROJECT_ID/locations/RUNTIMEDB_KEY_LOCATION/keyRings/RUNTIMEDB_KEY_RING_NAME/cryptoKeys/RUNTIMEDB_KEY_NAME
Disk runtime
gcloud kms keys list \ --location=RUNTIMEDISK_KEY_LOCATION \ --keyring=RUNTIMEDISK_KEY_RING_NAME \ --project=PROJECT_ID
ID kunci memiliki sintaksis berikut (mirip dengan jalur file):
projects/PROJECT_ID/locations/RUNTIMEDISK_KEY_LOCATION/keyRings/RUNTIMEDISK_KEY_RING_NAME/cryptoKeys/RUNTIMEDISK_KEY_NAME
Contoh:
NAME: projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key PURPOSE: ENCRYPT_DECRYPT ALGORITHM: GOOGLE_SYMMETRIC_ENCRYPTION PROTECTION_LEVEL: SOFTWARE LABELS: PRIMARY_ID: 1 PRIMARY_STATE: ENABLED
Anda juga bisa mendapatkan ID kunci di konsol Google Cloud. Untuk informasi selengkapnya, lihat Mendapatkan ID resource Cloud KMS.