Dokumen ini menunjukkan kepada administrator cluster cara 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 menyiapkan cluster satu per satu. 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:
-
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 -
Setelah menginisialisasi 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 ID project project host fleet Anda.
-
Aktifkan API yang diperlukan:
Di Google Cloud konsol, buka halaman pemilih project:
Pilih project host fleet Anda.
Aktifkan GKE Hub dan Kubernetes Engine 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.
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 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.
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 fleet, pilih salah satu opsi berikut:
Konsol
Di Google Cloud konsol, buka halaman GKE Identity Service.
Klik Enable 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 menimpa semua spesifikasi autentikasi yang ada. Selain itu, jika Anda memiliki konfigurasi tingkat cluster yang ada untuk penyedia yang tidak didukung untuk konfigurasi tingkat fleet, penyiapan ini akan gagal. Anda harus menghapus konfigurasi penyedia yang ada untuk menerapkan konfigurasi tingkat fleet.
Untuk mengonfigurasi cluster, ikuti langkah-langkah berikut:
Konsol
Pilih cluster yang akan dikonfigurasi:
Di Google Cloud konsol, 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 fleet, 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 Add an Identity Provider. Bagian New Identity Provider akan muncul.
Di bagian New Identity Provider, 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 Provider name, 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 ID klien 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 Issuer URL.
- Klik Next untuk menetapkan 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 Provider name, 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 ID klien 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 menetapkan atribut Azure AD.
LDAP
- Pilih LDAP untuk membuat konfigurasi LDAP baru.
- Tentukan nama yang ingin Anda gunakan untuk mengidentifikasi konfigurasi ini di kolom Provider name, 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 Next.
- Tentukan nama host (wajib), jenis koneksi LDAP, dan sertifikat CA server LDAP yang dienkode base64.
- Klik Next untuk mengonfigurasi server.
- Tentukan nama khusus, filter, atribut login, dan atribut ID pengguna.
- Klik Next untuk menetapkan detail pengguna.
- Jika Anda memilih untuk menggunakan grup, tentukan nama khusus, filter, dan atribut ID grup.
- Klik Next untuk menetapkan detail grup.
- Tentukan nama pengguna dan sandi akun layanan.
- Klik Done untuk menetapkan nama akun layanan.
Klik Next. Bagian Set attributes akan terbuka.
Tetapkan atribut untuk penyedia identitas Anda. Untuk melihat atribut untuk OIDC atau Azure AD, pilih salah satu opsi berikut:
OIDC
kubectlredirect URI: 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 yang dienkode PEM untuk penyedia identitas.
- Group Claim (Opsional): Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk menampilkan grup keamanan akun.
- Group Prefix (Opsional): Awalan yang ingin Anda tambahkan ke nama grup keamanan untuk menghindari konflik dengan nama yang ada dalam aturan kontrol akses Anda 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 menetapkan hal 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. - Scopes (Opsional): Cakupan tambahan yang diperlukan oleh penyedia identitas Anda. Microsoft Azure dan Okta memerlukan cakupan
offline_access. Klik Add scope untuk menambahkan cakupan lainnya jika diperlukan. - User Claim (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 "name", bergantung pada penyedia OpenID. Klaim selain "email" diberi awalan dengan URL penerbit untuk mencegah konflik penamaan.
- User Prefix (Opsional): Awalan yang ingin Anda tambahkan ke klaim pengguna untuk mencegah konflik dengan nama yang ada, jika Anda tidak ingin menggunakan awalan default.
- Extra Params (Opsional): Parameter tambahan yang diperlukan untuk konfigurasi Anda, yang ditentukan sebagai Key dan Value parameter. Klik Add param untuk menambahkan parameter lainnya jika diperlukan.
- Enable access token (Opsional): Jika diaktifkan, fitur ini akan memungkinkan dukungan grup untuk penyedia OIDC seperti Okta.
- Deploy Google Cloud console proxy (Opsional): Jika diaktifkan, proxy akan di- deploy yang memungkinkan Google Cloud konsol terhubung ke penyedia identitas lokal yang tidak dapat diakses secara publik melalui internet.
Azure AD
kubectlredirect URI: URL dan port pengalihan yang digunakan oleh gcloud CLI dan ditentukan oleh administrator platform Anda saat pendaftaran, biasanya dalam bentukhttp://localhost:PORT/callback.- User Claim (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 menetapkan hal 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.
Klik Done.
Opsional: Untuk menambahkan lebih banyak penyedia ke konfigurasi, klik Add an identity provider , lalu ulangi langkah-langkah sebelumnya.
Klik Update configuration.
Tindakan ini akan menginstal komponen yang diperlukan jika perlu dan menerapkan konfigurasi klien pada 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 akan mencoba melakukan autentikasi dengan setiap konfigurasi dalam urutan konfigurasi tersebut 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 fleet mengelola konfigurasi untuk cluster. Setiap perubahan lokal pada konfigurasi cluster akan disesuaikan oleh pengontrol ke konfigurasi tingkat fleet.
Untuk beberapa versi cluster, penerapan konfigurasi tingkat fleet juga secara default akan menambahkan konfigurasi authentication tambahan ke cluster Anda.
Hal ini memungkinkan cluster mengambil informasi Google Grup untuk akun pengguna
yang login dengan
ID Google.
Konfigurasi ini berlaku untuk cluster di Google Distributed Cloud
(VMware dan
bare metal).
Untuk mengetahui informasi selengkapnya tentang fitur Google Grup, lihat
Menyiapkan gateway koneksi dengan Google Grup.
Jika Anda tidak lagi ingin pengontrol tingkat fleet mengelola konfigurasi Anda, misalnya jika Anda ingin menggunakan 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 menggunakan konfigurasi ini, cluster dapat memperoleh informasi pengguna dan grup dari Azure AD, dan Anda dapat menyiapkan kontrol akses berbasis peran (RBAC) Kubernetes berdasarkan grup. Namun, penggunaan 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 (Lanjutan)
Konfigurasi opsional untuk Azure AD ini memungkinkan cluster mengambil informasi pengguna dan grup tanpa batasan 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 contoh konfigurasi 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 ingin Anda gunakan 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 (lokal).
Okta
Berikut ini 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 default tingkat fleet
Anda dapat menentukan konfigurasi default tingkat fleet untuk autentikasi. Dengan menggunakan penyiapan ini, setiap cluster baru yang Anda daftarkan ke fleet akan otomatis menggunakan konfigurasi autentikasi yang Anda tentukan.
Cluster anggota fleet yang ada tidak otomatis diperbarui saat Anda menentukan konfigurasi default tingkat fleet. Anda dapat secara opsional menerapkan konfigurasi default ke cluster tersebut. Untuk mengetahui informasi selengkapnya tentang pengelolaan konfigurasi tingkat fleet, lihat Mengelola fitur tingkat fleet.
Setelah Anda menetapkan default tingkat fleet, setiap perubahan lokal pada konfigurasi autentikasi cluster individual akan ditimpa saat pengontrol fleet menyinkronkan cluster dengan konfigurasi default.
Untuk mengonfigurasi konfigurasi default tingkat fleet, 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 fleet, jalankan salah satu perintah berikut:
Jika fitur layanan identitas tingkat fleet tidak diaktifkan, aktifkan fitur tersebut dan tentukan konfigurasi default tingkat fleet:
gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
Jika fitur layanan identitas tingkat fleet diaktifkan, terapkan konfigurasi default tingkat fleet yang baru:
gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
Cluster baru yang Anda daftarkan ke fleet akan menggunakan konfigurasi ini secara default. Cluster anggota fleet yang ada tidak otomatis mewarisi konfigurasi default yang baru.
Untuk menerapkan konfigurasi default ke cluster anggota fleet yang ada, jalankan perintah berikut:
gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
Menghapus konfigurasi default tingkat fleet
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 dalam fleet Anda telah berhasil dikonfigurasi dengan konfigurasi layanan identitas yang Anda tentukan.
Konsol
Di Google Cloud konsol, buka halaman Feature Manager.
Semua fitur yang diaktifkan akan tercantum sebagai Enabled di panelnya.
Klik DETAILS di panel Identity Service. Panel detail akan menampilkan status cluster terdaftar Anda.
gcloud
Jalankan perintah berikut:
gcloud container fleet identity-service describe
Langkah berikutnya
Setelah mengonfigurasi cluster, lanjutkan untuk menyiapkan akses pengguna.