Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee Hybrid.
Baca dokumentasi
Apigee Edge.
Dokumen ini menjelaskan cara menginstal dan mengonfigurasi Apigee dari command line dengan peering VPC. Langkah-langkah ini berlaku untuk model harga Langganan dan Bayar sesuai penggunaan untuk organisasi berbayar dengan atau tanpa kemampuan data tetap.
Ringkasan langkah
Langkah-langkah penyediaannya adalah sebagai berikut:
- Langkah 1: Tentukan variabel lingkungan:
Siapkan
gcloud
dan tentukan variabel lingkungan. Google Cloud CLI mengelola autentikasi, konfigurasi lokal, alur kerja developer,dan interaksi dengan Google Cloud API. - Langkah 2: Aktifkan API: Apigee mengharuskan Anda mengaktifkan beberapa Google Cloud API.
- Langkah 3: Buat identitas layanan Apigee: Akun layanan ini digunakan oleh library klien Google Cloud untuk melakukan autentikasi dengan Google Cloud API.
- Langkah 4: Konfigurasi jaringan layanan: Jaringan layanan mengotomatiskan penyiapan konektivitas pribadi (menggunakan Peering Jaringan VPC) antara jaringan Anda dan Apigee.
- Langkah 5: Buat organisasi: Organisasi Apigee (terkadang disebut sebagai org) adalah penampung tingkat teratas di Apigee. Tindakan ini mencakup semua lingkungan dan grup lingkungan, pengguna, proxy API, dan resource terkait.
- Langkah 6: Buat instance runtime: Instance, atau runtime, adalah tempat project dan layanan terkait disimpan; instance ini menyediakan endpoint yang ditampilkan kepada pengguna untuk layanan Anda.
- Langkah 7: Membuat lingkungan: Proxy API harus di-deploy ke lingkungan, dan ditambahkan ke grup lingkungan, sebelum API yang dieksposnya dapat diakses melalui jaringan.
- Langkah 8: Konfigurasi pemilihan rute: Izinkan akses eksternal atau akses khusus internal ke API Anda.
- Langkah 9: Men-deploy proxy contoh: Uji penyediaan dengan men-deploy dan memanggil proxy API.
Langkah 1: Menentukan variabel lingkungan
Siapkan gcloud
dan tentukan variabel lingkungan untuk digunakan di langkah berikutnya:
- Pastikan Anda telah menyelesaikan persyaratan penyiapan yang tercantum di Sebelum memulai.
- Anda harus menginstal Cloud SDK. Jika Anda perlu menginstalnya, lihat Menginstal Cloud SDK.
- Lakukan inisialisasi Cloud SDK, seperti yang dijelaskan dalam Melakukan inisialisasi gcloud CLI, atau pastikan bahwa project Google Cloud yang Anda buat di Prasyarat adalah project default untuk
gcloud
. - Tentukan variabel lingkungan berikut di terminal perintah Anda.
Pilih tab yang sesuai dengan jenis organisasi yang Anda perlukan:
Tanpa retensi data atau dengan
Retensi data:
Tidak ada residensi data
AUTH="$(gcloud auth print-access-token)"
PROJECT_ID="YOUR_PROJECT_ID"
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
ANALYTICS_REGION="YOUR_ANALYTICS_REGION"
BILLING_TYPE="YOUR_BILLING_TYPE"
Dengan keterangan:
-
AUTH menentukan header
Authentication
dengan token pembawa. Anda akan menggunakan header ini saat memanggil Apigee API. Perhatikan bahwa masa berlaku token berakhir setelah jangka waktu tertentu dan saat masa berlakunya berakhir, Anda cukup membuat ulang token menggunakan perintah yang sama. Untuk informasi selengkapnya, lihat halaman referensi untuk perintah print-access-token. - PROJECT_ID adalah project ID Cloud yang Anda buat sebagai bagian dari Prasyarat.
- PROJECT_NUMBER adalah nomor project Cloud yang Anda buat sebagai bagian dari Prasyarat.
-
RUNTIME_LOCATION adalah lokasi fisik tempat instance Apigee yang akan Anda buat nanti berada. Untuk mengetahui daftar lokasi runtime yang tersedia, lihat Lokasi Apigee.
-
ANALYTICS_REGION adalah lokasi fisik tempat data analisis Apigee akan disimpan. Untuk mengetahui daftar region Analisis API Apigee yang tersedia, lihat Lokasi Apigee.
RUNTIME_LOCATION dan ANALYTICS_REGION dapat berupa region yang sama, tetapi tidak harus sama.
-
BILLING_TYPE adalah jenis penagihan untuk organisasi yang Anda buat. Nilai yang valid adalah:
PAYG
untuk organisasi Bayar sesuai penggunaan.SUBSCRIPTION
untuk organisasi Langganan.
Residensi data
AUTH="$(gcloud auth print-access-token)"
PROJECT_ID="YOUR_PROJECT_ID"
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
RUNTIME_LOCATION="YOUR_RUNTIME_LOCATION"
CONTROL_PLANE_LOCATION="YOUR_CONTROL_PLANE_LOCATION"
CONSUMER_DATA_REGION="YOUR_CONSUMER_DATA_REGION"
BILLING_TYPE="YOUR_BILLING_TYPE"
Dengan keterangan:
-
AUTH menentukan header
Authentication
dengan token pembawa. Anda akan menggunakan header ini saat memanggil Apigee API. Perhatikan bahwa masa berlaku token berakhir setelah jangka waktu tertentu dan saat masa berlakunya berakhir, Anda cukup membuat ulang token menggunakan perintah yang sama. Untuk informasi selengkapnya, lihat halaman referensi untuk perintah print-access-token. - PROJECT_ID adalah project ID Cloud yang Anda buat sebagai bagian dari Prasyarat.
- PROJECT_NUMBER adalah nomor project Cloud yang Anda buat sebagai bagian dari Prasyarat.
-
RUNTIME_LOCATION adalah lokasi fisik tempat instance Apigee yang akan Anda buat nanti berada. Untuk mengetahui daftar lokasi runtime yang tersedia, lihat Lokasi Apigee.
Lokasi runtime harus berada dalam lokasi bidang kontrol. - CONTROL_PLANE_LOCATION adalah lokasi fisik tempat data platform kontrol Apigee akan disimpan. Untuk mengetahui daftar lokasi panel kontrol yang tersedia, lihat lokasi Apigee.
- CONSUMER_DATA_REGION adalah sub-region dari region bidang kontrol. Anda harus menentukan CONTROL_PLANE_LOCATION dan CONSUMER_DATA_REGION. Untuk mengetahui daftar region data konsumen yang tersedia, lihat Lokasi Apigee.
-
BILLING_TYPE adalah jenis penagihan untuk organisasi yang Anda buat. Nilai yang valid adalah:
PAYG
untuk organisasi Bayar sesuai penggunaan.SUBSCRIPTION
untuk organisasi Langganan.
-
AUTH menentukan header
- (Opsional) Periksa pekerjaan Anda dengan menampilkan nilai yang baru saja Anda tetapkan. Perhatikan bahwa saat Anda ingin
menggunakan variabel dalam perintah, awali nama variabel dengan tanda dolar
($).
Tidak ada residensi data
echo $AUTH
echo $PROJECT_ID
echo $PROJECT_NUMBER
echo $RUNTIME_LOCATION
echo $ANALYTICS_REGION
echo $BILLING_TYPE
Respons terhadap perintah
echo
Anda akan terlihat seperti berikut:YOUR_TOKEN my-cloud-project 1234567890 us-west1 us-west1 SUBSCRIPTION
Residensi data
echo $AUTH
echo $PROJECT_ID
echo $PROJECT_NUMBER
echo $RUNTIME_LOCATION
echo $CONTROL_PLANE_LOCATION
echo $CONSUMER_DATA_REGION
echo $BILLING_TYPE
Respons terhadap perintah
echo
Anda akan terlihat seperti berikut:YOUR_TOKEN my-cloud-project 1234567890 us-west1 us us-west1 SUBSCRIPTION
Langkah 2: Aktifkan API
-
Apigee mengharuskan Anda mengaktifkan beberapa Google Cloud API. Aktifkan dengan menjalankan perintah
services enable
berikut:gcloud services enable apigee.googleapis.com \ servicenetworking.googleapis.com \ compute.googleapis.com \ cloudkms.googleapis.com --project=$PROJECT_ID
(Opsional) Untuk memeriksa pekerjaan Anda, gunakan perintah
services list
untuk menampilkan semua API yang diaktifkan:gcloud services list
Respons ini menampilkan semua layanan yang diaktifkan, termasuk API yang baru saja Anda aktifkan.
Langkah 3: Buat identitas layanan Apigee
-
Buat identitas layanan Apigee:
gcloud beta services identity create --service=apigee.googleapis.com \ --project=$PROJECT_ID
Pastikan agen berhasil dibuat. Respons akan menampilkan nama agen dalam format berikut:
service-PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com
. misalnya:Service identity created: service-1234567890@gcp-sa-apigee.iam.gserviceaccount.com
Langkah 4: Konfigurasikan jaringan layanan
Pada langkah ini, Anda mengalokasikan sepasang Rentang Alamat IP (rentang CIDR /22 dan /28) ke Apigee dan melakukan peering VPC antara jaringan Anda dan jaringan Apigee. Setiap instance Apigee memerlukan rentang CIDR /22 dan /28 yang tidak tumpang-tindih. Platform runtime Apigee diberi alamat IP dari dalam rentang CIDR ini. Oleh karena itu, penting untuk mencadangkan rentang untuk Apigee dan tidak digunakan oleh aplikasi lain di jaringan VPC Anda. Untuk informasi selengkapnya dan pertimbangan penting, lihat Memahami rentang peering.
Perhatikan bahwa Anda membuat rentang IP jaringan yang memadai untuk satu instance Apigee. Jika berencana membuat instance Apigee tambahan, Anda harus mengulangi langkah ini untuk setiap instance. Rentang ini tidak dapat dibagikan antar-instance. Lihat juga Memperluas Apigee ke beberapa region.
- Buat variabel lingkungan berikut:
RANGE_NAME=YOUR_RANGE_NAME
NETWORK_NAME=YOUR_NETWORK_NAME
Dengan keterangan:
- RANGE_NAME adalah nama rentang alamat IP yang Anda buat.
Anda dapat memberi nama rentang apa pun yang Anda inginkan. Contoh:
google-svcs
- NETWORK_NAME adalah nama resource jaringan tempat alamat
harus dicadangkan.
Google membuat jaringan default (bernama
default
) untuk setiap project baru, sehingga Anda dapat menggunakannya. Namun, Google tidak merekomendasikan penggunaan jaringan default untuk hal selain pengujian.
- RANGE_NAME adalah nama rentang alamat IP yang Anda buat.
Anda dapat memberi nama rentang apa pun yang Anda inginkan. Contoh:
- Buat rentang IP jaringan dengan panjang CIDR /22:
gcloud compute addresses create $RANGE_NAME \ --global \ --prefix-length=22 \ --description="Peering range for Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=OPTIONAL_ADDRESSES \ --project=$PROJECT_ID
Dengan
--addresses
, Anda dapat menentukan rentang alamat secara opsional. Misalnya, untuk mengalokasikan blok CIDR192.168.0.0/22
, tentukan192.168.0.0
untuk alamat dan22
untuk panjang awalan. Lihat juga Membuat alokasi IP.Jika Anda tidak memberikan parameter
--addresses
, gcloud akan memilih rentang alamat yang tersedia untuk Anda.Jika berhasil,
gcloud
akan merespons dengan hal berikut:Created [https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/google-svcs].
Setelah Anda membuat rentang alamat IP, alamat tersebut akan dikaitkan dengan project hingga Anda merilisnya.
- Pastikan rentang IP jaringan dibuat dengan panjang CIDR /22:
gcloud compute addresses list --global --project=$PROJECT_ID
gcloud compute addresses describe $RANGE_NAME --global --project=$PROJECT_ID
- Buat rentang IP jaringan dengan panjang CIDR /28. Rentang ini diperlukan dan
digunakan oleh Apigee untuk tujuan pemecahan masalah dan tidak dapat disesuaikan atau diubah.
gcloud compute addresses create google-managed-services-support-1 \ --global \ --prefix-length=28 \ --description="Peering range for supporting Apigee services" \ --network=$NETWORK_NAME \ --purpose=VPC_PEERING \ --addresses=OPTIONAL_ADDRESSES \ --project=$PROJECT_ID
Dengan
--addresses
, Anda dapat menentukan rentang alamat secara opsional. Misalnya, untuk mengalokasikan blok CIDR192.168.0.0/28
, tentukan192.168.0.0
untuk alamat dan28
untuk panjang awalan. Lihat juga Membuat alokasi IP.Jika Anda tidak memberikan parameter
--addresses
, gcloud akan memilih rentang alamat yang tersedia untuk Anda. - Pastikan rentang IP jaringan dibuat dengan panjang CIDR /28:
gcloud compute addresses list --global --project=$PROJECT_ID
gcloud compute addresses describe google-managed-services-support-1 --global \ --project=$PROJECT_ID
- Hubungkan layanan Anda ke jaringan menggunakan perintah berikut:
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --network=$NETWORK_NAME \ --ranges=$RANGE_NAME,google-managed-services-support-1 \ --project=$PROJECT_ID
Operasi ini dapat memerlukan waktu beberapa menit hingga selesai. Jika berhasil,
gcloud
akan merespons dengan hal berikut, dengan OPERATION_ID adalah UUID LRO.Operation "operations/OPERATION_ID" finished successfully.
- Setelah beberapa menit, verifikasi apakah peering VPC berhasil:
gcloud services vpc-peerings list \ --network=$NETWORK_NAME \ --service=servicenetworking.googleapis.com \ --project=$PROJECT_ID
Apigee membuat koneksi antara jaringan Anda dan layanan Google; khususnya, Apigee menghubungkan project Anda ke Service Networking API melalui peering VPC. Apigee juga mengaitkan alamat IP dengan project Anda.
Langkah 5: Buat organisasi
Sebelum dapat membuat organisasi, Anda harus membuat key ring dan kunci enkripsi database runtime (lihat langkah 1) dan, jika menggunakan data residency, key ring dan kunci enkripsi kontrol plane (lihat langkah 2). Kunci Cloud KMS ini mengenkripsi data yang disimpan dan direplikasi di seluruh lokasi runtime dan control plane. Apigee menggunakan entitas ini untuk mengenkripsi data aplikasi seperti KVM, cache, dan secret klien, yang kemudian disimpan dalam database. Untuk mengetahui informasi selengkapnya, lihat Tentang kunci enkripsi Apigee.
-
Membuat key ring dan kunci enkripsi database runtime.
-
Tentukan variabel lingkungan untuk lokasi cincin dan kunci enkripsi database runtime Anda. Hal ini membantu memastikan konsistensi saat Anda membuatnya dan memudahkan Anda untuk mengikuti dokumentasi.
Nilainya adalah lokasi fisik tempat cincin kunci enkripsi database runtime dan kunci disimpan.
Satu region
Konfigurasi satu region (di mana Anda hanya memiliki satu instance di satu region): Pilih dari lokasi regional KMS yang didukung.
Contoh:
RUNTIMEDBKEY_LOCATION="us-west1"
Nilainya dapat sama dengan $RUNTIME_LOCATION (juga merupakan region), tetapi tidak harus begitu. Namun, mungkin ada manfaat performa jika keduanya sama.
Multi-region
Konfigurasi multi-region: Pilih dari lokasi multi-region yang didukung (seperti
us
ataueurope
) atau lokasi dual-regional.Contoh:
RUNTIMEDBKEY_LOCATION="us"
Sebaiknya jika Anda memiliki konfigurasi multi-region di Amerika Serikat, gunakan
us
untuk lokasi Anda jika memungkinkan. Jika tidak, gunakannam4
. - Tentukan variabel lingkungan untuk ring kunci dan nama kunci database.
Nama ring kunci harus unik untuk organisasi Anda. Jika Anda membuat region kedua atau berikutnya, namanya tidak boleh sama dengan nama ring kunci lainnya.
RUNTIMEDB_KEY_RING_NAME=YOUR_DB_KEY_RING_NAME
RUNTIMEDB_KEY_NAME=YOUR_DB_KEY_NAME
- (Opsional) Periksa pekerjaan Anda dengan menampilkan nilai yang baru saja Anda tetapkan. Ingat bahwa saat Anda ingin
menggunakan variabel dalam perintah, awali nama variabel dengan tanda dolar
($).
echo $RUNTIMEDBKEY_LOCATION
echo $RUNTIMEDB_KEY_RING_NAME
echo $RUNTIMEDB_KEY_NAME
- Buat key ring baru:
gcloud kms keyrings create $RUNTIMEDB_KEY_RING_NAME \ --location $RUNTIMEDBKEY_LOCATION --project $PROJECT_ID
Lokasi kunci enkripsi database runtime Apigee mendukung semua lokasi Cloud KMS yang mendukung Cloud HSM dan Cloud EKM.
Buat kunci:
gcloud kms keys create $RUNTIMEDB_KEY_NAME \ --keyring $RUNTIMEDB_KEY_RING_NAME \ --location $RUNTIMEDBKEY_LOCATION \ --purpose "encryption" \ --project $PROJECT_ID
Perintah ini membuat kunci dan menambahkannya ke key ring.
Dapatkan ID kunci:
gcloud kms keys list \ --location=$RUNTIMEDBKEY_LOCATION \ --keyring=$RUNTIMEDB_KEY_RING_NAME \ --project=$PROJECT_ID
ID kunci memiliki sintaksis berikut (mirip dengan jalur file):
projects/PROJECT_ID/locations/RUNTIMEDBKEY_LOCATION/keyRings/RUNTIMEDB_KEY_RING_NAME/cryptoKeys/RUNTIMEDB_KEY_NAME
Masukkan ID kunci dalam variabel lingkungan. Anda akan menggunakan variabel ini dalam perintah berikutnya:
RUNTIMEDB_KEY_ID=YOUR_RUNTIMEDB_KEY_ID
Berikan akses bagi Agen Layanan Apigee untuk menggunakan kunci baru:
gcloud kms keys add-iam-policy-binding $RUNTIMEDB_KEY_NAME \ --location $RUNTIMEDBKEY_LOCATION \ --keyring $RUNTIMEDB_KEY_RING_NAME \ --member serviceAccount:service-$PROJECT_NUMBER@gcp-sa-apigee.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project $PROJECT_ID
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 mendapatkan 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.
-
- Jika Anda menggunakan data residency, buat key ring dan kunci enkripsi control plane. Jika Anda tidak menggunakan retensi data, lanjutkan ke langkah 3.
- Tentukan variabel lingkungan untuk lokasi kunci dan ring enkripsi database bidang kontrol Anda:
CONTROL_PLANE_LOCATION=YOUR_CONTROL_PLANE_LOCATION
CONSUMER_DATA_REGION=YOUR_CONSUMER_DATA_REGION
Dengan keterangan:
- CONTROL_PLANE_LOCATION adalah lokasi fisik tempat data platform kontrol Apigee akan disimpan. Untuk mengetahui daftar lokasi panel kontrol yang tersedia, lihat lokasi Apigee.
- CONSUMER_DATA_REGION adalah sub-region dari region bidang kontrol. Anda harus menentukan CONTROL_PLANE_LOCATION dan CONSUMER_DATA_REGION. Untuk mengetahui daftar region data konsumen yang tersedia, lihat Lokasi Apigee.
Tentukan variabel lingkungan untuk ring kunci dan nama kunci database bidang kontrol.
Nama ring kunci harus unik untuk organisasi Anda.
CONTROL_PLANE_KEY_RING_NAME=YOUR_CONTROL_PLANE_KEY_RING_NAME
CONTROL_PLANE_KEY_NAME=YOUR_CONTROL_PLANE_KEY_NAME
CONSUMER_DATA_KEY_RING_NAME=YOUR_CONSUMER_DATA_KEY_RING_NAME
CONSUMER_DATA_KEY_NAME=YOUR_CONSUMER_DATA_REGION_KEY_NAME
Dengan keterangan:
- CONTROL_PLANE_KEY_RING_NAME adalah nama key ring yang akan Anda gunakan untuk mengidentifikasi key ring enkripsi bidang kontrol.
- CONTROL_PLANE_KEY_NAME adalah nama kunci yang akan Anda gunakan untuk mengidentifikasi kunci enkripsi bidang kontrol.
- CONSUMER_DATA_KEY_RING_NAME adalah nama key ring yang akan Anda gunakan untuk mengidentifikasi key ring enkripsi region data konsumen.
- CONSUMER_DATA_KEY_NAME adalah nama kunci yang akan Anda gunakan untuk mengidentifikasi kunci enkripsi region data konsumen.
- Buat key ring baru:
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
- Buat kunci:
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
Perintah ini membuat kunci dan menambahkannya ke key ring.
Dapatkan ID kunci:
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
projects/PROJECT_ID/locations/CONSUMER_DATA_REGION/keyRings/CONSUMER_DATA_KEY_RING_NAME/cryptoKeys/CONSUMER_DATA_KEY_NAME
- Masukkan ID kunci dalam variabel lingkungan. Anda akan menggunakan variabel ini dalam perintah berikutnya:
CONTROL_PLANE_KEY_ID=YOUR_CONTROL_PLANE_KEY_ID
CONSUMER_DATA_KEY_ID=YOUR_CONSUMER_DATA_KEY_ID
- Berikan akses bagi Agen Layanan Apigee untuk menggunakan kunci baru:
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
Perintah ini mengikat kunci ke Agen Layanan Apigee. Setelah permintaan ini berhasil diselesaikan, 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 mendapatkan 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.
-
Buat organisasi dengan mengirimkan permintaan berikut ke organizations API Apigee:
Tidak ada residensi data
curl "https://apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$PROJECT_ID"'", "analyticsRegion":"'"$ANALYTICS_REGION"'", "runtimeType":"CLOUD", "billingType":"'"$BILLING_TYPE"'", "authorizedNetwork":"'"$NETWORK_NAME"'", "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'" }'
Dengan keterangan:
-d
menentukan payload data untuk permintaan. Payload ini harus menyertakan hal berikut:name
: Mengidentifikasi organisasi baru Anda. Namanya harus sama dengan project ID Anda.analyticsRegion
: Menentukan lokasi fisik tempat data analisis Anda akan disimpan.runtimeType
: Tetapkan nilai ini keCLOUD
.billingType
: Menentukan jenis penagihan organisasi yang dibuat.authorizedNetwork
: Mengidentifikasi jaringan peering yang Anda tentukan di Mengonfigurasi jaringan layanan.runtimeDatabaseEncryptionKeyName
: ID kunci enkripsi aplikasi yang Anda buat di langkah sebelumnya. Ingat bahwa ID disusun seperti jalur file. Misalnya:projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
Residensi data
Buat organisasi menggunakan API:
curl "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations?parent=projects/$PROJECT_ID" \ -H "Authorization: Bearer $AUTH" \ -X POST \ -H "Content-Type:application/json" \ -d '{ "name":"'"$PROJECT_ID"'", "runtimeType":"CLOUD", "billingType":"'"$BILLING_TYPE"'", "controlPlaneEncryptionKeyName":"'"$CONTROL_PLANE_KEY_ID"'", "apiConsumerDataLocation":"'"$CONSUMER_DATA_REGION"'", "apiConsumerDataEncryptionKeyName":"'"$CONSUMER_DATA_KEY_ID"'", "authorizedNetwork":"'"$NETWORK_NAME"'", "runtimeDatabaseEncryptionKeyName":"'"$RUNTIMEDB_KEY_ID"'" }'
Dengan keterangan:
-d
menentukan payload data untuk permintaan. Payload ini harus menyertakan hal berikut:name
: Mengidentifikasi organisasi baru Anda. Namanya harus sama dengan project ID Anda.runtimeType
: Tetapkan nilai ini keCLOUD
.billingType
: Menentukan jenis penagihan organisasi yang dibuat.controlPlaneEncryptionKeyName
: Adalah ID kunci bidang kontrol Anda.apiConsumerDataLocation
: Anda juga harus menentukan sub-region untuk digunakan oleh resource internal. Lihat Region residensi data untuk mengetahui nilai yang didukung.apiConsumerDataEncryptionKeyName
: Adalah ID kunci region data konsumen Anda.authorizedNetwork
: Mengidentifikasi jaringan peering yang Anda tentukan di Mengonfigurasi jaringan layanan.runtimeDatabaseEncryptionKeyName
: ID kunci enkripsi aplikasi yang Anda buat di langkah sebelumnya. Ingat bahwa ID terstruktur seperti jalur file. Misalnya:
projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
Setelah Anda menjalankan perintah ini, Apigee akan memulai operasi yang berjalan lama, yang dapat memerlukan waktu beberapa menit untuk diselesaikan.
Jika Anda mendapatkan error, periksa penggunaan tanda petik di sekitar nilai variabel dalam payload data. Pastikan Anda memiliki tanda kutip ganda-tunggal-ganda di sekitar variabel $PROJECT_ID, seperti yang ditunjukkan pada contoh berikut:
"'"$PROJECT_ID"'"
Jika menggunakan string biasa (bukan variabel lingkungan) untuk nilai permintaan, Anda dapat menggabungkannya dalam tanda kutip ganda dalam string payload tanda kutip tunggal, seperti yang ditunjukkan pada contoh berikut:
'{ "name":"my-gcp-project", ... }'
- Tunggu beberapa menit.
- Untuk memeriksa status permintaan pembuatan, Anda dapat mengirim permintaan
GET
ke List organizations API Apigee, seperti yang ditunjukkan pada contoh berikut:Tidak ada residensi data
curl -H "Authorization: Bearer $AUTH" "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"
Residensi data
curl -H "Authorization: Bearer $AUTH" "https://$CONTROL_PLANE_LOCATION-apigee.googleapis.com/v1/organizations/$PROJECT_ID"
Jika Anda melihat respons ini, berarti pembuatan organisasi belum selesai:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations/apigee-docs-m\" (or it may not exist)", "status": "PERMISSION_DENIED" } }
Jika Apigee berhasil membuat organisasi baru, Anda akan menerima respons yang mirip dengan berikut ini:
Tidak ada residensi data
{ "name": "my-cloud-project", "createdAt": "1592586495539", "lastModifiedAt": "1592586495539", "environments": [], "properties": { "property": [ { "name": "features.hybrid.enabled", "value": "true" }, { "name": "features.mart.connect.enabled", "value": "true" } ] }, "analyticsRegion": "us-west1", "runtimeType": "CLOUD", "subscriptionType": "PAID", "caCertificate": "YOUR_CERTIFICATE", "authorizedNetwork": "my-network", "projectId": "my-cloud-project" }
Residensi data
{ "name": "my-cloud-project", "createdAt": "1681412783749", "lastModifiedAt": "1681412783749", "environments": [ "test-env" ], "properties": { "property": [ { "name": "features.mart.connect.enabled", "value": "true" }, { "name": "features.hybrid.enabled", "value": "true" } ] }, "authorizedNetwork": "default", "runtimeType": "CLOUD", "subscriptionType": "PAID", "caCertificate": "YOUR_CERTIFICATE", "runtimeDatabaseEncryptionKeyName": "projects/my-cloud-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key-name", "projectId": "my-cloud-project", "state": "ACTIVE", "billingType": "PAYG", "addonsConfig": { "advancedApiOpsConfig": {}, "integrationConfig": {}, "monetizationConfig": {}, "connectorsPlatformConfig": {} }, "apiConsumerDataEncryptionKeyName": "projects/my-cloud-project/locations/us-central1/keyRings/my-key-ring/cryptoKeys/my-key-name", "controlPlaneEncryptionKeyName": "projects/my-cloud-project/locations/us/keyRings/my-key-ring/cryptoKeys/my-key-name", "apiConsumerDataLocation": "us-central1", "apigeeProjectId": "i0c2a37e80f9850ab-tp" }
Jika Apigee menampilkan respons error HTTP, lihat Membuat organisasi Apigee.
Lakukan langkah-langkah berikut untuk membuat key ring dan kunci enkripsi control plane.
Lihat juga: Pemecahan masalah CMEK.