Halaman ini menjelaskan cakupan akses default yang diberikan ke node di cluster Google Kubernetes Engine (GKE).
Apa itu cakupan akses?
Cakupan akses adalah metode lama untuk memberikan izin bagi node Anda, dan untuk workload yang berjalan pada node Anda jika workload menggunakan kredensial default aplikasi (ADC). Cakupan akses menentukan cakupan OAuth yang digunakan dalam panggilan API dari library klien atau gcloud CLI.
Sebaiknya Anda tidak menetapkan cakupan akses Anda sendiri. Sebagai gantinya, Anda harus menggunakan izin IAM atau kontrol akses berbasis peran (RBAC) Kubernetes untuk memberikan akses ke akun layanan IAM atau akun layanan Kubernetes tertentu.
Cakupan akses default
Saat Anda membuat cluster GKE baru, Google Cloud menetapkan serangkaian cakupan akses default ke node berdasarkan akun layanan yang digunakan oleh node. Cakupan akses ini memungkinkan fungsionalitas tertentu untuk GKE.
Anda juga dapat menetapkan cakupan akses secara manual menggunakan flag --scopes
saat
membuat
Cluster standar.
Cluster Autopilot,
atau node pool. Anda
tidak dapat mengubah cakupan akses pada kumpulan node yang ada. Sebagai gantinya, buat kumpulan node baru dengan cakupan baru dan migrasikan workload ke kumpulan node tersebut.
Bagian berikut menjelaskan cakupan akses default yang ditambahkan GKE ke node berdasarkan apakah Anda menentukan akun layanan kustom atau tidak, dan apakah Anda menentukan cakupan akses secara manual.
Cluster Autopilot
Akun layanan | Apakah Anda menentukan cakupan akses secara manual? | Cakupan akses yang ditambahkan GKE |
---|---|---|
Compute Engine default service account | Tidak |
|
Ya | Cakupan yang ditentukan secara manual | |
Akun layanan kustom | Tidak | https://www.googleapis.com/auth/cloud-platform |
Ya | Cakupan yang ditentukan secara manual |
Cluster standar
Akun layanan | Cakupan akses yang ditentukan secara manual? | Cakupan akses GKE |
---|---|---|
Compute Engine default service account | Tidak |
|
Ya |
|
|
Akun layanan kustom | Tidak |
|
Ya |
|
Mengonfigurasi akun layanan kustom untuk workload
IAM adalah sistem kontrol akses untuk memberikan peran yang diizinkan kepada pengguna dan akun layanan dalam project Google Cloud Anda. Akun layanan adalah Akun Google khusus yang melakukan tugas, seperti men-deploy aplikasi, atas nama Anda. Anda menggunakan IAM untuk membuat akun layanan, lalu menggunakan binding kebijakan IAM untuk mengamankan akun.
Jika workload Anda memerlukan akses ke Compute Engine, berikan peran Admin Compute Engine kepada akun layanan. Jika workload Anda perlu mengambil image pribadi dari Artifact Registry, lihat Mengonfigurasi kontrol akses untuk repositori Artifact Registry.
Membuat akun layanan
Untuk membuat akun layanan kustom bernama kubernetes-engine-node-sa
, jalankan perintah berikut:
export NODE_SA_NAME=kubernetes-engine-node-sa
gcloud iam service-accounts create $NODE_SA_NAME \
--display-name "GKE Node Service Account"
export NODE_SA_EMAIL=`gcloud iam service-accounts list --format='value(email)' \
--filter='displayName:GKE Node Service Account'`
Memberikan peran minimal
Untuk mengonfigurasi akun layanan dengan peran dan izin minimal yang diperlukan agar node GKE Anda dapat berfungsi, jalankan perintah berikut, dengan $PROJECT
sebagai ID project:
export PROJECT=`gcloud config get-value project`
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/monitoring.metricWriter
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/monitoring.viewer
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/logging.logWriter
Memberikan peran tambahan
Untuk memberikan peran Admin Compute Engine kepada akun layanan, jalankan perintah berikut:
gcloud projects add-iam-policy-binding $PROJECT \
--member serviceAccount:$NODE_SA_EMAIL \
--role roles/compute.admin
Untuk mempelajari cara memberi akun layanan akses ke image pribadi yang disimpan di Artifact Registry, lihat Memberikan akses ke cluster Google Kubernetes Engine.
Membuat cluster atau node pooldengan akun layanan kustom
Untuk membuat cluster yang menggunakan akun layanan kustom, jalankan perintah berikut:
gcloud container clusters create --service-account=$NODE_SA_EMAIL
Untuk membuat node pooldi cluster yang ada:
gcloud container node-pools create --service-account=$NODE_SA_EMAIL