Langkah 4: Buat akun layanan

Ringkasan

Langkah ini menjelaskan cara membuat akun layanan Google Cloud yang diperlukan agar Apigee hybrid dapat beroperasi, dan menetapkan peran IAM yang sesuai untuk akun layanan tersebut.

Prosedur ini menggunakan dua variabel lingkungan berikut yang ditentukan di Langkah 2: Download diagram Helm Apigee. Variabel ini bersifat opsional. Jika Anda tidak menentukannya, ganti jalur direktori yang sesuai untuk setiap variabel dalam contoh kode.

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 ditujukan untuk tujuan pembelajaran dan demonstrasi.

Saat membuat dan mengonfigurasi akun layanan untuk Apigee hybrid, Anda harus mengetahui jenis penginstalan yang Anda targetkan.

Untuk penginstalan produksi, sebaiknya buat akun layanan terpisah untuk setiap komponen hybrid Apigee. Misalnya, runtime, mart, metrics, mint, udca, dan setiap komponen lainnya memiliki akun layanan khusus.

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 untuk akun tersebut, lihat Akun layanan dan peran yang digunakan oleh komponen hybrid.

Mengautentikasi akun layanan

Apigee hybrid mendukung metode berikut untuk mengautentikasi akun layanan Google:

  • Secret Kubernetes
  • File kunci JSON akun layanan ("file JSON" di tab pilihan di bagian berikut).
  • Vault
  • Workload Identity Federation for GKE ("WIF for GKE" di tab pilihan di bagian berikut).
  • Workload Identity Federation di platform lain ("WIF di platform lain" di tab pilihan di bagian berikut).

Di bagian berikut, pilih prosedur untuk jenis autentikasi yang ingin Anda gunakan.

Buat akun layanan

Apigee Hybrid menggunakan akun layanan berikut:

Produksi

Akun layanan Peran IAM Diagram Helm Apigee
apigee-cassandra Storage Object Admin apigee-datastore
apigee-logger Penulis Log apigee-telemetry
apigee-mart Apigee Connect Agent apigee-org
apigee-metrics Penulis Metrik Pemantauan apigee-telemetry
apigee-mint-task-scheduler
(Hanya diperlukan jika Anda menggunakan Monetisasi untuk Apigee Hybrid)
Tidak memerlukan peran apigee-org
apigee-runtime Tidak memerlukan peran apigee-env
apigee-synchronizer Apigee Synchronizer Manager
Storage Object Admin
apigee-env
apigee-udca Apigee Analytics Agent apigee-org
apigee-env
apigee-watcher Apigee Runtime Agent apigee-org

Non-prod

Akun layanan Peran IAM Diagram Helm Apigee
apigee-non-prod Admin Objek Penyimpanan
Logs Writer
Apigee Connect Agent
Monitoring Metric Writer
Apigee Synchronizer Manager
Apigee Analytics Agent
Apigee Runtime Agent
apigee-datastore
apigee-telemetry
apigee-org
apigee-env

Alat create-service-account

Apigee menyediakan alat, create-service-account, di direktori apigee-operator/etc/tools:

$APIGEE_HELM_CHARTS_HOME/
    └── apigee-operator/
        └── etc/
            └── tools/
                └── create-service-account

Alat ini membuat akun layanan, menetapkan peran IAM ke setiap akun, dan mendownload file sertifikat dalam format JSON untuk setiap akun.

Pastikan Anda dapat menjalankan create-service-account. Jika Anda baru saja mendownload diagram, file create-service-account mungkin tidak dalam mode yang dapat dieksekusi. Di direktori APIGEE_HELM_CHARTS_HOME, jalankan perintah berikut:

$APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account --help

Jika output Anda menampilkan permission denied, Anda harus membuat file dapat dieksekusi, misalnya dengan chmod di Linux, MacOS, atau UNIX atau di Windows Explorer atau dengan perintah icacls di Windows. Contoh:

chmod +x $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account

Buat akun layanan

Pilih prosedur untuk metode autentikasi akun layanan yang akan Anda gunakan dalam penginstalan. Untuk mengetahui informasi selengkapnya, lihat Metode autentikasi akun layanan di Apigee Hybrid.

Secret Kubernetes

Untuk menyiapkan file kunci akun layanan yang akan disimpan di Secret Kubernetes, Anda dapat menggunakan alat create-service-account untuk membuat file kunci akun layanan dengan tanda --dir guna membuat direktori untuk file kunci.

Produksi

  1. Pastikan variabel lingkungan PROJECT_ID ditentukan.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable . Jika tidak ditentukan, tentukan dengan ID Project Google Cloud Anda atau tambahkan tanda --project-id PROJECT_ID ke perintah create-service-account.

  2. Buat akun layanan dengan perintah berikut, dengan $APIGEE_HELM_CHARTS_HOME adalah jalur tempat Anda mendownload diagram Helm Apigee. Anda mungkin diminta untuk membuat setiap akun layanan. Berikan respons dengan y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Pastikan file akun layanan telah dibuat dengan memeriksa konten direktori service-accounts. Output Anda akan terlihat seperti ini:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-cassandra.json            my-project-apigee-runtime.json
    my-project-apigee-logger.json               my-project-apigee-synchronizer.json
    my-project-apigee-mart.json                 my-project-apigee-udca.json
    my-project-apigee-metrics.json              my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json

Non-prod

  1. Pastikan variabel lingkungan PROJECT_ID ditentukan.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable . Jika tidak ditentukan, tentukan dengan ID Project Google Cloud Anda atau tambahkan tanda --project-id PROJECT_ID ke perintah create-service-account.

  2. Buat akun layanan dengan perintah berikut, dengan $APIGEE_HELM_CHARTS_HOME adalah jalur tempat Anda mendownload diagram Helm Apigee. Anda mungkin diminta untuk membuat akun layanan. Berikan respons dengan y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Pastikan file akun layanan dibuat dengan memeriksa konten direktori service-accounts. Output Anda akan terlihat seperti ini:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-non-prod.json

File JSON

Karena Helm tidak mendukung referensi file di luar direktori chart, Anda akan membuat setiap file sertifikat akun layanan di direktori chart untuk komponen hybrid yang sesuai.

Untuk langkah berikutnya, pilih apakah Anda mengonfigurasi penginstalan Produksi atau Non-produksi.

Produksi

  1. Pastikan variabel lingkungan PROJECT_ID ditentukan.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable . Jika tidak ditentukan, tentukan dengan ID Project Google Cloud Anda atau tambahkan tanda --project-id PROJECT_ID ke perintah create-service-account.

  2. Buat akun layanan dengan perintah berikut, dengan $APIGEE_HELM_CHARTS_HOME adalah jalur tempat Anda mendownload diagram Helm Apigee. Anda mungkin diminta untuk membuat setiap akun layanan. Berikan respons dengan y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-cassandra \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-logger \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-mart \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-metrics \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-telemetry
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-runtime \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-synchronizer \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-udca \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-env
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-udca \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-watcher \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org

    Jika Anda mengaktifkan Monetisasi untuk Apigee hybrid (Apigee hybrid v1.15.1 dan yang lebih baru):

    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --profile apigee-mint-task-scheduler \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-org
    
  3. Salin file JSON apigee-udca ke direktori diagram apigee-env. ID ini diperlukan untuk operasi cakupan organisasi dan cakupan lingkungan.
    cp $APIGEE_HELM_CHARTS_HOME/apigee-org/$PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
  4. Pastikan file akun layanan dibuat di direktori yang benar dengan memeriksa konten setiap direktori diagram. Output Anda akan terlihat seperti ini:
    ls ./apigee-datastore
    Chart.yaml  my-project-apigee-cassandra.json  templates  values.yaml
    
    ls ./apigee-telemetry
    Chart.yaml                     my-project-apigee-metrics.json  values.yaml
    my-project-apigee-logger.json  templates
    
    ls ./apigee-org
    Chart.yaml                                  my-project-apigee-udca.json
    my-project-apigee-mart.json                 my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json  values.yaml
    
    ls ./apigee-env
    Chart.yaml                      my-project-apigee-synchronizer.json  templates
    my-project-apigee-runtime.json  my-project-apigee-udca.json          values.yaml
    

Non-prod

  1. Pastikan variabel lingkungan PROJECT_ID ditentukan.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable . Jika tidak ditentukan, tentukan dengan ID Project Google Cloud Anda atau tambahkan tanda --project-id PROJECT_ID ke perintah create-service-account.

  2. Buat akun layanan dengan perintah berikut, dengan $APIGEE_HELM_CHARTS_HOME adalah jalur tempat Anda mendownload diagram Helm Apigee. Anda mungkin diminta untuk membuat setiap akun layanan. Berikan respons dengan y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/apigee-datastore
  3. Verifikasi nama file akun layanan yang dibuat di direktori apigee-datastore:
    ls $APIGEE_HELM_CHARTS_HOME/apigee-datastore
    Chart.yaml  PROJECT_ID-apigee-non-prod.json  templates  values.yaml
  4. Salin file akun layanan ke direktori diagram lain yang akan memerlukannya:
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-org/
    cp $APIGEE_HELM_CHARTS_HOME/apigee-datastore/SA_FILE_NAME $APIGEE_HELM_CHARTS_HOME/apigee-env/

Vault

Untuk menyiapkan file kunci akun layanan yang akan disimpan di Vault, Anda dapat menggunakan alat create-service-account untuk membuat file kunci akun layanan dengan tanda --dir untuk membuat direktori bagi file kunci.

Produksi

  1. Pastikan variabel lingkungan PROJECT_ID ditentukan.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable . Jika tidak ditentukan, tentukan dengan ID Project Google Cloud Anda atau tambahkan tanda --project-id PROJECT_ID ke perintah create-service-account.

  2. Buat akun layanan dengan perintah berikut, dengan $APIGEE_HELM_CHARTS_HOME adalah jalur tempat Anda mendownload diagram Helm Apigee. Anda mungkin diminta untuk membuat setiap akun layanan. Berikan respons dengan y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Pastikan file akun layanan telah dibuat dengan memeriksa konten direktori service-accounts. Output Anda akan terlihat seperti ini:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-cassandra.json            my-project-apigee-runtime.json
    my-project-apigee-logger.json               my-project-apigee-synchronizer.json
    my-project-apigee-mart.json                 my-project-apigee-udca.json
    my-project-apigee-metrics.json              my-project-apigee-watcher.json
    my-project-apigee-mint-task-scheduler.json
    

Non-prod

  1. Pastikan variabel lingkungan PROJECT_ID ditentukan.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable . Jika tidak ditentukan, tentukan dengan ID Project Google Cloud Anda atau tambahkan tanda --project-id PROJECT_ID ke perintah create-service-account.

  2. Buat akun layanan dengan perintah berikut, dengan $APIGEE_HELM_CHARTS_HOME adalah jalur tempat Anda mendownload diagram Helm Apigee. Anda mungkin diminta untuk membuat akun layanan. Berikan respons dengan y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Pastikan file akun layanan dibuat dengan memeriksa konten direktori service-accounts. Output Anda akan terlihat seperti ini:
    ls $APIGEE_HELM_CHARTS_HOME/service-accounts/
    my-project-apigee-non-prod.json

WIF untuk GKE

Buat akun layanan untuk penginstalan Anda dengan perintah berikut:

Produksi

  1. Pastikan variabel lingkungan PROJECT_ID ditentukan.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable . Jika tidak ditentukan, tentukan dengan ID Project Google Cloud Anda atau tambahkan tanda --project-id PROJECT_ID ke perintah create-service-account.

  2. Buat akun layanan dengan perintah berikut, dengan $APIGEE_HELM_CHARTS_HOME adalah jalur tempat Anda mendownload diagram Helm Apigee. Anda mungkin diminta untuk membuat setiap akun layanan. Berikan respons dengan y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifikasi pembuatan akun layanan Google" dengan perintah berikut:
    gcloud iam service-accounts list --project $PROJECT_ID

    Output-nya akan terlihat seperti berikut:

    DISPLAY NAME                EMAIL                                                          DISABLED
    apigee-cassandra            apigee-cassandra@my-project.iam.gserviceaccount.com            False
    apigee-mart                 apigee-mart@my-project.iam.gserviceaccount.com                 False
    apigee-metrics              apigee-metrics@my-project.iam.gserviceaccount.com              False
    apigee-mint-task-scheduler  apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com  False
    apigee-runtime              apigee-runtime@my-project.iam.gserviceaccount.com              False
    apigee-synchronizer         apigee-synchronizer@my-project.iam.gserviceaccount.com         False
    apigee-udca                 apigee-udca@my-project.iam.gserviceaccount.com                 False
    apigee-watcher              apigee-watcher@my-project.iam.gserviceaccount.com              False
    

Non-prod

  1. Pastikan variabel lingkungan PROJECT_ID ditentukan.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable . Jika tidak ditentukan, tentukan dengan ID Project Google Cloud Anda atau tambahkan tanda --project-id PROJECT_ID ke perintah create-service-account.

  2. Buat akun layanan dengan perintah berikut, dengan $APIGEE_HELM_CHARTS_HOME adalah jalur tempat Anda mendownload diagram Helm Apigee. Anda mungkin diminta untuk membuat akun layanan. Berikan respons dengan y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifikasi pembuatan akun layanan Google" dengan perintah berikut:
    gcloud iam service-accounts list --project $PROJECT_ID

    Output-nya akan terlihat seperti berikut:

    DISPLAY NAME         EMAIL                                                   DISABLED
    apigee-non-prod      apigee-non-prod@my-project.iam.gserviceaccount.com      False
    

Opsional: Anda tidak memerlukan file kunci akun layanan untuk Workload Identity Federation for GKE. Anda dapat menghapus direktori service-accounts setelah selesai.

WIF di platform lain

Buat akun layanan untuk penginstalan Anda dengan perintah berikut:

Produksi

  1. Pastikan variabel lingkungan PROJECT_ID ditentukan.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable . Jika tidak ditentukan, tentukan dengan ID Project Google Cloud Anda atau tambahkan tanda --project-id PROJECT_ID ke perintah create-service-account.

  2. Buat akun layanan dengan perintah berikut, dengan $APIGEE_HELM_CHARTS_HOME adalah jalur tempat Anda mendownload diagram Helm Apigee. Anda mungkin diminta untuk membuat setiap akun layanan. Berikan respons dengan y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifikasi pembuatan akun layanan Google" dengan perintah berikut:
    gcloud iam service-accounts list --project $PROJECT_ID

    Output-nya akan terlihat seperti berikut:

    DISPLAY NAME                EMAIL                                                          DISABLED
    apigee-cassandra            apigee-cassandra@my-project.iam.gserviceaccount.com            False
    apigee-mart                 apigee-mart@my-project.iam.gserviceaccount.com                 False
    apigee-metrics              apigee-metrics@my-project.iam.gserviceaccount.com              False
    apigee-mint-task-scheduler  apigee-mint-task-scheduler@my-project.iam.gserviceaccount.com  False
    apigee-runtime              apigee-runtime@my-project.iam.gserviceaccount.com              False
    apigee-synchronizer         apigee-synchronizer@my-project.iam.gserviceaccount.com         False
    apigee-udca                 apigee-udca@my-project.iam.gserviceaccount.com                 False
    apigee-watcher              apigee-watcher@my-project.iam.gserviceaccount.com              False
    

Non-prod

  1. Pastikan variabel lingkungan PROJECT_ID ditentukan.
    echo $PROJECT_ID

    create-service-account tool uses the value of thePROJECT_ID environment variable . Jika tidak ditentukan, tentukan dengan ID Project Google Cloud Anda atau tambahkan tanda --project-id PROJECT_ID ke perintah create-service-account.

  2. Buat akun layanan dengan perintah berikut, dengan $APIGEE_HELM_CHARTS_HOME adalah jalur tempat Anda mendownload diagram Helm Apigee. Anda mungkin diminta untuk membuat akun layanan. Berikan respons dengan y.
    $APIGEE_HELM_CHARTS_HOME/apigee-operator/etc/tools/create-service-account \
      --env non-prod \
      --dir $APIGEE_HELM_CHARTS_HOME/service-accounts
  3. Verifikasi pembuatan akun layanan Google" dengan perintah berikut:
    gcloud iam service-accounts list --project $PROJECT_ID

    Output-nya akan terlihat seperti berikut:

    DISPLAY NAME         EMAIL                                                   DISABLED
    apigee-non-prod      apigee-non-prod@my-project.iam.gserviceaccount.com      False
    

Opsional: Anda tidak memerlukan file kunci akun layanan untuk Workload Identity Federation for GKE. Anda dapat menghapus direktori service-accounts setelah selesai.

Untuk mengetahui informasi selengkapnya tentang akun layanan dan alat create-service-account, lihat:

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

Langkah berikutnya

1 2 3 4 (NEXT) Langkah 5: Siapkan autentikasi akun layanan 6 7 8 9 10 11