Akun dan kunci layanan

Dokumen ini menjelaskan Google Cloud akun layanan dan kunci yang Anda perlukan untuk membuat cluster dalam penerapan Google Distributed Cloud Anda.

Petunjuk di sini sudah lengkap. Untuk pengantar singkat tentang cara menggunakan akun layanan, lihat Menyiapkan infrastruktur minimal.

Sebelum memulai

Buat Google Cloud project.

Ringkasan akun layanan

Sebelum membuat cluster admin dan pengguna, Anda harus memiliki akun layanan berikut:

  • Akun layanan akses komponen
  • Menghubungkan akun layanan Connect-register
  • Akun layanan pemantauan logging

Bergantung pada fitur yang ingin diaktifkan, Anda mungkin juga perlu memiliki beberapa akun layanan opsional.

Memahami akun layanan dan Google Cloud project

Saat membuat akun layanan, Anda mengaitkannya dengan project Google Cloud . Project Google Cloud ini disebut project induk akun layanan. Dalam dokumen ini, semua perintah gcloud iam service-accounts create menggunakan variabel placeholder PROJECT_ID, yang merupakan project ID project induk akun layanan.

Anda dapat menentukan project induk akun layanan dengan melihat alamat email akun layanan. Misalnya, berikut alamat email akun layanan bernama logger. Project induknya adalah alice-123.

logger@alice-123.iam.gserviceaccount.com

Saat Anda memberikan peran Identity and Access Management (IAM) ke akun layanan, Anda memberikan peran ke akun layanan di project Google Cloud tertentu. Hal ini mengikuti pola umum pemberian peran kepada akun utama pada resource.

Misalnya, Anda dapat memberikan peran bigquery.dataEditor kepada akun layanan logger@alice-123.iam.gserviceaccount.com di project bob-456. Dalam hal ini, akun layanan adalah entitas, dan project Google Cloud adalah resource.

Anda dapat memberikan peran ke akun layanan di project Google Cloud yang bukan project induk akun layanan, atau projectnya bisa sama. Untuk memungkinkan fleksibilitas ini, dalam dokumen ini, perintah gcloud projects add-iam-policy-binding untuk akun layanan akses komponen, akun layanan connect-register, dan akun layanan logging-monitoring menggunakan variabel placeholder FLEET_HOST_PROJECT_ID. Ini adalah ID project host fleet. ID yang Anda tentukan sebagai FLEET_HOST_PROJECT_ID dalam perintah gcloud projects add-iam-policy-binding harus sama.

Izin untuk memberikan peran ke akun layanan

Setiap akun layanan Anda harus diberi peran tertentu di projectGoogle Cloud yang relevan. Misalnya, akun layanan connect-register Anda harus diberi peran gkehub.editor di project host fleet Anda.

Untuk memberikan peran di Google Cloud project, Anda harus memiliki izin tertentu di project tersebut. Untuk mengetahui detailnya, lihat roles/resourcemanager.projectIamAdmin di Memahami peran.

Jika memiliki izin yang diperlukan, Anda dapat memberikan peran sendiri. Jika tidak, orang lain di organisasi Anda harus memberikan peran tersebut kepada Anda.

Menggunakan gkeadm untuk membuat akun layanan secara otomatis

Halaman ini menunjukkan cara membuat akun layanan secara manual dan memberikan peran ke akun layanan. Sebagai alternatif untuk melakukan langkah-langkah ini secara manual, Anda dapat meminta alat command line gkeadm membuat beberapa akun layanan dan memberikan peran saat Anda membuat workstation admin. Meskipun Anda mengizinkan gkeadm membuat akun layanan, Anda harus membuat akun layanan akses komponen secara manual dan memberikan peran IAM yang diperlukan, seperti yang dijelaskan di bagian berikutnya. Untuk mengetahui informasi selengkapnya tentang akun layanan yang dapat dibuat oleh gkeadm, lihat Membuat workstation admin.

Akun layanan akses komponen

Google Distributed Cloud menggunakan akun layanan ini untuk mendownload komponen cluster atas nama Anda dari Artifact Registry.

  1. Buat akun layanan akses komponen:

    gcloud iam service-accounts create component-access-sa \
        --display-name "Component Access Service Account" \
        --project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID project Google Cloud yang ingin Anda jadikan project induk akun layanan Anda.

  2. Dapatkan alamat email akun layanan akses komponen yang baru dibuat:

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Buat kunci JSON untuk akun layanan akses komponen Anda:

    gcloud iam service-accounts keys create component-access-key.json \
    --iam-account COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL
    

    Ganti COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL dengan alamat email akun layanan akses komponen Anda.

Memberikan peran ke akun layanan akses komponen Anda

Akun layanan akses komponen Anda harus diberi peran IAM berikut di project Anda. Peran ini diperlukan agar Google Distributed Cloud dapat melakukan pemeriksaan pra-penerbangan:

  • serviceusage.serviceUsageViewer
  • iam.roleViewer
  • iam.serviceAccountViewer
  • compute.viewer

Untuk memberikan peran:

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/serviceusage.serviceUsageViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.roleViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/iam.serviceAccountViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:COMPONENT_ACCESS_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/compute.viewer"

Ganti FLEET_HOST_PROJECT_ID dengan ID project host fleet Anda. Project ini dapat berupa project yang sama dengan project tempat akun layanan dibuat, atau project yang berbeda. Project ID yang Anda tentukan di sini harus sama dengan ID yang Anda tentukan saat memberikan peran IAM ke akun layanan connect-register dan akun layanan logging-monitoring.

Menghubungkan akun layanan Connect-register

Google Distributed Cloud menggunakan akun layanan ini untuk mendaftarkan cluster Anda ke fleet.

  1. Buat akun layanan connect-register:

    gcloud iam service-accounts create connect-register-sa \
        --display-name "Connect-register Service Account" \
        --project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID projectGoogle Cloud yang ingin Anda jadikan induk akun layanan connect-register.

  2. Dapatkan alamat email akun layanan connect-register yang baru dibuat:

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Buat kunci JSON untuk akun layanan connect-register Anda:

    gcloud iam service-accounts keys create connect-register-key.json \
    --iam-account CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL
    

    Ganti CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL dengan alamat email akun layanan connect-register Anda.

  4. Berikan peran gkehub.editor ke akun layanan connect-register Anda:

    gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
        --member "serviceAccount:CONNECT_REGISTER_SERVICE_ACCOUNT_EMAIL" \
        --role "roles/gkehub.editor"
    

    Project ID yang Anda tentukan di sini harus sama dengan ID yang Anda tentukan saat Anda memberikan peran IAM ke akun layanan akses komponen dan akun layanan logging-monitoring.

Akun layanan pemantauan logging

Google Distributed Cloud menggunakan akun layanan ini untuk mengekspor log dan metrik dari cluster ke Cloud Logging dan Cloud Monitoring.

  1. Buat akun layanan logging-pemantauan:

    gcloud iam service-accounts create logging-monitoring-sa \
        --display-name "Logging-monitoring Service Account" \
        --project=PROJECT_ID
    

    Ganti PROJECT_ID dengan ID projectGoogle Cloud yang ingin Anda jadikan induk akun layanan logging-monitoring.

  2. Dapatkan alamat email akun layanan logging-monitoring yang baru dibuat:

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Buat kunci JSON untuk akun layanan logging-monitoring Anda:

    gcloud iam service-accounts keys create logging-monitoring-key.json \
        --iam-account LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL
    

    Ganti LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL dengan alamat email akun layanan logging-monitoring Anda.

Memberikan peran ke akun layanan pemantauan logging Anda

Akun layanan logging-monitoring Anda harus diberi peran berikut di project Anda:

  • opsconfigmonitoring.resourceMetadata.writer
  • logging.logWriter
  • monitoring.metricWriter
  • monitoring.dashboardEditor
  • kubernetesmetadata.publisher

Untuk memberikan peran yang diperlukan ke akun layanan logging-monitoring Anda:

gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/opsconfigmonitoring.resourceMetadata.writer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/logging.logWriter"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/monitoring.metricWriter"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/monitoring.dashboardEditor"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \
    --member "serviceAccount:LOGGING_MONITORING_SERVICE_ACCOUNT_EMAIL" \
    --role "roles/kubernetesmetadata.publisher"

Project ID yang Anda tentukan di sini harus sama dengan ID yang Anda tentukan saat Anda memberikan peran IAM ke akun layanan akses komponen dan akun layanan connect-register.

Akun layanan opsional

Akun layanan yang dijelaskan di bagian ini bersifat opsional.

Akun layanan logging audit

Google Distributed Cloud menggunakan akun layanan ini untuk mengirim log audit Kubernetes dari cluster Anda ke Cloud Audit Logs.

Jika Anda berencana membuat cluster dengan cluster lanjutan diaktifkan, (yang diperlukan untuk menyiapkan domain topologi), gunakan akun layanan dan kunci logging-monitoring untuk audit logging daripada membuat akun layanan lain.

  1. Buat akun layanan audit logging:

    gcloud iam service-accounts create audit-logging-sa \
        --project PROJECT_ID
    

    Ganti PROJECT_ID dengan ID projectGoogle Cloud yang ingin Anda jadikan induk akun layanan audit logging.

  2. Dapatkan alamat email akun layanan audit logging yang baru dibuat:

    gcloud iam service-accounts list \
        --project PROJECT_ID
    
  3. Buat kunci JSON untuk akun layanan audit logging Anda:

    gcloud iam service-accounts keys create audit-logging-key.json \
    --iam-account AUDIT_LOGGING_SERVICE_ACCOUNT_EMAIL
    

    Ganti AUDIT_LOGGING_SERVICE_ACCOUNT_EMAIL dengan alamat email akun layanan audit logging Anda.

Anda tidak perlu memberikan peran apa pun ke akun layanan audit logging Anda.

Akun layanan Otorisasi Biner

Google Distributed Cloud menggunakan akun layanan ini untuk memanggil Binary Authorization API.

Untuk mengetahui informasi tentang cara membuat akun layanan Otorisasi Biner, lihat Otorisasi Biner di GKE on-prem.

Langkah berikutnya

Membuat workstation admin