Menyiapkan gateway Connect dengan Google Grup
Panduan ini ditujukan bagi administrator platform yang perlu menyiapkan gateway Connect untuk digunakan oleh akun pengguna project mereka, menggunakan Google Grup untuk otorisasi. Sebelum membaca panduan ini, Anda harus memahami konsep dalam ringkasan kami. Untuk memberikan otorisasi ke masing-masing akun, lihat penyiapan default.
Penyiapan ini memungkinkan pengguna login ke cluster fleet yang dikonfigurasi menggunakan Google Cloud CLI, gateway Connect, dan konsol Google Cloud.
Fitur ini menggunakan Google Grup yang terkait dengan Google Workspace atau edisi Cloud Identity apa pun.
Jenis cluster yang didukung
Jika menggunakan cluster GKE di Google Cloud dengan Connect Gateway, Anda tidak perlu mengikuti seluruh penyiapan ini dengan Identity Service GKE untuk menggunakan Google Grup untuk otorisasi. Sebagai gantinya, ikuti petunjuk di Mengonfigurasi Google Grup untuk RBAC, yang juga memungkinkan pengguna login ke cluster GKE dari konsol Google Cloud menggunakan Google Grup untuk kontrol akses. Setelah melakukannya, ikuti petunjuk di bawah di Memberikan peran IAM ke Google Grup untuk mengizinkan anggota grup mengakses cluster melalui gateway Connect.
Anda dapat menyiapkan kontrol akses dengan Google Grup melalui gateway Connect untuk jenis cluster berikut:
- Cluster GKE terdaftar
- Cluster dalam deployment Google Distributed Cloud (on-premises) di VMware dan di bare metal dari Anthos (GKE Enterprise) versi 1.13 dan yang lebih baru
- GKE di AWS dan GKE di Azure dari Kubernetes versi 1.25 dan yang lebih baru.
Cluster terlampir dari versi 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2, atau yang lebih baru.
Jika Anda perlu mengupgrade cluster on-premise untuk menggunakan fitur ini, lihat Mengupgrade cluster di VMWare dan Mengupgrade cluster di bare metal.
Untuk menggunakan fitur ini dengan lingkungan selain yang tercantum di atas, hubungi Cloud Customer Care atau tim gateway Connect.
Cara kerjanya
Seperti yang dijelaskan dalam ringkasan, sering kali berguna untuk dapat memberi pengguna akses ke cluster berdasarkan keanggotaan mereka di Grup Google, yaitu grup yang dibuat di Google Workspace. Memberikan 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 secara manual saat mereka bergabung atau keluar dari tim. Dengan beberapa penyiapan tambahan menggunakan GKE Identity Service, Anda dapat mengonfigurasi gateway Connect untuk mendapatkan informasi keanggotaan Google Grup bagi setiap pengguna yang login ke cluster. Kemudian, Anda dapat menggunakan informasi grup ini dalam kebijakan kontrol akses.
Berikut ini menunjukkan alur standar untuk pengguna yang mengautentikasi 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.com
sebagai anggota.Merupakan grup bertingkat dari
gke-security-groups@example.com
.
- Pengguna
alice@example.com
login menggunakan identitas Google mereka dan, jika mereka berencana menggunakan cluster dari command line, akan mendapatkan gateway clusterkubeconfig
seperti yang dijelaskan dalam Menggunakan gateway Connect. - Pengguna mengirim permintaan dengan menjalankan perintah
kubectl
atau membuka halaman Workloads atau Object Browser Google Kubernetes Engine di konsol Google Cloud. - Permintaan diterima oleh layanan Connect, yang melakukan pemeriksaan otorisasi dengan IAM.
- Layanan Connect meneruskan permintaan ke Agen Connect yang berjalan di cluster. Permintaan ini disertai dengan informasi kredensial pengguna untuk digunakan dalam autentikasi dan otorisasi di cluster.
- Agen Connect meneruskan permintaan ke server Kubernetes API.
- Server Kubernetes API meneruskan permintaan ke Identity Service GKE, yang memvalidasi permintaan.
- Layanan Identitas GKE menampilkan informasi pengguna dan grup ke server Kubernetes API. Server API Kubernetes kemudian dapat menggunakan informasi ini untuk memberikan otorisasi pada permintaan berdasarkan kebijakan RBAC yang dikonfigurasi cluster.
Sebelum memulai
Pastikan Anda telah menginstal alat command line berikut:
- Google Cloud CLI versi terbaru, alat command line untuk berinteraksi dengan Google Cloud.
- Alat command line Kubernetes,
kubectl
, untuk berinteraksi dengan cluster Anda.
Jika Anda menggunakan Cloud Shell sebagai lingkungan shell untuk berinteraksi dengan Google Cloud, alat ini akan diinstal untuk Anda.
Pastikan Anda telah melakukan inisialisasi gcloud CLI untuk digunakan dengan project Anda.
Panduan ini mengasumsikan bahwa Anda memiliki
roles/owner
dalam project. Jika bukan pemilik project, Anda mungkin memerlukan izin tambahan untuk melakukan beberapa langkah penyiapan.Untuk cluster di luar Google Cloud, Layanan Identitas GKE perlu memanggil Google Identity API dari cluster Anda. Periksa apakah kebijakan jaringan Anda mewajibkan traffic keluar untuk melalui proxy.
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 untuk membuat grup menggunakan Konsol Admin Google Workspace. - Ikuti petunjuk di Menambahkan grup ke grup lain untuk menambahkan grup yang ingin Anda gunakan untuk kontrol akses sebagai grup bertingkat
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.
Mengaktifkan API
Untuk menambahkan gateway ke project Anda, aktifkan API gateway Connect dan API dependensi yang diperlukan. Jika pengguna hanya ingin mengautentikasi ke cluster menggunakan konsol Google Cloud, Anda tidak perlu mengaktifkan connectgateway.googleapis.com
, tetapi harus mengaktifkan API lainnya.
PROJECT_ID=example_project
gcloud services enable --project=${PROJECT_ID} \
connectgateway.googleapis.com \
anthos.googleapis.com \
gkeconnect.googleapis.com \
gkehub.googleapis.com \
cloudresourcemanager.googleapis.com
Menyiapkan Identity Service GKE
Fitur dukungan Google Grup gateway Connect menggunakan Identity Service GKE untuk mendapatkan informasi keanggotaan grup dari Google. Anda dapat mengetahui lebih lanjut Identity Service GKE di Memperkenalkan Identity Service GKE.
Jika menggunakan cluster GKE dengan gateway, Anda tidak perlu menyiapkan Identity Service GKE untuk menggunakan dukungan Grup Google. Sebagai gantinya, ikuti petunjuk di Mengonfigurasi Google Grup untuk RBAC, dan lanjutkan ke Memberikan peran IAM untuk memberikan akses ke cluster melalui gateway.
Jika Anda menggunakan cluster yang terpasang GKE dengan gateway, Identity Service GKE tidak diperlukan untuk dukungan Google Grup. Ikuti petunjuk untuk jenis cluster yang Anda pilih guna menyiapkan dukungan Google Grup:
- Menghubungkan ke cluster yang terpasang EKS
- Menghubungkan ke cluster yang terpasang AKS
- Menghubungkan ke jenis cluster lainnya
Memastikan Identity Service GKE terinstal
Identity Service GKE diinstal secara default di cluster GKE dari versi 1.7 dan seterusnya (meskipun dukungan Google Grup memerlukan versi 1.13 atau yang lebih baru). Anda dapat mengonfirmasi bahwa aplikasi tersebut diinstal dengan benar di cluster dengan menjalankan perintah berikut:
kubectl --kubeconfig CLUSTER_KUBECONFIG get all -n anthos-identity-service
Ganti CLUSTER_KUBECONFIG
dengan jalur ke kubeconfig cluster.
Mengonfigurasi dukungan Google Grup
Jika Anda menggunakan GKE di AWS atau GKE di Azure, cluster Anda akan otomatis dikonfigurasi untuk mendukung Google Grup, dan Anda dapat melanjutkan ke Memberikan peran IAM ke Google Grup.
Jika Anda menggunakan Google Distributed Cloud di VMware atau bare metal, cara Anda menyiapkan Identity Service GKE akan menentukan cara Anda harus mengonfigurasi fitur Google Grup.
Jika menggunakan Identity Service GKE untuk pertama kalinya, Anda dapat memilih antara mengonfigurasi Google Grup di tingkat Flot (direkomendasikan) atau penyiapan Per cluster.
Jika Anda bukan pengguna pertama Identity Service GKE, perhatikan salah satu hal berikut:
- Jika Anda telah menyiapkan Identity Service GKE untuk penyedia identitas lain di tingkat fleet, fitur Google Grup akan diaktifkan untuk Anda secara default. Lihat bagian Flot di bawah untuk mengetahui detail selengkapnya dan penyiapan tambahan yang mungkin Anda perlukan.
Jika Anda telah menyiapkan Identity Service GKE untuk penyedia identitas lain berdasarkan per cluster, lihat bagian Per cluster di bawah untuk mengetahui petunjuk cara memperbarui konfigurasi Anda untuk fitur Google Grup.
Fleet
Anda dapat menggunakan Konsol Google Cloud atau command line untuk mengonfigurasi akses ke grup Google di tingkat fleet.
Jika Anda telah mengonfigurasi Identity Service GKE di tingkat fleet dengan penyedia identitas lain (seperti Microsoft AD FS atau Okta), fitur Google Groups gateway Connect sudah diaktifkan untuk Anda secara default di cluster yang dikonfigurasi, asalkan penyedia identitas Google dapat dijangkau tanpa perlu menggunakan proxy.
Konsol
Jika sebelumnya Anda belum menyiapkan Identity Service GKE untuk fleet, ikuti petunjuk di Mengonfigurasi cluster untuk Identity Service GKE.
Memilih cluster dan memperbarui konfigurasi
- Di konsol Google Cloud, buka halaman Feature Manager.
- Klik Details di panel Identity Service. Detail cluster project Anda akan ditampilkan.
- Klik Perbarui layanan identitas untuk membuka panel penyiapan.
- Pilih cluster yang ingin Anda konfigurasi. Anda dapat memilih setiap cluster, atau menentukan bahwa Anda ingin semua cluster dikonfigurasi dengan konfigurasi identitas yang sama.
- Di bagian Konfigurasi Penyedia Identitas, Anda dapat memilih untuk mempertahankan, menambahkan, memperbarui, atau menghapus penyedia identitas.
- Klik Lanjutkan untuk melanjutkan ke langkah konfigurasi berikutnya. Jika Anda telah memilih minimal satu cluster yang memenuhi syarat untuk penyiapan ini, bagian Autentikasi Google akan ditampilkan.
- Pilih Enable untuk mengaktifkan autentikasi Google untuk 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
Jika sebelumnya Anda belum menyiapkan Identity Service GKE untuk fleet,
ikuti petunjuk di Mengonfigurasi cluster untuk Identity Service GKE.
Tentukan hanya konfigurasi berikut dalam file auth-config.yaml
Anda:
spec:
authentication:
- name: google-authentication-method
google:
disable: false
Mengonfigurasi akses Google Grup menggunakan proxy
Jika Anda perlu mengakses penyedia identitas Google melalui proxy, gunakan kolom proxy
dalam file auth-config.yaml
. Anda mungkin perlu menetapkannya jika, misalnya, cluster Anda berada di jaringan pribadi dan perlu terhubung ke penyedia identitas publik.
Anda harus menambahkan konfigurasi ini meskipun telah mengonfigurasi Identity Service GKE untuk penyedia lain.
Untuk mengonfigurasi proxy
, berikut cara memperbarui bagian authentication
dari file konfigurasi yang ada, auth-config.yaml
.
spec:
authentication:
- name: google-authentication-method
google:
disable: false
proxy: PROXY_URL
di mana
disable
(opsional) menunjukkan apakah Anda ingin ikut serta atau tidak menggunakan fitur Google Grup untuk cluster. Nilai ini ditetapkan ke false secara default. Jika tidak ingin ikut menggunakan fitur ini, Anda dapat menyetelnya ke true.PROXY_URL
(opsional) adalah alamat server proxy untuk terhubung ke identitas Google. Contoh:http://user:password@10.10.10.10:8888
Terapkan konfigurasi:
Untuk menerapkan konfigurasi ke cluster, jalankan perintah berikut:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
di mana
CLUSTER_NAME
adalah nama keanggotaan unik cluster Anda dalam fleet.
Setelah diterapkan, konfigurasi ini dikelola oleh pengontrol Identity Service GKE. Setiap perubahan lokal yang dilakukan pada konfigurasi klien Identity Service GKE akan direkonsiliasi kembali oleh pengontrol ke konfigurasi yang ditentukan dalam penyiapan ini.
Per cluster
Untuk mengonfigurasi cluster agar menggunakan Identity Service GKE dengan fitur Google Grup,
Anda harus memperbarui ClientConfig
Identity Service GKE cluster.
Ini adalah jenis resource kustom (CRD) Kubernetes yang digunakan untuk konfigurasi cluster.
Setiap cluster GKE Enterprise memiliki resource ClientConfig
bernama default
di
namespace kube-public
yang Anda perbarui dengan detail konfigurasi.
Untuk mengedit konfigurasi, gunakan perintah berikut.
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n kube-public edit clientconfig default
dengan
USER_CLUSTER_KUBECONFIG
adalah jalur ke file kubeconfig cluster Anda.
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.
Berikut adalah contoh cara memperbarui ClientConfig
dengan metode autentikasi baru yang memiliki konfigurasi jenis google
untuk mengaktifkan fitur Google Grup.
Jika kolom internalServer
kosong, pastikan kolom tersebut disetel ke https://kubernetes.default.svc
,
seperti yang ditunjukkan di bawah.
spec:
authentication:
- google:
audiences:
- "CLUSTER_IDENTIFIER"
name: google-authentication-method
proxy: PROXY_URL
internalServer: https://kubernetes.default.svc
di mana
CLUSTER_IDENTIFIER
(diperlukan) menunjukkan detail langganan cluster Anda.
Anda dapat mengambil detail langganan cluster menggunakan perintah:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get memberships membership -o yaml
di mana
USER_CLUSTER_KUBECONFIG
adalah jalur ke
file kubeconfig untuk cluster.
Dalam respons, lihat kolom spec.owner.id
untuk mengambil detail langganan cluster.
Berikut adalah contoh respons yang menampilkan detail keanggotaan cluster:
id: //gkehub.googleapis.com/projects/123456789/locations/global/memberships/xy-ab12cd34ef
yang sesuai dengan format berikut:
//gkehub.googleapis.com/projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP
Memberikan peran IAM ke Grup Google
Grup memerlukan peran Google Cloud tambahan berikut untuk berinteraksi dengan cluster yang terhubung melalui gateway:
roles/gkehub.gatewayAdmin
. Peran ini memungkinkan anggota grup mengakses API gateway Connect.- Jika anggota grup hanya memerlukan akses baca saja ke cluster yang terhubung,
roles/gkehub.gatewayReader
dapat digunakan sebagai gantinya. - Jika anggota grup memerlukan akses baca/tulis ke cluster yang terhubung,
roles/gkehub.gatewayEditor
dapat digunakan sebagai gantinya.
- Jika anggota grup hanya memerlukan akses baca saja ke cluster yang terhubung,
roles/gkehub.viewer
. Peran ini memungkinkan anggota grup melihat langganan 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 Grup Google yang ingin Anda berikan peran
- DOMAIN adalah domain Google Workspace Anda
- GROUP_NAME@DOMAIN adalah grup bertingkat di bagian 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 memberikan otorisasi pada perintah kubectl
yang masuk melalui gateway dari grup yang Anda tentukan. Untuk setiap cluster, Anda perlu menambahkan kebijakan izin RBAC yang menentukan izin yang dimiliki grup di cluster.
Dalam contoh berikut, Anda akan melihat cara memberikan izin cluster-admin
grup cluster-admin-team
kepada anggota di cluster, menyimpan file kebijakan sebagai /tmp/admin-permission.yaml, dan menerapkannya ke cluster yang terkait dengan konteks saat ini. Pastikan Anda juga menyertakan grup cluster-admin-team
dalam 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 menggunakan gateway Connect untuk terhubung ke cluster dari command line.
- Lihat contoh cara menggunakan gateway Connect sebagai bagian dari otomatisasi DevOps Anda dalam tutorial Mengintegrasikan dengan Cloud Build.