Mengonfigurasi GKE Identity Service pada level fleet

Dokumen ini ditujukan untuk administrator cluster atau operator aplikasi yang menyiapkan GKE Identity Service di cluster mereka. Panduan ini berisi petunjuk tentang cara menyiapkan GKE Identity Service di level fleet pada cluster Anda dengan penyedia identitas OpenID Connect (OIDC) pilihan Anda. Petunjuk dalam dokumen ini mengasumsikan bahwa GKE Identity Service telah terdaftar dengan penyedia identitas Anda sebagai aplikasi klien.

Untuk mengetahui selengkapnya tentang GKE Identity Service dan opsi penyiapan lainnya, lihat ringkasan. Untuk mempelajari cara mengakses cluster menggunakan layanan ini sebagai developer atau pengguna cluster lainnya, baca Mengakses cluster dengan GKE Identity Service.

Sebelum memulai

  • Pastikan administrator platform telah memberikan semua informasi yang diperlukan dari Mengonfigurasi penyedia OIDC untuk GKE Identity Service sebelum memulai penyiapan, termasuk client ID dan rahasia untuk GKE Identity Service.
  • Pastikan cluster yang ingin dikonfigurasi memenuhi prasyarat untuk penyiapan tingkat fleet. Untuk lingkungan dan jenis cluster lainnya, lihat Ringkasan Layanan Identitas GKE.
  • Pastikan Anda telah menginstal alat command line berikut:

    • Versi terbaru Google Cloud CLI, 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 pada cluster Kubernetes. Jika Anda perlu menginstal kubectl, lihat panduan penginstalan.

    Jika Anda menggunakan Cloud Shell sebagai lingkungan shell untuk berinteraksi dengan Google Cloud, alat ini diinstal untuk Anda.

  • Pastikan Anda telah melakukan inisialisasi gcloud CLI untuk digunakan dengan project tempat cluster didaftarkan.

  • Jika bukan pemilik project, Anda memerlukan peran GKE Hub Admin dalam project tempat cluster terdaftar untuk menyelesaikan langkah-langkah konfigurasi.

Mengaktifkan API

Konsol

Pastikan project tempat cluster didaftarkan sudah dipilih.

  • Enable the GKE Hub and Kubernetes Engine APIs.

    Enable the APIs

gcloud

Jalankan perintah berikut untuk mengaktifkan API yang diperlukan untuk penyiapan:

gcloud services enable 
gkehub.googleapis.com
container.googleapis.com

Konfigurasi cluster

Untuk mengonfigurasi cluster agar menggunakan penyedia yang Anda pilih, GKE Identity Service mengharuskan Anda menentukan detail tentang penyedia identitas, informasi dalam token JWT yang disediakannya untuk identifikasi pengguna, dan informasi lain yang diberikan saat mendaftarkan GKE Identity Service sebagai aplikasi klien.

Jadi, misalnya, jika penyedia Anda membuat token identitas dengan kolom berikut (di antara kolom lainnya), dengan iss sebagai URI penyedia identitas, sub akan mengidentifikasi pengguna, dan groupList mencantumkan grup keamanan yang mencakup pengguna tersebut:

{
  'iss': 'https://server.example.com'
  'sub': 'u98523-4509823'
  'groupList': ['developers@example.corp', 'us-east1-cluster-admins@example.corp']
  ...
}

...konfigurasi Anda akan memiliki kolom sesuai berikut ini:

issueruri: 'https://server.example.com'
username: 'sub'
group: 'groupList'
...

Administrator platform Anda, atau siapa pun yang mengelola identitas di organisasi Anda, akan memberikan sebagian besar informasi yang dibutuhkan untuk membuat konfigurasi. Sebagai contoh konfigurasi untuk beberapa penyedia identitas yang umum digunakan, lihat Konfigurasi khusus penyedia.

Dengan GKE Identity Service, Anda dapat membuat atau mengupdate dan menerapkan konfigurasi ini dari Google Cloud Console atau menggunakan Google Cloud CLI.

Konsol

Aktifkan GKE Identity Service

  1. Di Konsol Google Cloud, buka halaman Features GKE Enterprise.

    Buka GKE Enterprise Features

  2. Di tabel Features, klik Enable di baris Identity Service, lalu klik Enable lagi di panel yang ditampilkan. Tindakan ini akan membuat instance pengontrol GKE Identity Service baru untuk mengelola siklus proses GKE Identity Service di cluster fleet Anda.

Pilih cluster

  1. Kembali ke tabel Features, klik Details di baris Identity Service untuk membuka panel detail layanan tersebut. Tindakan ini akan menampilkan cluster project Anda dan status GKE Identity Service level fleet-nya.
  2. Klik Update identity service untuk membuka panel penyiapan.
  3. Pilih cluster yang ingin Anda konfigurasi. Hanya jenis cluster yang didukung yang dapat dipilih. Anda dapat memilih cluster individual, atau menentukan bahwa Anda ingin semua cluster dikonfigurasi dengan konfigurasi identitas yang sama.
  4. Di menu drop-down Identity provider, pilih cara Anda ingin mengonfigurasi cluster. Jika cluster sudah memiliki konfigurasi GKE Identity Service, Anda dapat memilih untuk mengupdatenya. Jika cluster terdaftar yang sudah ada memiliki konfigurasi GKE Identity Service yang ingin digunakan, Anda dapat memilih untuk menyalin konfigurasi tersebut ke cluster yang dipilih. Untuk membuat konfigurasi yang benar-benar baru, ikuti petunjuk untuk penyedia pilihan Anda seperti dijelaskan di bagian berikutnya.

Tetapkan detail penyedia

Detail penyedia yang perlu Anda tambahkan bergantung pada jenis penyedia identitas yang ingin Anda gunakan untuk konfigurasi.

OIDC

  1. Pilih New Open ID Connect untuk membuat konfigurasi OIDC baru.
  2. Tentukan nama yang ingin digunakan untuk mengidentifikasi konfigurasi ini di kolom Nama penyedia, biasanya nama penyedia identitas. Nama ini harus diawali 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.
  3. Tentukan client ID yang ditampilkan saat mendaftarkan GKE Identity Service dengan penyedia Anda di kolom Client ID.
  4. Tentukan rahasia klien yang harus dibagikan antara aplikasi klien dan penyedia identitas di kolom Rahasia Klien.
  5. Tentukan URI tempat permintaan otorisasi dibuat ke penyedia identitas Anda di kolom Penerbit URL.
  6. Klik Next untuk menetapkan atribut OIDC.

Azure AD

  1. Pilih New Azure Active Directory untuk membuat konfigurasi Azure AD baru.
  2. Tentukan nama yang ingin digunakan untuk mengidentifikasi konfigurasi ini di kolom Nama penyedia, biasanya nama penyedia identitas. Nama ini harus diawali 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.
  3. Tentukan client ID yang ditampilkan saat mendaftarkan GKE Identity Service dengan penyedia Anda di kolom Client ID.
  4. Tentukan rahasia klien yang harus dibagikan antara aplikasi klien dan penyedia identitas di kolom Rahasia Klien.
  5. Tentukan tenant, yaitu akun Azure AD yang akan diautentikasi di Tenant.
  6. Klik Next untuk menetapkan atribut Azure AD.

LDAP

  1. Pilih LDAP untuk membuat konfigurasi LDAP baru.
  2. Tentukan nama yang ingin digunakan untuk mengidentifikasi konfigurasi ini di kolom Nama penyedia, biasanya nama penyedia identitas. Nama ini harus diawali 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.
  3. Klik Next.
  4. Tentukan nama host (wajib), jenis koneksi LDAP, dan sertifikat CA berenkode base64 server LDAP.
  5. Klik Next untuk mengonfigurasi server.
  6. Tentukan nama yang dibedakan, filter, atribut login, dan atribut ID pengguna.
  7. Klik Berikutnya untuk menetapkan detail pengguna.
  8. Jika Anda memilih untuk menggunakan grup, tentukan atribut ID, filter, dan nama yang dibedakan untuk grup.
  9. Klik Berikutnya untuk menetapkan detail grup.
  10. Tentukan nama pengguna dan sandi akun layanan.
  11. Klik Done untuk menetapkan nama akun layanan.

Menetapkan atribut

Atribut yang perlu ditambahkan bergantung pada penyedia identitas Anda dan opsi penyiapan yang dipilih oleh administrator platform saat mengonfigurasi penyedia untuk GKE Identity Service.

OIDC

  • Isi atribut konfigurasi:

    • URI pengalihan kubectl: Port dan URL alihan yang digunakan oleh gcloud CLI dan ditentukan oleh administrator platform Anda saat pendaftaran, biasanya dalam format http://localhost:PORT/callback.
    • Certificate Authority (Opsional): Jika diberikan oleh administrator platform, string sertifikat berenkode PEM untuk penyedia identitas.
    • Group Claims (Opsional): Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk menampilkan grup keamanan akun.
    • Awalan Grup (Opsional): Awalan yang ingin ditambahkan ke nama grup keamanan untuk menghindari bentrok 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 ada. Anda mungkin perlu menyetelnya jika misalnya cluster berada dalam jaringan pribadi dan perlu terhubung ke penyedia identitas publik. Contoh: http://user:password@10.10.10.10:8888.
    • Cakupan (Opsional): Cakupan tambahan apa pun 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, GKE Identity Service akan menggunakan "sub", yang merupakan klaim User-ID yang digunakan oleh banyak penyedia. Anda dapat memilih klaim lain, seperti "email" atau "nama", tergantung pada penyedia OpenID. Klaim selain "email" diawali dengan URL penerbit untuk mencegah konflik 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 apa pun yang diperlukan untuk konfigurasi, yang ditetapkan sebagai parameter Key dan Value. Klik Add 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

  • Isi atribut konfigurasi:

    • URI pengalihan kubectl: Port dan URL alihan yang digunakan oleh gcloud CLI dan ditentukan oleh administrator platform Anda saat pendaftaran, biasanya dalam format http://localhost:PORT/callback.
    • Proxy (Opsional): Alamat server proxy yang akan digunakan untuk terhubung ke penyedia identitas, jika ada. Anda mungkin perlu menyetelnya jika misalnya cluster berada dalam jaringan pribadi dan perlu terhubung ke penyedia identitas publik. Contoh: http://user:password@10.10.10.10:8888.

Tambahkan penyedia identitas

  • Jika memiliki penyedia identitas tambahan yang ingin dikonfigurasi untuk perangkat Anda, Anda memiliki opsi untuk menambahkan penyedia tersebut di sini. Ikuti langkah-langkah untuk menentukan penyedia identitas tambahan.

Perbarui konfigurasi

  • Klik Update configuration. Tindakan ini akan menginstal GKE Identity Service jika diperlukan (khusus cluster EKS, cluster GKE sudah menginstal GKE Identity Service secara default) dan menerapkan konfigurasi klien pada cluster yang Anda pilih.

gcloud

Membuat file konfigurasi

GKE Identity Service menggunakan jenis resource kustom (CRD) Kubernetes yang disebut ClientConfig untuk konfigurasi cluster, dengan kolom untuk semua informasi yang diperlukan GKE Identity Service untuk berinteraksi dengan penyedia identitas. Bagian berikut memberikan konfigurasi untuk OIDC dan LDAP, tempat Anda membuat file bernama auth-config.yaml dengan konfigurasi Anda.

OIDC

File berikut menunjukkan konfigurasi oidc dan konfigurasi azuread. Untuk mengetahui informasi selengkapnya terkait kapan harus menggunakan oidc atau azuread, 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: NAME
      proxy: PROXY_URL
      azureAD:
        clientID: CLIENT_ID
        clientSecret: CLIENT_SECRET
        tenant: TENANT_UUID
        kubectlRedirectURI: http://localhost:PORT/callback

Jika telah mengonfigurasi lebih dari satu penyedia identitas, Anda dapat mencantumkan beberapa konfigurasi autentikasi dalam file auth-config.yaml pada anchor authentication dalam format yang sama seperti di konfigurasi sebelumnya.

Tabel berikut menjelaskan kolom objek oidc dan azuread ClientConfig. Sebagian besar kolom bersifat opsional. Kolom yang perlu ditambahkan bergantung pada penyedia identitas Anda dan opsi penyiapan yang dipilih oleh administrator platform 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 dimulai dengan huruf, diikuti dengan maksimal 39 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. String
certificateAuthorityData Tidak Jika diberikan oleh administrator platform, string sertifikat berenkode PEM untuk penyedia identitas. Sertakan string yang dihasilkan di certificateAuthorityData sebagai satu baris. String
clientID Ya ID klien yang ditampilkan saat mendaftarkan GKE Identity Service dengan penyedia Anda. String
clientSecret Ya Rahasia klien yang ditampilkan saat mendaftarkan GKE Identity Service dengan penyedia Anda. String
deployCloudConsoleProxy Tidak Menentukan apakah proxy di-deploy sehingga memungkinkan Konsol Google Cloud terhubung ke penyedia identitas lokal yang tidak dapat diakses secara publik melalui internet. Secara default, opsi ini ditetapkan ke false. Boolean
extraParams Tidak Parameter key=value tambahan yang akan dikirim ke penyedia identitas, yang ditetapkan sebagai daftar yang dipisahkan koma; misalnya `prompt=consent,access_type=offline`. Daftar yang dipisahkan koma
enableAccessToken Tidak Jika diaktifkan, GKE Identity Service dapat menggunakan endpoint userinfo penyedia identitas untuk mendapatkan informasi grup saat pengguna login dari command line. Dengan begitu, Anda dapat menggunakan grup keamanan untuk otorisasi jika memiliki penyedia (seperti Okta) yang memberikan klaim grup dari endpoint ini. Jika tidak disetel, nilai ini dianggap sebagai false. Boolean
groupsClaim Tidak Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk menampilkan grup keamanan akun. String
groupPrefix Tidak Awalan yang ingin ditambahkan ke nama grup keamanan untuk menghindari bentrok dengan nama yang ada dalam aturan kontrol akses jika Anda memiliki konfigurasi untuk beberapa penyedia identitas (biasanya nama penyedia). String
issuerURI Ya URI tempat permintaan otorisasi dibuat untuk penyedia identitas Anda. URI harus menggunakan HTTPS. URL String
kubectlRedirectURI Ya URL dan port alihan yang digunakan oleh gcloud CLI dan ditentukan oleh administrator platform Anda saat pendaftaran, biasanya dalam bentuk `http://localhost:PORT/callback`. URL String
cakupan Ya Cakupan tambahan untuk dikirim ke penyedia OpenID. Misalnya, Microsoft Azure dan Okta memerlukan cakupan offline_access. Daftar yang dipisahkan koma
userClaim Tidak Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk mengidentifikasi akun pengguna. Jika Anda tidak menentukan nilai di sini, GKE Identity Service akan menggunakan "sub", yang merupakan klaim User-ID yang digunakan oleh banyak penyedia. Anda dapat memilih klaim lain, seperti "email" atau "nama", tergantung pada penyedia OpenID. Klaim selain "email" diawali dengan URL penerbit untuk mencegah konflik penamaan. String
userPrefix Tidak Awalan yang ingin Anda tambahkan ke klaim pengguna untuk mencegah bentrokan dengan nama yang sudah ada, jika Anda tidak ingin menggunakan awalan default. String
tenant Ya Jenis akun Azure AD yang akan diotentikasi. Nilai yang didukung adalah ID tenant, atau nama tenant untuk akun milik tenant tertentu. Nama tenant juga dikenal sebagai domain primer. Untuk mengetahui detail tentang cara menemukan nilai ini, lihat Menemukan ID tenant Microsoft Azure AD dan nama domain primer. String
proxy Tidak Alamat server proxy yang akan digunakan untuk terhubung ke penyedia identitas, jika berlaku. Anda mungkin perlu menyetelnya jika misalnya cluster berada dalam jaringan pribadi dan perlu terhubung ke penyedia identitas publik. Misalnya: http://user:password@10.10.10.10:8888. String

LDAP

File 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: PASSWORD

Tabel berikut menjelaskan kolom di objek ldap ClientConfig. Kolom yang perlu ditambahkan bergantung pada penyedia identitas Anda dan opsi penyiapan yang dipilih oleh administrator platform saat mengonfigurasi penyedia untuk GKE Identity Service:

Kolom Diperlukan Deskripsi Format
name ya Nama untuk mengidentifikasi konfigurasi LDAP ini String
server
host ya Nama host atau alamat IP server LDAP. Port bersifat opsional dan secara default akan ditetapkan ke 389, jika tidak ditentukan. Misalnya ldap.server.example.com atau 10.10.10.10:389. String
connectionType ya Jenis koneksi LDAP yang akan digunakan saat terhubung ke server LDAP. Jika starttls atau ldaps ditentukan, kolom certificateAuthorityData wajib diisi. String
certificateAuthorityData Diperlukan untuk jenis koneksi LDAP tertentu Berisi sertifikat otoritas sertifikat berformat PEM yang dienkode Base64 untuk server LDAP. Alamat ini hanya boleh diberikan untuk koneksi ldaps dan startTLS. String
pengguna
baseDN ya Lokasi subtree dalam direktori LDAP untuk menelusuri entri pengguna. String dalam format DN.
loginAttribute tidak ada Nama atribut yang cocok dengan nama pengguna input. Atribut ini digunakan untuk menemukan pengguna di database LDAP, misalnya (<LoginAttribute>=<username>) dan digabungkan dengan kolom filter opsional. Nilai defaultnya adalah userPrincipleName. String
filter tidak ada Filter opsional untuk diterapkan saat menelusuri pengguna. Hal ini dapat digunakan untuk lebih membatasi akun pengguna yang diizinkan untuk masuk. Jika tidak ditentukan, setelan defaultnya adalah (objectClass=User). String
identifierAttribute tidak ada Menentukan atribut yang akan digunakan sebagai identitas pengguna setelah mereka diautentikasi. Hal ini berbeda dengan kolom loginAttribute yang memungkinkan pengguna login dengan nama pengguna, tetapi ID mereka yang sebenarnya berupa alamat email atau Nama yang Dibedakan (DN) lengkap. Misalnya, menetapkan loginAttribute ke sAMAccountName dan identifierAttribute ke userPrincipleName akan mengizinkan pengguna login sebagai bsmith, tetapi kebijakan RBAC sebenarnya untuk pengguna akan ditulis sebagai bsmith@example.com. Sebaiknya gunakan userPrincipleName karena metode ini akan bersifat unik untuk setiap pengguna. Jika tidak ditentukan, nilai defaultnya adalah userPrincipleName. String
group (Kolom opsional)
baseDN ya Lokasi subtree di direktori LDAP untuk mencari entri grup. String
filter tidak ada Filter opsional yang akan digunakan saat menelusuri grup tempat pengguna berada. Fungsi ini dapat digunakan untuk mencocokkan grup tertentu secara eksplisit guna mengurangi jumlah grup yang ditampilkan untuk setiap pengguna. Nilai defaultnya adalah (objectClass=Group). String
identifierAttribute tidak ada Nama pengidentifikasi setiap grup tempat pengguna berada. Misalnya, jika kebijakan ini disetel ke distinguishedName, RBAC dan ekspektasi grup lainnya harus ditulis sebagai DN lengkap. Jika tidak ditentukan, nilai defaultnya adalah distinguishedName. String
serviceAccount/simpleBindCredentials
dn ya Nama pengguna akun layanan yang dibedakan. String
sandi ya Sandi pengguna akun layanan. String

Aktifkan GKE Identity Service

Anda juga dapat mengaktifkan GKE Identity Service dengan konfigurasi default level fleet. Dengan penyiapan ini, konfigurasi yang Anda tentukan akan otomatis diterapkan ke setiap cluster baru yang terdaftar di fleet Anda. Untuk mengetahui informasi selengkapnya tentang konfigurasi default tingkat fleet, lihat Mengonfigurasi setelan default tingkat fleet.

Untuk mengaktifkan GKE Identity Service bagi project Anda, jalankan perintah berikut:

gcloud container fleet identity-service enable

Tindakan ini akan membuat instance pengontrol GKE Identity Service baru untuk mengelola siklus proses GKE Identity Service di cluster fleet Anda. Anda hanya perlu menjalankan perintah ini satu kali per project untuk menggunakan GKE Identity Service dengan semua cluster yang didukung yang telah terdaftar ke fleet project Anda.

Menerapkan konfigurasi ke cluster

Untuk menginstal GKE Identity Service jika diperlukan (khusus cluster EKS, cluster GKE sudah menginstal GKE Identity Service secara default) dan menerapkan konfigurasi ke cluster, jalankan perintah berikut:

gcloud container fleet identity-service apply \
--membership=CLUSTER_NAME \
--config=/path/to/auth-config.yaml

Ganti CLUSTER_NAME dengan nama unik cluster Anda dalam fleet.

Setelah menerapkan konfigurasi cluster, konfigurasi ini dikelola oleh pengontrol GKE Identity Service dan dianggap sebagai "sumber kebenaran". Setiap perubahan lokal yang dibuat pada konfigurasi klien GKE Identity Service akan direkonsiliasi kembali oleh pengontrol ke konfigurasi yang ditentukan dalam penyiapan ini.

Perlu diketahui bahwa jika Anda memiliki konfigurasi yang ada di cluster Anda untuk opsi autentikasi apa pun, hal berikut akan berlaku:

  • Jika Anda sudah memiliki konfigurasi level cluster untuk penyedia OIDC, penerapan kontrol GKE Identity Service tingkat fleet ke cluster akan menimpa semua spesifikasi autentikasi yang ada.
  • Penyiapan ini akan gagal jika Anda memiliki konfigurasi tingkat cluster yang ada untuk penyedia yang tidak didukung untuk konfigurasi tingkat fleet. Anda harus menghapus konfigurasi penyedia yang ada untuk menerapkan konfigurasi tingkat fleet.

Jika Anda tidak ingin lagi pengontrol GKE Identity Service mengelola konfigurasi, misalnya jika Anda ingin menggunakan opsi atau opsi autentikasi yang berbeda, Anda dapat menonaktifkan fitur ini dengan mengikuti petunjuk di Menonaktifkan pengelolaan GKE Identity Service.

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 GKE Identity Service dengan Azure AD. Dengan menggunakan konfigurasi ini, GKE Identity Service dapat mendapatkan informasi pengguna dan grup dari Azure AD, dan menyiapkan kontrol akses berbasis peran (RBAC) Kubernetes berdasarkan grup. Namun, menggunakan konfigurasi ini akan membatasi Anda untuk mengambil sekitar 200 grup per pengguna.

Jika perlu mengambil lebih dari 200 grup per pengguna, lihat petunjuk untuk Azure AD (Advanced).

...
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 GKE Identity Service 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 Penyiapan lanjutan untuk Azure AD.

Jika 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

# Rest of the resource is managed by Google. DO NOT MODIFY.
...

Okta

Berikut ini cara menyiapkan autentikasi menggunakan pengguna dan grup dengan Okta sebagai penyedia identitas. Dengan konfigurasi ini, GKE Identity Service dapat 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 fleet

Anda dapat mengaktifkan GKE Identity Service dengan konfigurasi default level fleet. Dengan penyiapan ini, setiap GKE di cluster Google Cloud baru yang terdaftar selama pembuatan cluster atau cluster Anthos akan mengaktifkan GKE Identity Service di cluster dengan konfigurasi yang Anda tentukan. Untuk mengetahui informasi selengkapnya tentang cara mengelola konfigurasi tingkat fleet, lihat Mengelola fitur tingkat fleet.

Untuk mengonfigurasi GKE Identity Service dengan konfigurasi default level fleet, lakukan hal berikut:

  1. Buat file bernama fleet-default.yaml dan isi sesuai dengan Buat file konfigurasi

  2. Aktifkan GKE Identity Service dengan konfigurasi default level fleet:

    gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
    
  3. Untuk mengubah konfigurasi default tingkat fleet yang ada, atau menambahkannya jika GKE Identity Service sudah diaktifkan di fleet Anda tanpa konfigurasi default level fleet, jalankan perintah berikut:

    gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml
    
  4. Cluster yang terdaftar sebelum konfigurasi default tingkat fleet yang dikonfigurasi tidak otomatis mewarisi konfigurasi default. Jika Anda ingin menerapkan konfigurasi default ke cluster yang termasuk dalam class cluster ini, jalankan perintah berikut:

    gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
    
  5. Untuk menghapus konfigurasi default tingkat fleet, jalankan perintah berikut:

    gcloud container fleet identity-service delete --fleet-default-member-config
    

Memverifikasi konfigurasi layanan identitas

Setelah menyelesaikan penyiapan level fleet, Anda dapat memverifikasi apakah cluster di fleet Anda telah berhasil dikonfigurasi dengan konfigurasi layanan identitas yang Anda tentukan.

Konsol

  1. Di Konsol Google Cloud, buka halaman Features GKE Enterprise.

    Buka GKE Enterprise Feature Management

    Semua fitur yang diaktifkan tercantum sebagai Diaktifkan dalam daftar Fitur.

  2. Klik DETAIL di seluruh fitur Identity Service. Panel detail menampilkan status cluster terdaftar Anda.

gcloud

Jalankan perintah berikut:

gcloud container fleet identity-service describe

Menyiapkan akses pengguna

Setelah mengonfigurasi cluster, lanjutkan ke menyiapkan akses pengguna.

Nonaktifkan pengelolaan GKE Identity Service level fleet

Jika tidak ingin Google Cloud lagi mengelola konfigurasi dan siklus proses GKE Identity Service, Anda dapat menonaktifkan fitur ini. Menonaktifkan pengelolaan level fleet tidak akan menghapus GKE Identity Service atau konfigurasi autentikasi Anda dari cluster, sehingga pengguna masih dapat melakukan autentikasi ke cluster menggunakan penyedia identitas pihak ketiga yang dikonfigurasi. Namun, jika Anda melakukan pengeditan manual lokal pada cluster ke konfigurasi atau resource GKE Identity Service, perubahan tersebut tidak lagi direkonsiliasi dengan status yang sesuai dengan satu sumber tepercaya.

Menonaktifkan pengelolaan tingkat fleet untuk cluster

Untuk menonaktifkan pengelolaan tingkat fleet untuk cluster, jalankan perintah berikut:

gcloud container fleet identity-service delete --membership=CLUSTER_NAME

dengan CLUSTER_NAME adalah nama unik cluster Anda dalam fleet.

Menonaktifkan pengelolaan tingkat fleet untuk fleet

Lakukan tindakan berikut untuk menonaktifkan pengelolaan GKE Identity Service tingkat fleet untuk fleet Anda.

Konsol

  1. Di Konsol Google Cloud, buka halaman Features GKE Enterprise.

    Buka GKE Enterprise Features

  2. Di tabel Features, klik Details di baris Identity Service, lalu klik Disable GKE Identity Service di panel yang ditampilkan.

gcloud

Jalankan perintah berikut:

gcloud container fleet identity-service disable

Setelah menonaktifkan fitur untuk fleet, Anda tidak lagi dapat melihat atau memperbarui status GKE Identity Service cluster di Google Cloud Console atau dengan menggunakan gcloud.

Pemecahan masalah

Jika Anda mengalami masalah selama penyiapan ini, lihat panduan pemecahan masalah.