Halaman ini berlaku untuk Apigee, tetapi tidak untuk Apigee Hybrid.
Lihat 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 mengaktifkan retensi data.
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 service networking: Service networking mengotomatiskan penyiapan konektivitas pribadi (menggunakan Peering Jaringan VPC) antara jaringan dan Apigee.
- Langkah 5: Buat organisasi: Organisasi Apigee (terkadang disebut sebagai org) adalah penampung tingkat teratas di Apigee. Bagian 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: Buat lingkungan: Proxy API harus di-deploy ke lingkungan, dan ditambahkan ke grup lingkungan, sebelum API yang dieksposnya dapat diakses melalui jaringan.
- Langkah 8: Konfigurasi perutean: Izinkan akses eksternal atau akses khusus internal ke API Anda.
- Langkah 9: Deploy proxy contoh: Uji penyediaan dengan men-deploy dan memanggil proxy API.
Langkah 1: Tentukan variabel lingkungan
Siapkan gcloud
dan tentukan variabel lingkungan untuk digunakan pada langkah-langkah selanjutnya:
- 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 Menginisialisasi 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 butuhkan:
Tanpa residensi data atau dengan
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:
-
AUTH menentukan header
Authentication
dengan token pemilik. Anda akan menggunakan header ini saat memanggil Apigee API. Perhatikan bahwa masa berlaku token akan berakhir setelah jangka waktu tertentu dan saat masa berlakunya berakhir, Anda cukup membuatnya ulang menggunakan perintah yang sama. Untuk mengetahui informasi selengkapnya, lihat halaman referensi untuk perintah print-access-token. - PROJECT_ID adalah ID project 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 Pay-as-you-go.SUBSCRIPTION
untuk organisasi Langganan.
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:
-
AUTH menentukan header
Authentication
dengan token pemilik. Anda akan menggunakan header ini saat memanggil Apigee API. Perhatikan bahwa masa berlaku token akan berakhir setelah jangka waktu tertentu dan saat masa berlakunya berakhir, Anda cukup membuatnya ulang menggunakan perintah yang sama. Untuk mengetahui informasi selengkapnya, lihat halaman referensi untuk perintah print-access-token. - PROJECT_ID adalah ID project 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 bidang kontrol Apigee akan disimpan. Untuk mengetahui daftar lokasi bidang 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 Pay-as-you-go.SUBSCRIPTION
untuk organisasi Langganan.
-
AUTH menentukan header
- (Opsional) Periksa pekerjaan Anda dengan mengulangi nilai yang baru saja Anda tetapkan. Perhatikan bahwa saat Anda ingin
menggunakan variabel dalam perintah, awali nama variabel dengan tanda dolar
($).
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 SUBSCRIPTIONecho $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
Izin yang diperlukan untuk langkah ini
Anda dapat memberikan peran bawaan kepada penyedia Apigee yang mencakup izin yang diperlukan untuk menyelesaikan tugas ini, atau memberikan izin yang lebih terperinci untuk memberikan hak istimewa terendah yang diperlukan. Lihat Peran standar dan Izin pengaktifan 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 \ apihub.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 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 harus 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: Konfigurasi jaringan layanan
Pada langkah ini, Anda akan 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. Bidang runtime Apigee diberi alamat IP dari dalam rentang CIDR ini. Oleh karena itu, rentang tersebut harus dicadangkan untuk Apigee dan tidak digunakan oleh aplikasi lain di jaringan VPC Anda. Untuk mengetahui informasi selengkapnya dan pertimbangan penting, lihat Memahami rentang peering.
Perhatikan bahwa Anda membuat rentang IP jaringan yang cukup untuk satu instance Apigee. Jika Anda berencana membuat instance Apigee tambahan, Anda harus mengulangi langkah ini untuk setiap instance. Rentang tidak dapat dibagikan antar-instance. Lihat juga Memperluas Apigee ke beberapa region.
Izin yang diperlukan untuk tugas ini
Anda dapat memberikan peran bawaan kepada penyedia Apigee yang mencakup izin yang diperlukan untuk menyelesaikan tugas ini, atau memberikan izin yang lebih terperinci untuk memberikan hak istimewa terendah yang diperlukan. Lihat Peran standar dan Izin jaringan layanan.
- Buat variabel lingkungan berikut:
RANGE_NAME=
YOUR_RANGE_NAME NETWORK_NAME=
YOUR_NETWORK_NAME Dengan:
- RANGE_NAME adalah nama rentang alamat IP yang Anda buat.
Anda dapat memberi nama rentang sesuai keinginan. 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 lain selain pengujian.
- RANGE_NAME adalah nama rentang alamat IP yang Anda buat.
Anda dapat memberi nama rentang sesuai keinginan. 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_IDDengan
--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
, maka 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 melepaskannya.
- 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_IDDengan
--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
, maka 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 untuk selesai. Jika berhasil,
gcloud
akan merespons dengan berikut ini, 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
Izin yang diperlukan untuk langkah ini
Anda dapat memberikan peran bawaan kepada penyedia Apigee yang mencakup izin yang diperlukan untuk menyelesaikan tugas ini, atau memberikan izin yang lebih terperinci untuk memberikan hak istimewa terendah yang diperlukan. Lihat:
Sebelum dapat membuat organisasi, Anda harus membuat key ring dan kunci enkripsi database runtime (lihat langkah 1) dan, jika Anda menggunakan residency data, key ring dan kunci enkripsi bidang kontrol (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 rahasia klien, yang kemudian disimpan dalam database. Untuk mengetahui informasi selengkapnya, lihat Tentang kunci enkripsi Apigee.
-
Buat key ring dan kunci enkripsi database runtime.
-
Tentukan variabel lingkungan untuk lokasi database runtime cincin dan kunci enkripsi. Hal ini membantu memastikan konsistensi saat Anda membuatnya dan memudahkan Anda mengikuti dokumentasi.
Nilainya adalah lokasi fisik tempat key ring dan kunci enkripsi database runtime Anda disimpan.
Konfigurasi satu region (dengan hanya satu instance di satu region): Pilih dari lokasi regional KMS yang didukung.
Contoh:
RUNTIMEDBKEY_LOCATION="us-west1"
Nilainya dapat sama dengan $RUNTIME_LOCATION (juga wilayah) tetapi tidak harus sama. Namun, mungkin ada manfaat performa jika keduanya sama.
Konfigurasi multi-region: Pilih dari lokasi multi-regional yang didukung (seperti
us
ataueurope
) atau lokasi dual-regional.Contoh:
RUNTIMEDBKEY_LOCATION="us"
Sebaiknya, jika Anda memiliki konfigurasi multi-region di AS, gunakan
us
untuk lokasi Anda jika memungkinkan. Jika tidak, gunakannam4
. - Tentukan variabel lingkungan untuk nama kunci dan cincin 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 mengulangi nilai yang baru saja Anda tetapkan. Ingatlah 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 akan 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 selanjutnya:
RUNTIMEDB_KEY_ID=
YOUR_RUNTIMEDB_KEY_ID Berikan akses untuk Agen Layanan Apigee agar dapat 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 lokalitas data, buat key ring dan kunci enkripsi control plane. Jika Anda tidak menggunakan residensi data, lanjutkan ke langkah 3.
- Tentukan variabel lingkungan untuk lokasi ring dan kunci enkripsi database bidang kontrol Anda:
CONTROL_PLANE_LOCATION=
YOUR_CONTROL_PLANE_LOCATION CONSUMER_DATA_REGION=
YOUR_CONSUMER_DATA_REGION Dengan:
- CONTROL_PLANE_LOCATION adalah lokasi fisik tempat data bidang kontrol Apigee akan disimpan. Untuk mengetahui daftar lokasi bidang 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 nama kunci dan dering 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:
- 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 wilayah data konsumen Anda.
- CONSUMER_DATA_KEY_NAME adalah nama kunci yang akan Anda gunakan untuk mengidentifikasi kunci enkripsi wilayah data konsumen Anda.
- 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 akan 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 selanjutnya:
CONTROL_PLANE_KEY_ID=
YOUR_CONTROL_PLANE_KEY_ID CONSUMER_DATA_KEY_ID=
YOUR_CONSUMER_DATA_KEY_ID - Berikan akses untuk Agen Layanan Apigee agar dapat 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 API organisasi Apigee:
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:
-d
menentukan payload data untuk permintaan. Payload ini harus menyertakan hal berikut:name
: Mengidentifikasi organisasi baru Anda. Nama ini harus sama dengan ID project 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. Contoh:projects/my-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/my-key
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:
-d
menentukan payload data untuk permintaan. Payload ini harus mencakup hal berikut:name
: Mengidentifikasi organisasi baru Anda. Nama ini harus sama dengan ID project 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 wilayah 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 disusun seperti jalur file. Contoh:
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 kutip di sekitar nilai variabel dalam payload data. Pastikan Anda memiliki tanda kutip ganda-tunggal-ganda di sekitar variabel $PROJECT_ID, seperti yang ditunjukkan contoh berikut:
"'"$PROJECT_ID"'"
Jika menggunakan string biasa (bukan variabel lingkungan) untuk nilai permintaan, Anda dapat membungkusnya dengan tanda kutip ganda dalam string payload yang dikutip tunggal, seperti yang ditunjukkan dalam 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 contoh berikut:curl -H "Authorization: Bearer $AUTH" "https://apigee.googleapis.com/v1/organizations/$PROJECT_ID"
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:
{ "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" }{ "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 bidang kontrol.
Lihat juga: Pemecahan masalah CMEK.