Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee Hybrid.
Baca dokumentasi Apigee Edge.
Bagian ini menjelaskan jenis-jenis kunci enkripsi dan cara membuatnya.
Selama proses penyiapan Apigee, Anda membuat kunci enkripsi Cloud Key Management Service berikut:
Jenis Kunci | Saat Dibuat | Deskripsi |
---|---|---|
Kunci enkripsi bidang kontrol |
Langkah 3: Buat organisasi (Langganan) Langkah 3: Konfigurasi hosting dan enkripsi (Bayar sesuai penggunaan) |
Saat menggunakan residensi data, Apigee menggunakan kunci ini untuk mengenkripsi data Analytics yang disimpan di BigQuery dalam project tenant. Mengenkripsi proxy API, Server Target, Truststore dan Keystore, data analisis, dan apa pun yang dibagikan di seluruh runtime. Apigee akan meminta Anda 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 |
Langkah 3: Buat organisasi (Langganan) Langkah 3: Konfigurasi hosting dan enkripsi (Bayar sesuai penggunaan) |
Saat menggunakan residensi data, Apigee memerlukan satu kunci region, selain kunci enkripsi bidang 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 bidang kontrol. |
Kunci enkripsi database runtime |
Langkah 3: Buat organisasi Apigee (Langganan) Langkah 3: Konfigurasi hosting dan enkripsi (Bayar sesuai penggunaan) |
Mengenkripsi data aplikasi seperti KVMs, cache, dan rahasia klien, yang kemudian disimpan dalam database. Ada satu kunci enkripsi database runtime per organisasi. Semua instance/region di 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-regional (seperti Lokasi kunci enkripsi database runtime harus berada dalam lokasi bidang kontrol saat menggunakan residensi data. Pemilihan lokasi key ring bergantung pada jenis penginstalan yang Anda gunakan: wizard penyediaan Apigee tidak memungkinkan Anda memilih lokasi key ring; alat ini memilih lokasi untuk Anda. Jika menggunakan command line, Anda dapat memilih lokasi key ring. |
Kunci enkripsi disk |
Langkah 5: Buat instance runtime Apigee (Langganan) Langkah 3: Konfigurasi hosting dan enkripsi (Bayar sesuai penggunaan) |
Mengenkripsi data instance runtime sebelum ditulis ke disk. Jenis data yang dienkripsi mencakup Key Management System (KMS); Key Value Maps (KVM); definisi kuota, bucket, dan penghitung; 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 disk sendiri. |
Poin utama
Perhatikan hal-hal berikut saat membuat kunci enkripsi database disk dan database runtime:
- Lokasi kunci enkripsi database runtime Apigee mendukung semua lokasi Cloud KMS yang mendukung Cloud HSM dan Cloud EKM.
- Lokasi kunci enkripsi disk harus sesuai dengan lokasi instance runtime tempat kunci tersebut digunakan.
- Setelah disetel, Anda tidak dapat mengubah lokasi salah satu tombol.
- Semua kunci harus berada dalam key ring.
- Kunci dengan jenis yang berbeda harus berada dalam key ring yang 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 Enkripsi/dekripsi simetris 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 menampilkan daftar 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 Anda di Konsol Google Cloud.
Membuat kunci baru pada command line
Anda dapat membuat key ring dan key di command line atau di Konsol Google Cloud.
Setiap jenis kunci harus memiliki key ring-nya 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 kepada Agen Layanan Apigee untuk menggunakan kunci baru tersebut. Buat key ring 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 key ring untuk bidang kontrol, dan key ring 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: ID project 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: ID project 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: ID project Google Cloud.
Pastikan key ring disk disetel ke lokasi yang sama dengan instance. Setiap instance dan key ring 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 key ring untuk bidang kontrol, dan key ring 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: ID project 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: ID project 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: ID project Google Cloud.
Perintah ini membuat kunci dan menambahkannya ke key ring.
Saat Anda merujuk ke kunci, gunakan ID kunci.
-
Berikan akses kepada Agen Layanan Apigee untuk menggunakan kunci baru menggunakan perintah
gcloud kms keys add-iam-policy-binding
:Bidang kontrol
Jika residensi data diaktifkan, buat key ring untuk bidang kontrol, dan key ring 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: ID project 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: ID project 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: ID project Google Cloud.
Perintah ini mengikat kunci ke Agen Layanan Apigee.
Setelah berhasil menyelesaikan permintaan ini,
gcloud
akan merespons dengan sesuatu yang mirip dengan berikut: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 key ring harus unik untuk organisasi Anda. Jika Anda membuat region tambahan, nama key ring untuk region tersebut tidak boleh sama dengan nama key ring yang sudah 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 mana pun yang mendukung Cloud HSM dan Cloud EKM. UI tidak memungkinkan Anda memilih lokasi lain untuk kunci tersebut, sehingga lokasi 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 tersebut, lalu memilih Copy Resource Name.
Mendapatkan ID kunci
Saat merujuk ke resource Cloud Key Management Service menggunakan Cloud KMS API atau Google Cloud CLI, artinya Anda menggunakan ID resource. Anda bisa mendapatkan ID kunci dengan perintah
gcloud kms keys list
:
Bidang kontrol
Jika residensi data diaktifkan, ada key ring untuk bidang kontrol, dan satu lagi 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 (serupa 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 (serupa 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 (serupa 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 mengetahui informasi selengkapnya, lihat Mendapatkan ID resource Cloud KMS.