Dokumen ini ditujukan untuk administrator cluster atau operator aplikasi yang ingin menyiapkan GKE Identity Service di setiap cluster, sehingga memungkinkan developer dan pengguna lain login ke cluster menggunakan detail identitas yang ada dari penyedia Security Assertion Markup Language (SAML). Panduan ini mengasumsikan bahwa Anda telah membaca ringkasan GKE Identity Service. Petunjuk dalam dokumen ini mengasumsikan bahwa Layanan Identitas GKE telah didaftarkan ke penyedia identitas Anda sebagai aplikasi klien.
Sebelum memulai
- Pastikan administrator platform Anda telah memberi Anda semua informasi yang diperlukan dari Mendaftarkan Layanan Identitas GKE dengan penyedia Anda sebelum Anda memulai penyiapan.
Pastikan Anda telah menginstal alat command line berikut:
- Gunakan Google Cloud CLI versi 466.0.0 atau yang lebih baru, yang mencakup
gcloud
, alat command line untuk berinteraksi dengan Google Cloud. Jika Anda perlu menginstal Google Cloud CLI, lihat panduan penginstalan. kubectl
untuk menjalankan perintah terhadap cluster Kubernetes. Jika Anda perlu menginstalkubectl
, ikuti petunjuk berikut.
Jika Anda menggunakan Cloud Shell sebagai lingkungan shell untuk berinteraksi dengan Google Cloud, alat ini akan diinstal untuk Anda.
- Gunakan Google Cloud CLI versi 466.0.0 atau yang lebih baru, yang mencakup
Pastikan Anda telah menginisialisasi gcloud CLI untuk digunakan dengan project tempat cluster terdaftar.
Mengonfigurasi cluster
GKE Identity Service menggunakan jenis resource kustom (CRD) Kubernetes khusus untuk mengonfigurasi cluster Anda yang disebut ClientConfig, dengan kolom untuk informasi tentang penyedia identitas dan parameter yang diperlukan untuk menampilkan informasi pengguna.
kubectl
Untuk mengedit ClientConfig default, pastikan Anda dapat terhubung ke cluster menggunakan kubectl
, dan jalankan perintah berikut:
kubectl --kubeconfig=KUBECONFIG_PATH edit ClientConfigs default -n kube-public
Ganti KUBECONFIG_PATH
dengan jalur ke file kubeconfig cluster Anda—misalnya $HOME/.kube/config
.
Editor teks memuat resource ClientConfig cluster Anda. Tambahkan objek saml
seperti yang ditunjukkan dalam cuplikan.
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: {'<var name="user attribute">GROUPS_ATTRIBUTE</var>'}}
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: <>
# Rest of the resource is managed by Google. DO NOT MODIFY.
...
Anda dapat mengonfigurasi beberapa penyedia identitas di ClientConfig
sesuai dengan kebutuhan Anda. Hal ini menyederhanakan pengelolaan dan memberikan fleksibilitas, sehingga Anda dapat mengonfigurasi berbagai metode autentikasi dalam resource konfigurasi terpadu. Contoh ClientConfig
berikut menentukan beberapa penyedia identitas dalam urutan prioritas autentikasi yang diperlukan.
apiVersion: v1
items:
- apiVersion: authentication.gke.io/v2alpha1
kind: ClientConfig
...
spec:
authentication:
- aws:
region: us-west-2
name: AWS Login
- ldap:
...
- saml:
...
- azureAD:
...
- oidc:
name: Okta OIDC
...
-oidc:
name: Google OIDC
...
Tabel berikut menjelaskan kolom objek ClientConfig saml
. Kolom
yang perlu Anda tambahkan bergantung pada penyedia identitas dan opsi penyiapan
yang dipilih oleh administrator platform Anda saat mengonfigurasi penyedia untuk GKE Identity Service.
Kolom | Diperlukan | Deskripsi | Format |
---|---|---|---|
nama | Ya | Nama yang ingin Anda gunakan untuk mengidentifikasi konfigurasi ini, biasanya nama penyedia identitas. Nama konfigurasi harus dimulai dengan huruf, diikuti dengan maksimal 39 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. | String |
idpEntityID | Ya | ID entitas SAML untuk penyedia SAML, yang ditentukan dalam format URI. Misalnya: https://www.idp.com/saml . |
URL String |
idpSingleSignOnURI | ya | Endpoint SSO penyedia SAML, yang ditentukan dalam format URI. Misalnya: https://www.idp.com/saml/sso . |
URL String |
idpCertificateDataList | Ya | Sesuai dengan sertifikat penyedia identitas yang digunakan untuk memverifikasi respons SAML. Sertifikat ini harus dienkode dengan base64 standar dan diformat PEM. Maksimum hanya dua sertifikat yang didukung untuk memfasilitasi rotasi sertifikat penyedia identitas. | String |
userAttribute | Tidak | Nama atribut dalam respons SAML yang menyimpan nama pengguna. | String |
groupsAttribute | Tidak | Nama atribut dalam respons SAML yang menyimpan informasi grup pengguna. | String |
userPrefix | Tidak | Awalan yang ingin Anda tambahkan ke klaim pengguna untuk mencegah konflik dengan nama yang ada, jika Anda tidak ingin menggunakan awalan default. | String |
groupPrefix | Tidak | Awalan yang ingin Anda tambahkan ke nama grup keamanan. Hal ini dilakukan untuk menghindari konflik dengan nama yang ada dalam aturan kontrol akses jika Anda memiliki konfigurasi untuk beberapa penyedia identitas (biasanya nama penyedia). | String |
attributeMapping | Tidak | Pemetaan atribut pengguna tambahan. | String |
certificateAuthorityData | Tidak | Jika disediakan oleh administrator platform Anda, ini adalah string sertifikat berenkode PEM untuk penyedia identitas. Sertakan string yang dihasilkan dalam certificateAuthorityData sebagai satu baris. |
String |
preferredAuthentication | Tidak | Nama metode autentikasi pilihan yang dikonfigurasi di cluster. | String |
Setelah Anda menyelesaikan ClientConfig, simpan file, yang akan memperbarui ClientConfig di cluster Anda. Jika Anda melakukan kesalahan sintaksis, Anda akan diminta untuk mengedit ulang konfigurasi guna memperbaikinya.
Apa langkah selanjutnya?
Setelah konfigurasi diterapkan, lanjutkan menyiapkan akses pengguna ke cluster.