Halaman ini menjelaskan cakupan akses default yang diberikan ke node di cluster Google Kubernetes Engine (GKE). Dengan membaca halaman ini, Anda akan mempelajari cakupan akses default yang diberikan ke cluster, dan cara mengonfigurasi cakupan akses kustom, jika diperlukan.
Halaman ini ditujukan bagi Spesialis keamanan dan Operator yang membuat dan mengelola cluster, serta harus memahami akses default yang diberikan ke cluster dan cara mengubah akses tersebut jika diperlukan. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten Google Cloud, lihat Peran dan tugas pengguna GKE Enterprise umum.
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 di node pool yang ada. Sebagai gantinya, buat node pool baru dengan cakupan baru dan migrasikan workload ke node pool 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 menjalankan berbagai tugas, seperti men-deploy aplikasi, untuk 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