Dokumen ini menjelaskan kunci dan akun layanan Google Cloud yang perlu Anda membuat cluster dalam implementasi Google Distributed Cloud Anda.
Petunjuk di sini sudah lengkap. Untuk pengantar yang lebih singkat tentang cara menggunakan akun layanan, lihat Menyiapkan infrastruktur minimal.
Sebelum memulai
Ringkasan akun layanan
Sebelum membuat admin dan cluster pengguna, Anda harus memiliki layanan ini akun:
- Akun layanan akses komponen
- 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 project Google Cloud
Saat membuat akun layanan, Anda mengaitkannya dengan project Google Cloud. Project Google Cloud ini disebut project induk layanan menggunakan akun layanan.
Anda dapat menentukan project induk akun layanan dengan melihat
alamat email akun layanan. Misalnya, berikut ini alamat emailnya
akun layanan bernama logger
. Project induk adalah alice-123
.
logger@alice-123.iam.gserviceaccount.com
Saat Anda memberikan peran Identity and Access Management (IAM) ke layanan akun layanan, Anda memberikan peran ke akun layanan pada project Google Cloud Anda. Hal ini mengikuti pola umum, yaitu memberikan peran prinsip terkait resource.
Misalnya, Anda dapat memberikan peran bigquery.dataEditor
ke
akun layanan logger@alice-123.iam.gserviceaccount.com
di
project bob-456
. Dalam hal ini, akun layanan adalah prinsipnya, dan
Project Google Cloud adalah resource-nya.
Penting untuk dipahami bahwa Anda dapat memberikan peran ke akun layanan di project Google Cloud yang bukan merupakan project induk layanan menggunakan akun layanan.
Izin untuk memberikan peran ke akun layanan
Setiap akun layanan harus diberi peran tertentu pada
project Google Cloud Anda. Misalnya, akun layanan {i>connect-register <i}Anda harus
diberi peran gkehub.editor
pada project host fleet Anda.
Untuk memberikan peran pada project Google Cloud, Anda harus
memiliki izin akses tertentu pada project. Untuk mengetahui detailnya, lihat
roles/resourcemanager.projectIamAdmin
inci
Memahami peran.
Jika Anda memiliki izin yang diperlukan, Anda dapat memberikan peran tersebut sendiri. Jika tidak, orang lain di organisasi Anda harus memberikan peran tersebut untuk Anda.
Menggunakan gkeadm
untuk membuat akun layanan secara otomatis
Halaman ini menunjukkan cara membuat akun layanan dan memberikan peran secara manual kepada
akun layanan. Sebagai alternatif untuk melakukan langkah-langkah ini
secara manual, Anda dapat meminta
gkeadm
membuat beberapa akun layanan, dan memberikan peran, untuk Anda saat Anda
membuat workstation admin. Untuk informasi selengkapnya, lihat
Membuat workstation admin.
Akun layanan akses komponen
Google Distributed Cloud menggunakan akun layanan ini untuk mendownload komponen cluster, atas nama Anda, dari Container Registry.
Untuk membuat 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 Anda inginkan menjadi project induk akun layanan Anda.
Untuk membuat kunci JSON bagi akun layanan akses komponen Anda:
gcloud iam service-accounts keys create component-access-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Ganti SERVICE_ACCOUNT_EMAIL dengan alamat email Anda akun layanan akses komponen.
Memberikan peran ke akun layanan akses komponen Anda
Akun layanan akses komponen Anda harus diberi izin berikut Peran IAM di project host perangkat. Peran ini diperlukan agar Google Distributed Cloud dapat melakukan pemeriksaan preflight:
serviceusage.serviceUsageViewer
iam.roleViewer
iam.serviceAccountViewer
compute.viewer
Untuk memberikan peran:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/serviceusage.serviceUsageViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.roleViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/iam.serviceAccountViewer"
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/compute.viewer"
Ganti kode berikut:
FLEET_HOST_PROJECT_ID: ID host armada Anda proyek.
SERVICE_ACCOUNT_EMAIL: alamat email akun layanan akses komponen.
Akun layanan Connect-register
Google Distributed Cloud menggunakan akun layanan ini untuk mendaftarkan cluster Anda ke suatu fleet.
Untuk membuat akun layanan pendaftaran koneksi:
gcloud iam service-accounts create connect-register-sa \ --project PROJECT_ID
Ganti PROJECT_ID dengan ID Project Google Cloud yang ingin Anda jadikan induk dari pendaftaran koneksi akun layanan Anda.
Untuk membuat kunci JSON bagi akun layanan pendaftaran koneksi Anda:
gcloud iam service-accounts keys create connect-register-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Ganti SERVICE_ACCOUNT_EMAIL dengan email alamat akun layanan pendaftaran koneksi Anda.
Akun layanan pendaftaran koneksi Anda harus diberi peran gkehub.editor
pada
project host perangkat.
Untuk memberikan peran gkehub.editor
ke akun layanan pendaftaran terhubung Anda:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/gkehub.editor"
Akun layanan pemantauan logging
Google Distributed Cloud menggunakan akun layanan ini untuk mengekspor log dan metrik dari klaster hingga Cloud Logging dan Cloud Monitoring.
Untuk membuat akun layanan pemantauan logging:
gcloud iam service-accounts create logging-monitoring-sa \ --project=PROJECT_ID
Ganti PROJECT_ID dengan ID project Google Cloud yang Anda inginkan untuk menjadi induk dari pemantauan logging Anda akun layanan Anda.
Untuk membuat kunci JSON bagi akun layanan pemantauan logging Anda:
gcloud iam service-accounts keys create logging-monitoring-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Akun layanan pemantauan logging Anda harus diberi peran berikut pada project host perangkat:
opsconfigmonitoring.resourceMetadata.writer
logging.logWriter
monitoring.metricWriter
monitoring.dashboardEditor
kubernetesmetadata.publisher
Untuk memberikan peran yang diperlukan ke akun layanan pemantauan logging Anda:
gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/opsconfigmonitoring.resourceMetadata.writer" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/logging.logWriter" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/monitoring.metricWriter" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/monitoring.dashboardEditor" gcloud projects add-iam-policy-binding FLEET_HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/kubernetesmetadata.publisher"
Ganti SERVICE_ACCOUNT_EMAIL dengan alamat email Anda akun layanan pemantauan logging.
Akun layanan opsional
Akun layanan logging audit
Google Distributed Cloud menggunakan akun layanan ini untuk mengirim log audit Kubernetes dari cluster Anda ke Cloud Audit Logs.
Untuk membuat akun layanan logging audit:
gcloud iam service-accounts create audit-logging-sa \ --project PROJECT_ID
Ganti PROJECT_ID dengan ID Project Google Cloud yang Anda inginkan untuk menjadi induk dari logging audit Anda akun layanan Anda.
Untuk membuat kunci JSON bagi akun layanan logging audit Anda:
gcloud iam service-accounts keys create audit-logging-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Ganti SERVICE_ACCOUNT_EMAIL dengan alamat email tersebut akun layanan logging audit Anda.
Anda tidak perlu memberikan peran apa pun ke akun layanan logging audit Anda.
Akun layanan pengukuran penggunaan
Google Distributed Cloud menggunakan akun layanan ini untuk menyimpan data penggunaan di set data BigQuery.
Untuk membuat akun layanan pengukuran penggunaan:
gcloud iam service-accounts create usage-metering-sa \ --project PROJECT_ID
Ganti PROJECT_ID dengan ID Project Google Cloud yang Anda inginkan untuk menjadi induk dari pengukuran penggunaan Anda akun layanan Anda.
Untuk membuat kunci JSON bagi akun layanan pengukuran penggunaan Anda:
gcloud iam service-accounts keys create usage-metering-key.json \ --iam-account SERVICE_ACCOUNT_EMAIL
Ganti SERVICE_ACCOUNT_EMAIL dengan email alamat akun layanan pengukuran penggunaan Anda.
Akun layanan pengukuran penggunaan Anda harus diberi bigquery.dataEditor
peran di
project pengukuran penggunaan.
Ini adalah project Google Cloud tempat Anda ingin melihat data penggunaan untuk
cluster pengguna.
Untuk memberikan peran bigquery.dataEditor
ke akun layanan pengukuran penggunaan Anda:
gcloud projects add-iam-policy-binding USAGE_METERING_PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT_EMAIL" \ --role "roles/bigquery.dataEditor"
Ganti USAGE_METERING_PROJECT_ID dengan ID penggunaan Anda project pengukuran standar.
Akun layanan otorisasi biner
Google Distributed Cloud menggunakan akun layanan ini untuk memanggil Binary Authorization API.
Untuk informasi tentang cara membuat akun layanan otorisasi biner, lihat Otorisasi Biner di GKE lokal.