Langkah 4: Buat akun layanan

Langkah ini menjelaskan cara membuat akun layanan Google Cloud yang diperlukan agar Apigee hybrid dapat beroperasi.

Ringkasan

Apigee hybrid menggunakan akun layanan Google Cloud untuk mengizinkan komponen hybrid berkomunikasi dengan melakukan panggilan API yang diotorisasi.

Lingkungan produksi vs. non-produksi

Panduan ini mengacu pada penginstalan Produksi ("Prod") dan Non-produksi ("Non-prod"). Penginstalan produksi disesuaikan untuk kapasitas penggunaan, penyimpanan, dan skalabilitas yang lebih besar. Penginstalan non-produksi menggunakan lebih sedikit resource dan 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 campuran Apigee. Misalnya, runtime, mart, metrik, udca, dan sebagainya masing-masing mendapatkan akun layanannya sendiri.

Untuk penginstalan non-prod, Anda dapat membuat satu akun layanan yang berlaku untuk semua komponen.

Untuk mempelajari lebih lanjut akun layanan yang digunakan oleh Apigee dan peran yang ditetapkan, lihat Akun layanan dan peran yang digunakan oleh komponen campuran.

Workload Identity di GKE

Untuk penginstalan hibrida Apigee di GKE, Google Cloud menawarkan opsi yang disebut workload identity untuk mengautentikasi komponen runtime hibrida. Opsi ini tidak menggunakan file sertifikat yang didownload untuk mengautentikasi akun layanan. Sebagai gantinya, 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 untuk membuat akun layanan Google Cloud untuk penginstalan hybrid Anda:

  • Alat create-service-account: Jika Anda menginstal Apigee hybrid di platform selain GKE, atau jika Anda menginstal di GKE tetapi tidak ingin menggunakan identitas beban kerja, 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 menggunakan create-service-account.
  • Konsol Google Cloud atau gcloud: Jika Anda menginstal Apigee hybrid di GKE dan berencana menggunakan workload identity, gunakan Konsol Google Cloud atau gcloud untuk membuat akun layanan tanpa mendownload file sertifikat. Ikuti prosedur di
    Membuat akun layanan di Konsol Google Cloud atau dengan gcloud.

Membuat akun layanan menggunakan create-service-account

Gunakan alat create-service-account dalam keadaan berikut:

  • Anda menginstal di platform selain GKE
  • Anda menginstal di GKE, tetapi tidak berencana menggunakan identitas workload.

Jika tidak, lanjutkan ke Membuat akun layanan di Konsol Google Cloud atau dengan gcloud.

  1. Pastikan variabel lingkungan HYBRID_FILES dan PROJECT_ID 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
  2. Buat akun layanan dengan perintah berikut:

    Non-prod

    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 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 ini 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.
  3. Pastikan kunci akun layanan dibuat menggunakan perintah berikut. Anda bertanggung jawab untuk 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

Membuat akun layanan di Konsol Google Cloud atau dengan gcloud

Jika berencana menggunakan workload identity di GKE untuk mengautentikasi komponen runtime campuran, 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 Membuat akun layanan untuk membuat akun layanan berikut dan menetapkan peran berikut ke akun tersebut:

Non-prod

Untuk penginstalan non-produksi:

Nama akun layanan Peran IAM
apigee-non-prod
  • Apigee Analytics Agent
  • Apigee Connect Agent
  • Apigee Runtime Agent
  • Apigee Synchronizer Manager
  • Penulis Log
  • Penulis Metrik Pemantauan
  • Storage Object Admin

Produksi

Untuk penginstalan produksi:

Penginstalan produksi
Nama akun layanan Peran IAM
apigee-cassandra Storage Object Admin
apigee-logger Penulis Log
apigee-mart Apigee Connect Agent
apigee-metrics Penulis Metrik Pemantauan
apigee-runtime Tidak diperlukan 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-prod

Untuk penginstalan non-produksi:

  1. Buat akun layanan apigee-non-prod:
    gcloud iam service-accounts create apigee-non-prod \
      --display-name="apigee-non-prod" \
      --project=$PROJECT_ID
  2. 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"
  3. 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.

  1. 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"
  2. 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"
  3. 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"
  4. 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"
  5. Akun layanan apigee-runtime:
    gcloud iam service-accounts create apigee-runtime \
      --display-name="apigee-runtime" \
      --project=$PROJECT_ID
  6. 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"
  7. 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"
  8. 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.

Sekarang Anda telah membuat akun layanan dan menetapkan peran yang diperlukan oleh komponen hibrida Apigee. Selanjutnya, buat sertifikat TLS yang diperlukan oleh gateway traffic masuk hybrid.

1 2 3 4 (BERIKUTNYA) Langkah 5: Buat sertifikat TLS 6 7 8 9 10