Panduan ini ditujukan bagi administrator platform yang perlu menyiapkan connect gateway untuk digunakan oleh akun pengguna project mereka, menggunakan Google Grup untuk otorisasi. Sebelum membaca halaman ini, pastikan Anda memahami konsep dalam ringkasankami. Untuk mengotorisasi akun individual, lihat penyiapan default.
Penyiapan ini memungkinkan pengguna login ke cluster fleet yang dikonfigurasi menggunakan Google Cloud CLI, connect gateway, dan Google Cloud konsol.
Fitur ini menggunakan Google Grup yang terkait dengan Google Workspace atau edisi Cloud Identity apa pun.
Jenis cluster yang didukung
Anda dapat menyiapkan kontrol akses dengan Google Grup melalui connect gateway untuk jenis cluster berikut:
- GKE di Google Cloud: semua versi yang tersedia. Untuk menyiapkan connect gateway, konfigurasikan Google Grup untuk RBAC, lalu berikan peran IAM ke Google Grup.
- Google Distributed Cloud (khusus software) di VMware dan bare metal: semua versi yang tersedia.
- Google Distributed Cloud terhubung: semua versi yang tersedia.
- Cluster terlampir GKE: versi 1.28.0-gke.2 dan yang lebih baru.
GKE di AWS dan GKE di Azure: semua versi yang tersedia.
Untuk menggunakan fitur ini dengan lingkungan yang tidak ada dalam daftar sebelumnya, hubungi Layanan Pelanggan Cloud atau tim connect gateway.
Cara kerjanya
Seperti yang dijelaskan dalam ringkasan, sering kali berguna untuk dapat memberikan akses ke cluster kepada pengguna berdasarkan keanggotaan mereka di Google Grup, yaitu grup yang dibuat di Google Workspace. Otorisasi berdasarkan keanggotaan grup berarti Anda tidak perlu menyiapkan otorisasi terpisah untuk setiap akun, sehingga kebijakan lebih mudah dikelola dan diaudit. Jadi, misalnya, Anda dapat dengan mudah membagikan akses cluster ke tim, sehingga tidak perlu menambahkan/menghapus pengguna satu per satu dari cluster saat mereka bergabung atau keluar dari tim. Anda dapat mengonfigurasi connect gateway untuk mendapatkan informasi keanggotaan Google Grup bagi setiap pengguna yang login ke cluster. Kemudian, Anda dapat menggunakan informasi ini dalam kebijakan kontrol akses.
Berikut ini menunjukkan alur umum bagi pengguna yang melakukan autentikasi ke dan menjalankan perintah terhadap cluster dengan layanan ini diaktifkan. Agar alur ini berhasil, kebijakan RBAC harus ada di cluster untuk grup yang:
Berisi pengguna
alice@example.comsebagai anggota.Merupakan grup bertingkat dari
gke-security-groups@example.com.
- Pengguna
alice@example.comlogin menggunakan identitas Google-nya dan, jika berencana menggunakan cluster dari command line, akan mendapatkan gateway clusterkubeconfigseperti yang dijelaskan dalam Menggunakan connect gateway. - Pengguna mengirimkan permintaan dengan menjalankan perintah
kubectlatau membuka halaman Google Kubernetes Engine Workload atau Object Browser di Google Cloud konsol. - Permintaan diterima oleh layanan Connect, yang melakukan pemeriksaan otorisasi dengan IAM.
- Layanan Connect meneruskan permintaan ke Connect Agent yang berjalan di cluster. Permintaan disertai dengan informasi kredensial pengguna untuk digunakan dalam autentikasi dan otorisasi di cluster.
- Connect Agent meneruskan permintaan ke server Kubernetes API.
- Server Kubernetes API meneruskan permintaan ke Pod
anthos-identity-servicedi cluster, yang memvalidasi permintaan. - Pod
anthos-identity-servicemenampilkan informasi pengguna dan grup ke server Kubernetes API. Server Kubernetes API kemudian dapat menggunakan informasi ini untuk mengotorisasi permintaan berdasarkan kebijakan RBAC yang dikonfigurasi cluster.
Sebelum memulai
- Login ke akun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini.
Aktifkan Connect Gateway, GKE Connect, GKE Hub, Anthos Identity Service, dan Cloud Resource Manager API:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable connectgateway.googleapis.com
gkeconnect.googleapis.com gkehub.googleapis.com anthosidentityservice.googleapis.com cloudresourcemanager.googleapis.com -
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init -
Pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini.
Aktifkan Connect Gateway, GKE Connect, GKE Hub, Anthos Identity Service, dan Cloud Resource Manager API:
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.gcloud services enable connectgateway.googleapis.com
gkeconnect.googleapis.com gkehub.googleapis.com anthosidentityservice.googleapis.com cloudresourcemanager.googleapis.com - Untuk cluster di luar Google Cloud, komponen autentikasi di cluster Anda harus memanggil Cloud Identity API. Periksa apakah Anda memiliki kebijakan jaringan yang mengharuskan traffic keluar dari cluster Anda untuk melalui proxy.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi connect gateway dan cluster Anda, minta administrator untuk memberi Anda peran IAM Editor (roles/editor) di project.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Menyiapkan pengguna dan grup
Pastikan grup yang ingin Anda gunakan dengan fitur ini disiapkan sebagai berikut:
- Pastikan ada grup di Google Workspace organisasi Anda dengan format
gke-security-groups@YOUR-DOMAIN. Jika Anda tidak memiliki grup tersebut, ikuti petunjuk di Membuat grup di organisasi Anda untuk membuat grup menggunakan konsol Google Admin. - Ikuti petunjuk di Menambahkan grup ke grup lain
untuk menambahkan grup yang
ingin Anda gunakan untuk kontrol akses sebagai grup bertingkat dari
gke-security-groups. Jangan tambahkan pengguna satu per satu sebagai anggotagke-security-groups.
Akun pengguna yang ingin Anda gunakan dengan fitur ini harus menggunakan nama domain yang sama dengan nama domain grupnya.
Mengonfigurasi dukungan untuk grup
Connect gateway menggunakan komponen autentikasi di cluster Anda untuk mengambil informasi keanggotaan grup. Untuk mengaktifkan komponen yang diperlukan, lihat salah satu dokumen berikut bergantung pada jenis cluster Anda:
- GKE di Google Cloud: konfigurasikan Google Grup untuk RBAC, lalu lanjutkan ke bagian Memberikan peran IAM ke grup.
- Cluster terlampir GKE:
Google Distributed Cloud: aktifkan dukungan untuk grup dengan memperbarui resource kustom ClientConfig di cluster Anda. Distributed Cloud otomatis membuat ClientConfig bernama
defaultdi namespacekube-publicdi setiap cluster. Untuk memverifikasi bahwa resource kustom ini ada, jalankan perintah berikut:kubectl --kubeconfig CLUSTER_KUBECONFIG get ClientConfig default -n kube-publicGanti
CLUSTER_KUBECONFIGdengan jalur ke kubeconfig cluster.
Bagian berikut menunjukkan cara memperbarui resource kustom ClientConfig untuk mengaktifkan dukungan grup. Bagian ini hanya berlaku untuk cluster Google Distributed Cloud. Untuk jenis cluster lainnya, seperti GKE di Google Cloud; GKE di AWS; dan GKE di Azure, lanjutkan ke bagian Memberikan peran IAM ke grup.
Untuk Distributed Cloud, Anda dapat mengonfigurasi dukungan untuk grup bagi setiap cluster atau untuk fleet. Jenis cluster yang Anda gunakan menentukan cara Anda mengonfigurasi dukungan grup, sebagai berikut:
- Distributed Cloud terhubung: hanya cluster individual. Konfigurasi tingkat fleet tidak didukung.
- Google Distributed Cloud (khusus software) di VMware dan bare metal: cluster atau fleet individual.
Mengonfigurasi dukungan grup menggunakan GKE Fleet API
Untuk Google Distributed Cloud (khusus software) di VMware dan bare metal, Anda dapat mengonfigurasi dukungan grup di tingkat fleet. Jika sebelumnya Anda mengonfigurasi autentikasi tingkat fleet, seperti untuk penyedia identitas yang berbeda, autentikasi grup sudah diaktifkan. Namun, jika kebijakan jaringan Anda mengharuskan traffic keluar untuk melewati proxy, Anda harus memperbarui konfigurasi yang ada dengan informasi tentang proxy tersebut.
Untuk mengonfigurasi dukungan grup di tingkat fleet, pilih salah satu opsi berikut:
Konsol
Di Google Cloud konsol, buka halaman GKE Identity Service.
Klik Enable Identity Service.
Pilih cluster Google Distributed Cloud (khusus software) di VMware dan bare metal yang ingin Anda konfigurasi.
Klik Update configuration. Panel Edit Identity Service Clusters Config akan terbuka.
Di bagian Configure Identity Providers, Anda dapat memilih untuk mempertahankan, menambahkan, memperbarui, atau menghapus penyedia identitas.
Klik Continue untuk melanjutkan ke langkah konfigurasi berikutnya. Jika Anda telah memilih setidaknya satu cluster yang memenuhi syarat untuk penyiapan ini, bagian Google Authentication akan ditampilkan.
Pilih Enable untuk mengaktifkan autentikasi Google bagi cluster yang dipilih. Jika Anda perlu mengakses penyedia identitas Google melalui proxy, masukkan detail Proxy.
Klik Update Configuration. Tindakan ini akan menerapkan konfigurasi identitas pada cluster yang Anda pilih.
gcloud
- Aktifkan fitur layanan identitas tingkat fleet dan konfigurasikan cluster, seperti yang dijelaskan dalam Menyiapkan pengelolaan autentikasi tingkat fleet.
Di file
auth-config.yamlyang berisi spesifikasi ClientConfig Anda, tambahkan kolom berikut:spec: authentication: - name: google-authentication-method google: disable: falseNilai
falsedi kolomgoogle.disablemengaktifkan dukungan grup. Untuk menonaktifkan dukungan grup, ubah nilai ini menjaditrue.Opsional: Jika Anda perlu mengakses penyedia identitas Google melalui proxy, tambahkan kolom
proxyke konfigurasi sebelumnya:spec: authentication: - name: google-authentication-method google: disable: false proxy: PROXY_URLGanti
PROXY_URLdengan alamat server proxy untuk terhubung ke identitas Google. Contoh:http://user:password@10.10.10.10:8888Terapkan konfigurasi ke cluster di fleet Anda:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
Ganti
CLUSTER_NAMEdengan nama keanggotaan unik cluster Anda dalam fleet.
Setelah Anda menyiapkan dukungan grup di tingkat fleet, pengontrol fleet akan mengelola konfigurasi. Konfigurasi tingkat fleet akan menimpa perubahan lokal yang Anda buat pada konfigurasi di cluster tertentu.
Mengonfigurasi dukungan grup untuk setiap cluster
Untuk semua cluster Distributed Cloud, termasuk Distributed Cloud terhubung, aktifkan dukungan grup dengan memperbarui ClientConfig default di setiap cluster:
Dapatkan detail keanggotaan cluster Anda:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get memberships membership -o yamlGanti
USER_CLUSTER_KUBECONFIGdengan jalur ke file kubeconfig untuk cluster. Jika ada beberapa konteks dalam kubeconfig, konteks saat ini akan digunakan. Anda mungkin perlu mereset konteks saat ini ke cluster yang benar sebelum menjalankan perintah.Dalam respons, lihat kolom
spec.owner.iduntuk mengambil detail keanggotaan cluster. ID keanggotaan memiliki format//gkehub.googleapis.com/projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP.Outputnya mirip dengan hal berikut ini:
id: //gkehub.googleapis.com/projects/123456789/locations/global/memberships/xy-ab12cd34efBuka ClientConfig
defaultdi cluster Anda untuk mengedit:kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n kube-public edit clientconfig defaultUntuk mengaktifkan dukungan grup, tambahkan kolom
googleke kolomspec.authentication:spec: internalServer: https://kubernetes.default.svc authentication: - google: audiences: - "CLUSTER_IDENTIFIER" name: google-authentication-methodGanti
CLUSTER_IDENTIFIERdengan detail keanggotaan cluster Anda.Pastikan kolom
internalServermemiliki nilaihttps://kubernetes.default.svc.Opsional: Jika Anda perlu mengakses penyedia identitas Google melalui proxy, tambahkan kolom
proxyke konfigurasi sebelumnya:spec: internalServer: https://kubernetes.default.svc authentication: - google: audiences: - "CLUSTER_IDENTIFIER" name: google-authentication-method proxy: PROXY_URLGanti
PROXY_URLdengan alamat server proxy untuk terhubung ke identitas Google. Contoh:http://user:password@10.10.10.10:8888
Memberikan peran IAM ke Google Grup
Grup memerlukan peran tambahan berikut Google Cloud untuk berinteraksi dengan cluster terhubung melalui gateway:
roles/gkehub.gatewayAdmin. Peran ini memungkinkan anggota grup mengakses connect gateway API.- Jika anggota grup hanya memerlukan akses baca saja ke cluster terhubung,
roles/gkehub.gatewayReaderdapat digunakan sebagai gantinya. - Jika anggota grup memerlukan akses baca/tulis ke cluster terhubung,
roles/gkehub.gatewayEditordapat digunakan sebagai gantinya.
- Jika anggota grup hanya memerlukan akses baca saja ke cluster terhubung,
roles/gkehub.viewer. Peran ini memungkinkan anggota grup melihat keanggotaan cluster terdaftar.
Anda memberikan peran ini menggunakan perintah gcloud projects add-iam-policy-binding, sebagai berikut:
gcloud projects add-iam-policy-binding --member=group:GROUP_NAME@DOMAIN --role=GATEWAY_ROLE PROJECT_ID gcloud projects add-iam-policy-binding --member=group:GROUP_NAME@DOMAIN --role=roles/gkehub.viewer PROJECT_ID
di mana
- GROUP_NAME adalah Google Grup yang ingin Anda berikan peran
- DOMAIN adalah domain Google Workspace Anda
- GROUP_NAME@DOMAIN adalah grup bertingkat di bawah gke-security-groups@DOMAIN
- GATEWAY_ROLE adalah salah satu dari
roles/gkehub.gatewayAdmin,roles/gkehub.gatewayReader, ataugkehub.gatewayEditor. - PROJECT_ID adalah project Anda
Anda dapat mengetahui lebih lanjut cara memberikan izin dan peran IAM di Memberikan, mengubah, dan mencabut akses ke resource.
Mengonfigurasi kebijakan kontrol akses berbasis peran (RBAC)
Terakhir, server Kubernetes API setiap cluster harus dapat mengotorisasi perintah kubectl yang berasal dari gateway dari grup yang Anda tentukan. Untuk setiap cluster, Anda harus menambahkan kebijakan izin RBAC yang menentukan izin yang dimiliki grup di cluster.
Dalam contoh berikut, Anda akan melihat cara memberikan izin cluster-admin kepada anggota grup cluster-admin-team di cluster, menyimpan file kebijakan sebagai /tmp/admin-permission.yaml, dan menerapkannya ke cluster yang terkait dengan konteks saat ini. Pastikan juga untuk menyertakan grup cluster-admin-team di grup gke-security-groups.
cat <<EOF > /tmp/admin-permission.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: gateway-cluster-admin-group
subjects:
- kind: Group
name: cluster-admin-team@example.com
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
EOF
# Apply permission policy to the cluster.
kubectl apply --kubeconfig=KUBECONFIG_PATH -f /tmp/admin-permission.yaml
Anda dapat mengetahui lebih lanjut cara menentukan izin RBAC di Menggunakan otorisasi RBAC.
Apa langkah selanjutnya?
- Pelajari cara untuk menggunakan connect gateway untuk terhubung ke cluster dari command line.
- Lihat contoh cara menggunakan connect gateway sebagai bagian dari otomatisasi DevOps Anda di tutorial Mengintegrasikan dengan Cloud Build.