Dokumen ini menunjukkan cara administrator cluster menyiapkan beberapa cluster untuk autentikasi dari penyedia identitas pihak ketiga menggunakan fleet. Google Cloud mengelola konfigurasi cluster dalam fleet, yang menghasilkan proses penyiapan yang lebih cepat dan tidak terlalu rumit dibandingkan dengan menyiapkan tiap-tiap cluster. Untuk mengetahui informasi selengkapnya tentang proses autentikasi penyedia pihak ketiga, lihat Tentang autentikasi menggunakan identitas pihak ketiga.
Sebelum memulai
Instal dan konfigurasi Google Cloud CLI:
-
Install the 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 -
Setelah melakukan inisialisasi gcloud CLI, update gcloud CLI dan instal komponen yang diperlukan:
gcloud components update gcloud components install kubectl
- Di gcloud CLI, pilih project host fleet Anda:
Gantigcloud config set project FLEET_HOST_PROJECT_ID
FLEET_HOST_PROJECT_IDdengan project ID project host fleet Anda.
-
Aktifkan API yang diperlukan:
Di konsol Google Cloud , buka halaman pemilih project:
Pilih project host fleet Anda.
Enable the GKE Hub and Kubernetes Engine APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
Pastikan administrator platform Anda telah memberi Anda semua informasi penyedia yang diperlukan untuk protokol yang dipilih. Untuk mengetahui informasi selengkapnya, lihat dokumen berikut:
Peran yang diperlukan
Guna mendapatkan izin yang diperlukan untuk menyiapkan cluster di tingkat fleet, minta administrator untuk memberi Anda peran IAM Fleet Admin (roles/gkehub/admin) di project host fleet.
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mengaktifkan fitur layanan identitas tingkat fleet
Fitur layanan identitas tingkat fleet menggunakan pengontrol untuk mengelola konfigurasi di setiap cluster dalam fleet. Anda hanya perlu mengaktifkan fitur tingkat fleet di project host fleet.
Untuk mengaktifkan fitur tingkat armada, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman GKE Identity Service.
Klik Aktifkan Identity Service.
gcloud
Aktifkan fitur layanan identitas tingkat fleet:
gcloud container fleet identity-service enable
Konfigurasi cluster
Untuk mengonfigurasi cluster, Anda harus menentukan informasi berikut:
- Informasi tentang penyedia identitas Anda, seperti ID klien dan rahasia.
- Informasi tentang Token Web JSON (JWT) yang digunakan penyedia identitas Anda untuk autentikasi.
- Cakupan atau parameter tambahan yang unik untuk penyedia identitas Anda.
Untuk mengetahui informasi selengkapnya tentang informasi yang Anda perlukan dari administrator platform, atau siapa pun yang mengelola identitas di organisasi Anda, lihat dokumen berikut:
- Mengonfigurasi penyedia OIDC untuk melakukan autentikasi ke cluster
- Mengonfigurasi penyedia SAML untuk melakukan autentikasi ke cluster
- Mengonfigurasi penyedia LDAP untuk melakukan autentikasi ke cluster
Jika Anda memiliki konfigurasi tingkat cluster yang ada untuk penyedia OIDC, penerapan konfigurasi tingkat fleet ke cluster akan menggantikan semua spesifikasi autentikasi yang ada. Selain itu, jika Anda memiliki konfigurasi tingkat cluster yang ada untuk penyedia yang tidak didukung untuk konfigurasi tingkat armada, penyiapan ini akan gagal. Anda harus menghapus konfigurasi penyedia yang ada untuk menerapkan konfigurasi tingkat armada.
Untuk mengonfigurasi cluster, ikuti langkah-langkah berikut:
Konsol
Pilih cluster yang akan dikonfigurasi:
Di konsol Google Cloud , buka halaman GKE Identity Service.
Centang satu atau beberapa kotak centang untuk cluster yang ingin Anda konfigurasi. Anda dapat memilih cluster satu per satu, atau menentukan bahwa Anda ingin semua cluster dikonfigurasi dengan konfigurasi identitas yang sama. Jika Anda telah mengonfigurasi default tingkat armada, konfigurasi akan disesuaikan kembali ke default.
Klik Update Configuration. Panel Edit Identity Service Clusters Config akan terbuka.
Di bagian Identity Providers, pilih cara Anda ingin mengonfigurasi cluster. Anda dapat memperbarui konfigurasi yang ada, menyalin konfigurasi dari cluster lain, atau membuat konfigurasi baru. Untuk membuat konfigurasi baru, klik Tambahkan Penyedia Identitas. Bagian New Identity Provider akan muncul.
Di bagian Penyedia Identitas Baru, tetapkan detail penyedia:
OIDC
- Pilih New Open ID Connect untuk membuat konfigurasi OIDC baru.
- Tentukan nama yang ingin Anda gunakan untuk mengidentifikasi konfigurasi ini di kolom Nama penyedia, biasanya nama penyedia identitas. Nama ini harus dimulai dengan huruf, diikuti dengan maksimal 39 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Anda tidak dapat mengedit nama ini setelah membuat konfigurasi.
- Tentukan client ID dari penyedia identitas di kolom Client ID.
- Tentukan rahasia klien yang harus dibagikan antara aplikasi klien dan penyedia identitas di kolom Client Secret.
- Tentukan URI tempat permintaan otorisasi dibuat ke penyedia identitas Anda di kolom URL Penerbit.
- Klik Next untuk menyetel atribut OIDC.
Azure AD
- Pilih New Azure Active Directory untuk membuat konfigurasi Azure AD baru.
- Tentukan nama yang ingin Anda gunakan untuk mengidentifikasi konfigurasi ini di kolom Nama penyedia, biasanya nama penyedia identitas. Nama ini harus dimulai dengan huruf, diikuti dengan maksimal 39 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Anda tidak dapat mengedit nama ini setelah membuat konfigurasi.
- Tentukan client ID dari penyedia identitas di kolom Client ID.
- Tentukan rahasia klien yang harus dibagikan antara aplikasi klien dan penyedia identitas di kolom Client Secret.
- Tentukan tenant yang merupakan akun Azure AD yang akan diautentikasi di Tenant.
- Klik Next untuk menyetel atribut Azure AD.
LDAP
- Pilih LDAP untuk membuat konfigurasi LDAP baru.
- Tentukan nama yang ingin Anda gunakan untuk mengidentifikasi konfigurasi ini di kolom Nama penyedia, biasanya nama penyedia identitas. Nama ini harus dimulai dengan huruf, diikuti dengan maksimal 39 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Anda tidak dapat mengedit nama ini setelah membuat konfigurasi.
- Klik Berikutnya.
- Tentukan nama host (wajib), jenis koneksi LDAP, dan sertifikat CA server LDAP yang dienkode base64.
- Klik Next untuk mengonfigurasi server.
- Tentukan nama khusus pengguna, filter, atribut login, dan atribut ID.
- Klik Berikutnya untuk menyetel detail pengguna.
- Jika Anda memilih untuk menggunakan grup, tentukan nama khusus, filter, dan atribut ID grup.
- Klik Berikutnya untuk menyetel detail grup.
- Tentukan nama pengguna dan sandi akun layanan.
- Klik Selesai untuk menetapkan nama akun layanan.
Klik Berikutnya. Bagian Setel atribut akan terbuka.
Tetapkan atribut untuk penyedia identitas Anda. Untuk melihat atribut untuk OIDC atau Azure AD, pilih salah satu opsi berikut:
OIDC
- URI pengalihan
kubectl: URL dan port pengalihan yang digunakan oleh gcloud CLI dan ditentukan oleh administrator platform Anda saat pendaftaran, biasanya dalam bentukhttp://localhost:PORT/callback. - Certificate Authority (Opsional): Jika disediakan oleh administrator platform Anda, string sertifikat berenkode PEM untuk penyedia identitas.
- Klaim Grup (Opsional): Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk menampilkan grup keamanan akun.
- Awalan Grup (Opsional): Awalan yang ingin Anda tambahkan ke nama grup keamanan untuk menghindari konflik dengan nama yang ada dalam aturan kontrol akses jika Anda memiliki konfigurasi untuk beberapa penyedia identitas (biasanya nama penyedia).
- Proxy (Opsional): Alamat server proxy yang akan digunakan untuk terhubung ke penyedia identitas, jika berlaku. Anda mungkin perlu menyetel ini jika, misalnya, cluster Anda berada di jaringan pribadi dan perlu terhubung ke penyedia identitas publik. Contoh:
http://user:password@10.10.10.10:8888. - Cakupan (Opsional): Cakupan tambahan yang diperlukan oleh penyedia identitas Anda. Microsoft Azure dan Okta memerlukan cakupan
offline_access. Klik Tambahkan cakupan untuk menambahkan cakupan lainnya jika diperlukan. - Klaim Pengguna (Opsional): Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk mengidentifikasi akun. Jika Anda tidak menentukan nilai di sini, cluster akan menggunakan "sub", yang merupakan klaim ID pengguna yang digunakan oleh banyak penyedia. Anda dapat memilih klaim lain, seperti "email" atau "nama", bergantung pada penyedia OpenID. Klaim selain "email" diawali dengan URL penerbit untuk mencegah bentrokan penamaan.
- Awalan Pengguna (Opsional): Awalan yang ingin Anda tambahkan ke klaim pengguna untuk mencegah bentrokan dengan nama yang sudah ada, jika Anda tidak ingin menggunakan awalan default.
- Parameter Tambahan (Opsional): Parameter tambahan yang diperlukan untuk konfigurasi Anda, yang ditentukan sebagai Kunci dan Nilai parameter. Klik Tambahkan param untuk menambahkan parameter lainnya jika diperlukan.
- Aktifkan token akses (Opsional): Jika diaktifkan, opsi ini memungkinkan dukungan grup untuk penyedia OIDC seperti Okta.
- Deploy proxy konsol Google Cloud (Opsional): Jika diaktifkan, proxy akan di-deploy yang memungkinkan konsol Google Cloud terhubung ke penyedia identitas lokal yang tidak dapat diakses secara publik melalui internet.
Azure AD
- URI pengalihan
kubectl: URL dan port pengalihan yang digunakan oleh gcloud CLI dan ditentukan oleh administrator platform Anda saat pendaftaran, biasanya dalam bentukhttp://localhost:PORT/callback. - Klaim Pengguna (Opsional): Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk mengidentifikasi akun. Jika Anda tidak menentukan nilai di sini, cluster akan menggunakan nilai dalam urutan "email", "preferred_username", atau "sub" untuk mengambil detail pengguna.
- Proxy (Opsional): Alamat server proxy yang akan digunakan untuk terhubung ke penyedia identitas, jika berlaku. Anda mungkin perlu menyetel ini jika, misalnya, cluster Anda berada di jaringan pribadi dan perlu terhubung ke penyedia identitas publik. Contoh:
http://user:password@10.10.10.10:8888.
- URI pengalihan
Klik Done.
Opsional: Untuk menambahkan lebih banyak penyedia ke konfigurasi, klik Tambahkan penyedia identitas dan ulangi langkah-langkah sebelumnya.
Klik Update configuration.
Tindakan ini akan menginstal komponen yang diperlukan jika perlu dan menerapkan konfigurasi klien di cluster yang Anda pilih.
gcloud
Untuk menggunakan gcloud CLI guna mengonfigurasi fleet, Anda membuat resource kustom Kubernetes bernama ClientConfig dengan kolom untuk semua informasi yang diperlukan cluster untuk berinteraksi dengan penyedia identitas. Untuk membuat dan menggunakan ClientConfig, ikuti langkah-langkah berikut:
Buat spesifikasi ClientConfig dalam file bernama
auth-config.yaml. Untuk melihat contoh konfigurasi untuk OIDC, SAML, atau LDAP, pilih salah satu opsi berikut. Untuk konfigurasi penyedia identitas lainnya, lihat Konfigurasi khusus penyedia.OIDC
Contoh ClientConfig berikut menunjukkan konfigurasi
oidcdan konfigurasiazuread. Untuk mengetahui informasi selengkapnya tentang kapan harus menggunakanoidcatauazuread, lihat Konfigurasi khusus penyedia.apiVersion: authentication.gke.io/v2alpha1 kind: ClientConfig metadata: name: default namespace: kube-public spec: authentication: - name: NAME proxy: PROXY_URL oidc: certificateAuthorityData: CERTIFICATE_STRING clientID: CLIENT_ID clientSecret: CLIENT_SECRET deployCloudConsoleProxy: PROXY_BOOLEAN extraParams: EXTRA_PARAMS groupsClaim: GROUPS_CLAIM groupPrefix: GROUP_PREFIX issuerURI: ISSUER_URI kubectlRedirectURI: http://localhost:PORT/callback scopes: SCOPES userClaim: USER_CLAIM userPrefix: USER_PREFIX - name: azure azureAD: clientID: CLIENT_ID clientSecret: CLIENT_SECRET tenant: TENANT_UUID kubectlRedirectURI: http://localhost:PORT/callback groupFormat: GROUP_FORMAT userClaim: USER_CLAIMUntuk mengetahui informasi selengkapnya tentang kolom dalam objek
oidc, lihat Kolom OIDC ClientConfig.SAML
Contoh ClientConfig berikut menunjukkan konfigurasi
saml:apiVersion: authentication.gke.io/v2alpha1 kind: ClientConfig metadata: name: default namespace: kube-public spec: authentication: - name: NAME saml: idpEntityID: ENTITY_ID idpSingleSignOnURI: SIGN_ON_URI idpCertificateDataList: IDP_CA_CERT userAttribute: USER_ATTRIBUTE groupsAttribute: GROUPS_ATTRIBUTE userPrefix: USER_PREFIX groupPrefix: GROUP_PREFIX attributeMapping: ATTRIBUTE_KEY_1 : ATTRIBUTE_CEL_EXPRESSION_1 ATTRIBUTE_KEY_2 : ATTRIBUTE_CEL_EXPRESSION_2 certificateAuthorityData: CERTIFICATE_STRING preferredAuthentication: PREFERRED_AUTHENTICATION server: <>Untuk mengetahui informasi selengkapnya tentang kolom ini, lihat Kolom SAML ClientConfig.
LDAP
Contoh ClientConfig berikut menunjukkan konfigurasi
ldap:apiVersion: authentication.gke.io/v2alpha1 kind: ClientConfig metadata: name: default namespace: kube-public spec: authentication: - name: ldap ldap: server: host: HOST_NAME connectionType: CONNECTION_TYPE certificateAuthorityData: CERTIFICATE_AUTHORITY_DATA user: baseDn: BASE_DN loginAttribute: LOGIN_ATTRIBUTE filter: FILTER identifierAttribute: IDENTIFIER_ATTRIBUTE group: baseDn: BASE_DN filter: FILTER identifierAttribute: IDENTIFIER_ATTRIBUTE serviceAccount: simpleBindCredentials: dn: DISTINGUISHED_NAME password: PASSWORDUntuk mengetahui informasi selengkapnya tentang kolom ini, lihat Kolom LDAP ClientConfig.
Anda dapat menambahkan beberapa konfigurasi penyedia identitas ke ClientConfig yang sama. Cluster mencoba mengautentikasi dengan setiap konfigurasi sesuai urutan yang ditentukan, dan berhenti setelah autentikasi pertama berhasil.
Terapkan ClientConfig ke cluster:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=auth-config.yamlGanti
CLUSTER_NAMEdengan nama unik cluster Anda dalam fleet.
Cluster akan menginstal komponen yang diperlukan dan menggunakan ClientConfig yang Anda buat. Pengontrol tingkat armada mengelola konfigurasi untuk cluster. Setiap perubahan lokal pada konfigurasi cluster disesuaikan oleh pengontrol dengan konfigurasi tingkat armada.
Untuk beberapa versi cluster, penerapan konfigurasi tingkat armada juga
secara default menambahkan konfigurasi authentication tambahan ke cluster Anda.
Hal ini memungkinkan cluster mengambil informasi Google Grup untuk akun pengguna yang login dengan ID Google mereka.
Konfigurasi ini berlaku untuk cluster di Google Distributed Cloud
(VMware dan
bare metal).
Untuk mengetahui informasi selengkapnya tentang fitur Google Grup, lihat
Menyiapkan gateway penghubung dengan Google Grup.
Jika Anda tidak ingin lagi pengontrol tingkat fleet mengelola konfigurasi Anda, misalnya jika Anda ingin menggunakan opsi atau opsi autentikasi yang berbeda, Anda dapat menonaktifkan fitur ini dengan mengikuti petunjuk di Menonaktifkan pengelolaan identitas tingkat fleet.
Konfigurasi khusus penyedia
Bagian ini memberikan panduan konfigurasi untuk penyedia OIDC (seperti Azure AD dan Okta), termasuk contoh konfigurasi yang dapat Anda salin dan edit dengan detail Anda sendiri.
Azure AD
Ini adalah konfigurasi default untuk menyiapkan autentikasi dengan Azure AD. Dengan konfigurasi ini, cluster dapat memperoleh informasi pengguna dan grup dari Azure AD, serta memungkinkan Anda menyiapkan kontrol akses berbasis peran (RBAC) Kubernetes berdasarkan grup. Namun, menggunakan konfigurasi ini membatasi Anda untuk mengambil sekitar 200 grup per pengguna.
Jika Anda perlu mengambil lebih dari 200 grup per pengguna, lihat petunjuk untuk Azure AD (Lanjutan).
...
spec:
authentication:
- name: oidc-azuread
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc
extraParams: prompt=consent, access_type=offline
issuerURI: https://login.microsoftonline.com/TENANT_ID/v2.0
kubectlRedirectURI: http://localhost:PORT/callback
scopes: openid,email,offline_access
userClaim: email
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Azure AD (Tingkat Lanjut)
Konfigurasi opsional untuk Azure AD ini memungkinkan cluster mengambil informasi pengguna dan grup tanpa batas jumlah grup per pengguna, menggunakan Microsoft Graph API. Untuk mengetahui informasi tentang platform yang mendukung konfigurasi ini, lihat Informasi penyiapan penyedia identitas.
Jika Anda perlu mengambil kurang dari 200 grup per pengguna, sebaiknya
gunakan konfigurasi default menggunakan anchor oidc di ClientConfig Anda. Untuk mengetahui informasi selengkapnya, lihat petunjuk
untuk Azure AD.
Semua kolom dalam konfigurasi contoh wajib diisi.
...
spec:
authentication:
- name: azure
azureAD:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
tenant: TENANT_UUID
kubectlRedirectURI: http://localhost:PORT/callback
groupFormat: GROUP_FORMAT
userClaim: USER_CLAIM
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Ganti GROUP_FORMAT dengan format yang Anda inginkan untuk mengambil informasi grup. Kolom ini dapat mengambil nilai yang sesuai dengan ID atau NAME grup pengguna. Setelan ini hanya tersedia untuk cluster dalam deployment Google Distributed Cloud (on-premise).
Okta
Berikut cara menyiapkan autentikasi menggunakan pengguna dan grup dengan Okta sebagai penyedia identitas Anda. Konfigurasi ini memungkinkan cluster mengambil klaim pengguna dan grup menggunakan token akses dan endpoint userinfo Okta.
...
spec:
authentication:
- name: okta
oidc:
clientID: CLIENT_ID
clientSecret: CLIENT_SECRET
cloudConsoleRedirectURI: https://console.cloud.google.com/kubernetes/oidc
enableAccessToken: true
extraParams: prompt=consent
groupsClaim: groups
issuerURI: https://OKTA_ISSUER_URI/
kubectlRedirectURI: http://localhost:PORT/callback
scopes: offline_access,email,profile,groups
userClaim: email
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Mengonfigurasi setelan default tingkat armada
Anda dapat menentukan konfigurasi default tingkat armada untuk autentikasi. Dengan penyiapan ini, setiap cluster baru yang Anda daftarkan ke fleet akan otomatis menggunakan konfigurasi autentikasi yang Anda tentukan.
Cluster anggota fleet yang ada tidak diupdate secara otomatis saat Anda menentukan konfigurasi default tingkat fleet. Anda dapat menerapkan konfigurasi default ke cluster tersebut jika ingin. Untuk mengetahui informasi selengkapnya tentang mengelola konfigurasi tingkat grup armada, lihat Mengelola fitur tingkat grup armada.
Setelah Anda menetapkan default tingkat armada, setiap perubahan lokal pada konfigurasi autentikasi cluster individual akan digantikan saat pengontrol armada menyelaraskan cluster dengan konfigurasi default.
Untuk mengonfigurasi konfigurasi default tingkat armada, lakukan hal berikut:
- Buat ClientConfig dalam file bernama
fleet-default.yaml. Untuk mengetahui informasi selengkapnya tentang cara membuat file, lihat langkah-langkah gcloud CLI di bagian Mengonfigurasi cluster. Untuk menerapkan konfigurasi default tingkat armada, jalankan salah satu perintah berikut:
Jika fitur layanan identitas tingkat armada tidak diaktifkan, aktifkan fitur tersebut dan tentukan konfigurasi default tingkat armada:
gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
Jika fitur layanan identitas tingkat armada diaktifkan, terapkan konfigurasi default tingkat armada yang baru:
gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
Cluster baru yang Anda daftarkan ke fleet menggunakan konfigurasi ini secara default. Cluster anggota fleet yang ada tidak otomatis mewarisi konfigurasi default baru.
Untuk menerapkan konfigurasi default ke cluster anggota armada yang ada, jalankan perintah berikut:
gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
Menghapus konfigurasi default tingkat armada
Untuk menghapus konfigurasi default, jalankan perintah berikut:
gcloud container fleet identity-service delete --fleet-default-member-config
Cluster baru yang Anda daftarkan ke fleet tidak otomatis menggunakan konfigurasi autentikasi.
Memverifikasi konfigurasi layanan identitas
Setelah menyelesaikan penyiapan tingkat fleet, Anda dapat memverifikasi apakah cluster di fleet Anda telah berhasil dikonfigurasi dengan konfigurasi layanan identitas yang Anda tentukan.
Konsol
Di konsol Google Cloud , buka halaman Feature Manager.
Semua fitur yang diaktifkan dicantumkan sebagai Diaktifkan di panelnya.
Klik DETAIL di panel Identity Service. Panel detail menampilkan status cluster terdaftar Anda.
gcloud
Jalankan perintah berikut:
gcloud container fleet identity-service describe
Langkah berikutnya
Setelah mengonfigurasi cluster, lanjutkan menyiapkan akses pengguna.