Langkah ini menjelaskan cara membuat akun layanan Google Cloud yang diperlukan agar Apigee Hybrid dapat beroperasi.
Ringkasan
Apigee Hybrid menggunakan akun layanan Google Cloud agar komponen hybrid dapat berkomunikasi dengan melakukan panggilan API yang diotorisasi.
Lingkungan produksi vs. non-produksi
Panduan ini mengacu ke penginstalan Produksi ("Prod") dan Non-produksi ("Non-produksi"). Penginstalan produksi disesuaikan untuk mendapatkan kapasitas penggunaan, penyimpanan, dan skalabilitas yang lebih besar. Instalasi non-produksi menggunakan lebih sedikit resource serta terutama untuk tujuan pembelajaran dan demonstrasi.
Saat membuat dan mengonfigurasi akun layanan untuk Apigee Hybrid, Anda harus mengetahui jenis penginstalan yang ditargetkan.
Untuk penginstalan produksi, sebaiknya buat akun layanan terpisah untuk setiap komponen hybrid Apigee. Misalnya, runtime, mart, metrik, udca, dan sebagainya, masing-masing akan mendapatkan akun layanannya sendiri.
Untuk penginstalan non-produksi, Anda dapat membuat satu akun layanan yang berlaku untuk semua komponen.
Untuk mempelajari lebih lanjut akun layanan yang digunakan oleh Apigee serta peran yang ditetapkan untuknya, lihat Akun dan peran layanan yang digunakan oleh komponen campuran.
Workload Identity di GKE
Untuk penginstalan Apigee hybrid di GKE, Google Cloud menawarkan opsi yang disebut workload identity untuk mengautentikasi komponen runtime hybrid. Opsi ini tidak menggunakan file sertifikat yang didownload untuk mengautentikasi akun layanan. Sebaliknya, opsi ini mengaitkan akun layanan Google Cloud yang Anda buat pada langkah ini dengan akun layanan Kubernetes di cluster Kubernetes.
Workload Identity hanya tersedia di penginstalan GKE.
Membuat akun layanan
Gunakan prosedur berikut guna membuat akun layanan Google Cloud untuk penginstalan hybrid:
- Alat
create-service-account
: Jika Anda menginstal Apigee Hybrid di platform selain GKE, atau jika Anda menginstal di GKE tetapi tidak ingin menggunakan identitas workload, Gunakan alat yang disediakan Apigee,create-service-account
, untuk membuat akun layanan, menetapkan peran ke akun layanan, serta membuat dan mendownload file kunci untuk akun layanan dalam satu perintah. Ikuti prosedur di
Membuat akun layanan menggunakancreate-service-account
. - Konsol Google Cloud atau
gcloud
: Jika Anda menginstal Apigee Hybrid di GKE dan berencana menggunakan Workload Identity, gunakan Konsol Google Cloud ataugcloud
untuk membuat akun layanan tanpa mendownload file sertifikat. Ikuti prosedur di
Membuat akun layanan di Konsol Google Cloud atau dengangcloud
.
Buat akun layanan menggunakan create-service-account
Gunakan alat create-service-account
dalam situasi berikut:
- Anda menginstal aplikasi di platform selain GKE
- Anda menginstal aplikasi di GKE, tetapi tidak berencana menggunakan workload identity.
Atau, buka Membuat akun layanan di Konsol Google Cloud atau dengan gcloud
.
- Pastikan variabel lingkungan HYBRID_FILES dan PROJECT_ID Anda telah ditetapkan.
PROJECT_ID harus ditetapkan ke project ID Google Cloud Anda, karena alat
create-service-account
membaca variabel lingkungan PROJECT_ID untuk membuat akun layanan di project yang benar.echo $HYBRID_FILES
echo $PROJECT_ID
- Buat akun layanan dengan perintah berikut:
Non-produksi
Perintah ini membuat satu akun layanan bernama
apigee-non-prod
untuk digunakan dalam penginstalan non-produksi dan mendownload file kunci untuk akun layanan di direktori$HYBRID_FILES/service-accounts
.$HYBRID_FILES/tools/create-service-account --env non-prod --dir $HYBRID_FILES/service-accounts
Produksi
Perintah ini akan membuat semua akun layanan individual untuk penginstalan produksi dan mendownload file kunci untuk akun layanan di direktori
$HYBRID_FILES/service-accounts
.$HYBRID_FILES/tools/create-service-account --env prod --dir $HYBRID_FILES/service-accounts
Jika Anda melihat perintah berikut, masukkan y:
[INFO]: gcloud configured project ID is project_id. Enter: y to proceed with creating service account in project: project_id Enter: n to abort.
Jika ini adalah pertama kalinya Anda membuat akun layanan tertentu, alat akan membuatnya tanpa perintah lebih lanjut.
Namun, jika Anda melihat pesan dan perintah berikut, masukkan y untuk membuat kunci baru:
[INFO]: Service account apigee-non-prod@project_id.iam.gserviceaccount.com already exists. ... [INFO]: The service account might have keys associated with it. It is recommended to use existing keys. Press: y to generate new keys.(this does not deactivate existing keys) Press: n to skip generating new keys.
-
Pastikan kunci akun layanan telah dibuat menggunakan perintah berikut. Anda bertanggung jawab menyimpan kunci pribadi ini dengan aman. Nama file kunci diawali dengan nama project Google Cloud Anda.
ls $HYBRID_FILES/service-accounts
Hasilnya akan terlihat seperti berikut:
project_id-apigee-non-prod.json
- Untuk mempelajari
create-service-account
dan semua opsinya lebih lanjut, lihatcreate-service-account
. - Untuk mempelajari konsep Google Cloud yang terkait, lihat Membuat dan mengelola akun layanan serta Membuat dan mengelola kunci akun layanan.
Buat akun layanan di Konsol Google Cloud atau dengan gcloud
Jika berencana menggunakan workload identity di GKE untuk mengautentikasi komponen runtime hybrid, Anda tidak perlu membuat dan mendownload file sertifikat untuk akun layanan. Oleh karena itu, jangan gunakan alat create-service-account
. Sebagai gantinya, buat akun layanan di Konsol Google Cloud atau dengan IAM API di gcloud
.
Jika tidak, lanjutkan ke Membuat akun layanan menggunakan create-service-account
.
Konsol
Ikuti petunjuk di bagian Membuat akun layanan untuk membuat akun layanan berikut dan menetapkan peran berikut pada akun tersebut:
Non-produksi
Untuk penginstalan non-produksi:
Nama akun layanan | Peran IAM |
---|---|
apigee-non-prod |
|
Produksi
Untuk penginstalan produksi:
Penginstalan produksi | |
---|---|
Nama akun layanan | Peran IAM |
apigee-cassandra |
Storage Object Admin |
apigee-logger |
Logs Writer |
apigee-mart |
Apigee Connect Agent |
apigee-metrics |
Monitoring Metric Writer |
apigee-runtime |
Tidak memerlukan peran |
apigee-synchronizer |
Apigee Synchronizer Manager |
apigee-udca |
Apigee Analytics Agent |
apigee-watcher |
Apigee Runtime Agent |
gcloud
Gunakan perintah berikut untuk membuat akun layanan dan menetapkan peran IAM.
Non-produksi
Untuk penginstalan non-produksi:
- Buat akun layanan
apigee-non-prod
:gcloud iam service-accounts create apigee-non-prod \ --display-name="apigee-non-prod" \ --project=$PROJECT_ID
- Tetapkan peran IAM ke akun layanan:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
- Verifikasi binding peran:
gcloud projects get-iam-policy ${PROJECT_ID} \ --flatten="bindings[].members" \ --format='table(bindings.role)' \ --filter="bindings.members:apigee-non-prod@$PROJECT_ID.iam.gserviceaccount.com"
Produksi
Untuk penginstalan produksi:
Gunakan perintah berikut untuk membuat setiap akun layanan dan menetapkan peran IAM yang sesuai.
- Akun layanan
apigee-cassandra
:gcloud iam service-accounts create apigee-cassandra \ --display-name="apigee-cassandra" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-cassandra@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/storage.objectAdmin"
- Akun layanan
apigee-logger
:gcloud iam service-accounts create apigee-logger \ --display-name="apigee-logger" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-logger@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/logging.logWriter"
- Akun layanan
apigee-mart
:gcloud iam service-accounts create apigee-mart \ --display-name="apigee-mart" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-mart@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigeeconnect.Agent"
- Akun layanan
apigee-metrics
:gcloud iam service-accounts create apigee-metrics \ --display-name="apigee-metrics" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-metrics@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
- Akun layanan
apigee-runtime
:gcloud iam service-accounts create apigee-runtime \ --display-name="apigee-runtime" \ --project=$PROJECT_ID
- Akun layanan
apigee-synchronizer
:gcloud iam service-accounts create apigee-synchronizer \ --display-name="apigee-synchronizer" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-synchronizer@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.synchronizerManager"
- Akun layanan
apigee-udca
:gcloud iam service-accounts create apigee-udca \ --display-name="apigee-udca" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-udca@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.analyticsAgent"
- Akun layanan
apigee-watcher
:gcloud iam service-accounts create apigee-watcher \ --display-name="apigee-watcher" \ --project=$PROJECT_ID
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member="serviceAccount:apigee-watcher@$PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/apigee.runtimeAgent"
Untuk mempelajari lebih lanjut cara membuat akun layanan dengan gcloud
, lihat
Membuat akun layanan.
Anda sekarang telah membuat akun layanan dan menetapkan peran yang diperlukan oleh komponen hybrid Apigee. Selanjutnya, buat sertifikat TLS yang diperlukan oleh gateway masuk hybrid.
1 2 3 4 (NEXT) Langkah 5: Buat sertifikat TLS