Menyiapkan cluster untuk GKE Identity Service dengan SAML

Dokumen ini ditujukan untuk administrator cluster atau operator aplikasi yang ingin menyiapkan GKE Identity Service di cluster individual, yang memungkinkan developer dan pengguna lain login ke cluster menggunakan detail identitas mereka yang sudah 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 GKE Identity Service telah terdaftar dengan penyedia identitas Anda sebagai aplikasi klien.

Sebelum memulai

  • Pastikan administrator platform telah memberikan semua informasi yang diperlukan dari artikel Mendaftarkan GKE Identity Service dengan penyedia Anda sebelum memulai penyiapan.
  • Pastikan Anda telah menginstal alat command line berikut:

    • Menggunakan 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 menginstal kubectl, ikuti instructions ini.

    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 tempat cluster didaftarkan.

Mengonfigurasi cluster

GKE Identity Service menggunakan jenis resource kustom (CRD) Kubernetes khusus untuk mengonfigurasi cluster Anda yang disebut ClientConfig, dengan kolom untuk informasi penyedia identitas dan parameter yang diperlukan untuk menampilkan informasi pengguna.

kubectl

Untuk mengedit ClientConfig default, pastikan Anda dapat terhubung ke cluster menggunakan kubectl, dan menjalankan 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.
...

Tabel berikut menjelaskan kolom objek saml ClientConfig. 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
name Ya Nama yang ingin Anda gunakan untuk mengidentifikasi konfigurasi ini, biasanya nama penyedia identitas. Nama konfigurasi harus diawali 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 berenkode base64 standar dan diformat PEM. Hanya maksimum 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 bentrok dengan nama yang sudah 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 benturan dengan nama yang sudah ada pada 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 yang dienkode PEM untuk penyedia identitas. Sertakan string yang dihasilkan di certificateAuthorityData sebagai baris tunggal. String
preferredAuthentication Tidak Nama metode autentikasi pilihan yang dikonfigurasi di cluster. String

Setelah menyelesaikan ClientConfig, simpan file tersebut, yang akan memperbarui ClientConfig di cluster Anda. Jika membuat error sintaksis, Anda akan diminta untuk mengedit ulang konfigurasi guna memperbaikinya.

Apa langkah selanjutnya?

Setelah konfigurasi diterapkan, lanjutkan untuk menyiapkan akses pengguna ke cluster.