Menyiapkan cluster dengan Identity Service GKE di tingkat fleet

Dokumen ini ditujukan untuk administrator cluster atau operator aplikasi yang ingin menyiapkan Identity Service GKE di cluster mereka. Panduan ini berisi petunjuk tentang cara menyiapkan Identity Service GKE di tingkat fleet di cluster Anda dengan penyedia identitas pilihan Anda.

Mengaktifkan API

Untuk memulai, Anda harus mengaktifkan API yang relevan.

Konsol

Pastikan project tempat cluster terdaftar 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 dipilih, Identity Service GKE mengharuskan Anda menentukan detail tentang penyedia identitas, informasi dalam token JWT yang disediakan untuk identifikasi pengguna, dan informasi lain yang diberikan saat mendaftarkan Identity Service GKE sebagai aplikasi klien. Jadi, misalnya, jika penyedia Anda membuat token identitas dengan kolom berikut (di antara lainnya), dengan iss adalah URI penyedia identitas, sub mengidentifikasi pengguna, dan groupList mencantumkan grup keamanan yang menjadi bagian dari pengguna:

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

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

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 diperlukan untuk membuat konfigurasi. Untuk contoh konfigurasi beberapa penyedia identitas yang umum digunakan, lihat Konfigurasi khusus penyedia.

Layanan Identitas GKE memungkinkan Anda membuat atau memperbarui dan menerapkan konfigurasi ini dari konsol Google Cloud atau menggunakan Google Cloud CLI.

Konsol

Mengaktifkan GKE Identity Service

  1. Di konsol Google Cloud, buka halaman Feature Manager.

    Buka Pengelola Fitur

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

Memilih cluster

  1. Kembali ke halaman Pengelola Fitur, klik Detail di panel Identity Service untuk membuka panel detail layanan. Tindakan ini akan menampilkan cluster project Anda dan status Identity Service GKE tingkat fleet-nya.
  2. Klik Perbarui layanan identitas untuk membuka panel penyiapan.
  3. Pilih cluster yang ingin Anda konfigurasi. Hanya jenis cluster yang didukung yang dapat dipilih. Anda dapat memilih setiap cluster, atau menentukan bahwa Anda ingin semua cluster dikonfigurasi dengan konfigurasi identitas yang sama. Jika Anda telah mengonfigurasi setelan default tingkat grup, konfigurasi akan disambungkan kembali ke setelan default. Untuk informasi selengkapnya, lihat Mengonfigurasi setelan default tingkat grup.
  4. Di menu drop-down Identity provider, pilih cara Anda ingin mengonfigurasi cluster. Jika cluster sudah memiliki konfigurasi Identity Service GKE, Anda dapat memilih untuk mengupdatenya. Jika cluster terdaftar yang ada memiliki konfigurasi Identity Service GKE yang ingin Anda gunakan, Anda dapat memilih untuk menyalin konfigurasi tersebut ke cluster yang dipilih. Untuk membuat konfigurasi yang benar-benar baru, ikuti petunjuk untuk penyedia yang Anda pilih seperti yang dijelaskan di bagian berikutnya.

Menetapkan detail penyedia

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

OIDC

  1. Pilih Open ID Connect Baru untuk membuat konfigurasi OIDC baru.
  2. 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.
  3. Tentukan client ID yang ditampilkan saat mendaftarkan Identity Service GKE 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 URL Penerbit.
  6. Klik Berikutnya untuk menetapkan atribut OIDC.

Azure AD

  1. Pilih Azure Active Directory Baru untuk membuat konfigurasi Azure AD baru.
  2. 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.
  3. Tentukan client ID yang ditampilkan saat mendaftarkan Identity Service GKE 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 yang merupakan akun Azure AD yang akan diautentikasi di Tenant.
  6. Klik Berikutnya untuk menetapkan atribut Azure AD.

LDAP

  1. Pilih LDAP untuk membuat konfigurasi LDAP baru.
  2. 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.
  3. Klik Berikutnya.
  4. Tentukan nama host (wajib), jenis koneksi LDAP, dan sertifikat CA yang dienkode base64 dari server LDAP.
  5. Klik Next untuk mengonfigurasi server.
  6. Tentukan nama yang dibedakan, filter, atribut login, dan atribut ID pengguna.
  7. Klik Next untuk menetapkan detail pengguna.
  8. Jika Anda memilih untuk menggunakan grup, tentukan atribut nama unik, filter, dan ID grup.
  9. Klik Berikutnya untuk menetapkan detail grup.
  10. Tentukan nama pengguna dan sandi akun layanan.
  11. Klik Selesai untuk menetapkan nama akun layanan.

Menetapkan atribut

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

OIDC

  • Isi atribut konfigurasi:

    • URI pengalihan kubectl: URL dan port pengalihan yang digunakan oleh gcloud CLI dan ditentukan oleh administrator platform Anda saat pendaftaran, biasanya dalam bentuk http://localhost:PORT/callback.
    • Certificate Authority (Opsional): Jika disediakan oleh administrator platform Anda, string sertifikat berenkode PEM untuk penyedia identitas.
    • Group Claim (Opsional): Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk menampilkan grup keamanan akun.
    • Awal 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 berlaku. Anda mungkin perlu menetapkannya 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 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.
    • User Claim (Opsional): Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk mengidentifikasi akun. Jika Anda tidak menentukan nilai di sini, Identity Service GKE 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" diawali dengan URL penerbit untuk mencegah konflik penamaan.
    • Awalan Pengguna (Opsional): Awalan yang ingin ditambahkan ke klaim pengguna untuk mencegah bentrok dengan nama yang ada, jika Anda tidak ingin menggunakan awalan default.
    • Extra Params (Opsional): Parameter tambahan apa pun yang diperlukan untuk konfigurasi Anda, yang ditentukan sebagai parameter Key dan Value. Klik Tambahkan param untuk menambahkan parameter lainnya jika diperlukan.
    • Aktifkan token akses (Opsional): Jika diaktifkan, opsi ini akan mengizinkan dukungan grup untuk penyedia OIDC seperti Okta.
    • Deploy Google Cloud console proxy (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: URL dan port pengalihan yang digunakan oleh gcloud CLI dan ditentukan oleh administrator platform Anda saat pendaftaran, biasanya dalam bentuk http://localhost:PORT/callback.
    • User Claim (Opsional): Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk mengidentifikasi akun. Jika Anda tidak menentukan nilai di sini, Layanan Identitas GKE 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 ada. Anda mungkin perlu menetapkannya jika, misalnya, cluster Anda berada di 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 armada, Anda memiliki opsi untuk menambahkan penyedia di sini. Ikuti langkah-langkah untuk menentukan penyedia identitas tambahan.

Update konfigurasi

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

gcloud

Membuat file konfigurasi

Identity Service GKE menggunakan jenis resource kustom (CRD) Kubernetes yang disebut ClientConfig untuk konfigurasi cluster, dengan kolom untuk semua informasi yang diperlukan Identity Service GKE 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 tentang 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 di bawah anchor authentication dalam format yang sama seperti dalam konfigurasi sebelumnya. Tabel berikut menjelaskan kolom objek oidc dan azuread ClientConfig. Sebagian besar kolom bersifat opsional. Kolom yang perlu Anda tambahkan bergantung pada penyedia identitas dan opsi penyiapan yang dipilih oleh administrator platform saat mengonfigurasi penyedia untuk Identity Service GKE.

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
certificateAuthorityData Tidak Jika disediakan oleh administrator platform Anda, string sertifikat yang dienkode PEM untuk penyedia identitas. Sertakan string yang dihasilkan di certificateAuthorityData sebagai satu baris. String
clientID Ya ID klien yang ditampilkan saat mendaftarkan Identity Service GKE dengan penyedia Anda. String
clientSecret Ya Rahasia klien ditampilkan saat mendaftarkan Identity Service GKE dengan penyedia Anda. String
deployCloudConsoleProxy Tidak Menentukan apakah proxy di-deploy yang memungkinkan konsol Google Cloud terhubung ke penyedia identitas lokal yang tidak dapat diakses secara publik melalui internet. Secara default, nilai ini ditetapkan ke false. Boolean
extraParams Tidak Parameter kunci=nilai tambahan yang akan dikirim ke penyedia identitas, yang ditentukan sebagai daftar yang dipisahkan koma; misalnya `prompt=consent,access_type=offline`. Daftar yang dipisahkan koma
enableAccessToken Tidak Jika diaktifkan, Identity Service GKE dapat menggunakan endpoint userinfo penyedia identitas untuk mendapatkan informasi grup saat pengguna login dari command line. Hal ini memungkinkan Anda menggunakan grup keamanan untuk otorisasi jika memiliki penyedia (seperti Okta) yang menyediakan klaim grup dari endpoint ini. Jika tidak ditetapkan, 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 konflik 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 ke penyedia identitas Anda. URI harus menggunakan HTTPS. URL String
kubectlRedirectURI Ya URL dan port pengalihan 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 yang akan 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, Identity Service GKE 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" diawali dengan URL penerbit untuk mencegah konflik penamaan. String
userPrefix Tidak Awalan yang ingin ditambahkan ke klaim pengguna untuk mencegah bentrok dengan nama yang ada, jika Anda tidak ingin menggunakan awalan default. String
tenant Ya Jenis akun Azure AD yang akan diautentikasi. Nilai yang didukung adalah ID tenant, atau nama tenant untuk akun yang dimiliki oleh tenant tertentu. Nama tenant juga dikenal sebagai domain utama. Untuk mengetahui detail tentang cara menemukan nilai ini, lihat Menemukan ID tenant Microsoft Azure AD dan nama domain utama. String
proxy Tidak Alamat server proxy yang akan digunakan untuk terhubung ke penyedia identitas, jika ada. Anda mungkin perlu menetapkannya jika, misalnya, cluster Anda berada di jaringan pribadi dan perlu terhubung ke penyedia identitas publik. Misalnya: http://user:password@10.10.10.10:8888. String

SAML

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

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

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. 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 ditambahkan ke klaim pengguna untuk mencegah bentrok dengan nama yang ada, jika Anda tidak ingin menggunakan awalan default. String
groupPrefix Tidak Awalan yang ingin ditambahkan 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). String
attributeMapping Tidak Pemetaan atribut pengguna tambahan. String
certificateAuthorityData Tidak Jika disediakan oleh administrator platform Anda, string sertifikat yang dienkode PEM untuk penyedia identitas. Sertakan string yang dihasilkan di certificateAuthorityData sebagai satu baris. String
preferredAuthentication Tidak Nama metode autentikasi pilihan yang dikonfigurasi di cluster. 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 dalam objek ldap ClientConfig. Kolom yang perlu Anda tambahkan bergantung pada penyedia identitas dan opsi penyiapan yang dipilih oleh administrator platform saat mengonfigurasi penyedia untuk Identity Service GKE:

Kolom Diperlukan Deskripsi Format
nama ya Nama untuk mengidentifikasi konfigurasi LDAP ini String
server
host ya Nama host atau alamat IP server LDAP. Port bersifat opsional dan akan ditetapkan secara default 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 tidak boleh kosong. String
certificateAuthorityData Wajib untuk jenis koneksi LDAP tertentu Berisi sertifikat Certificate Authority berformat PEM yang dienkode Base64 untuk server LDAP. Ini hanya boleh diberikan untuk koneksi ldaps dan startTLS. String
pengguna
baseDN ya Lokasi sub-pohon di direktori LDAP untuk menelusuri entri pengguna. String dalam format DN.
loginAttribute tidak Nama atribut yang cocok dengan nama pengguna input. Ini digunakan untuk menemukan pengguna di database LDAP, misalnya (<LoginAttribute>=<username>) dan digabungkan dengan kolom filter opsional. Nilai defaultnya adalah userPrincipalName. String
filter tidak Filter opsional yang akan diterapkan saat menelusuri pengguna. Hal ini dapat digunakan untuk lebih membatasi akun pengguna yang diizinkan untuk login. Jika tidak ditentukan, setelan defaultnya adalah (objectClass=User). String
identifierAttribute tidak Menentukan atribut mana yang akan digunakan sebagai identitas pengguna setelah diautentikasi. Kolom ini berbeda dengan kolom loginAttribute untuk mengizinkan pengguna login dengan nama pengguna, tetapi kemudian ID sebenarnya adalah alamat email atau Nama yang Dibedakan (DN) lengkap. Misalnya, menetapkan loginAttribute ke sAMAccountName dan identifierAttribute ke userPrincipalName akan memungkinkan pengguna login sebagai bsmith, tetapi kebijakan RBAC yang sebenarnya untuk pengguna akan ditulis sebagai bsmith@example.com. Sebaiknya gunakan userPrincipalName karena akan unik untuk setiap pengguna. Jika tidak ditentukan, setelan defaultnya adalah userPrincipalName. String
group (Kolom opsional)
baseDN ya Lokasi sub-pohon di direktori LDAP untuk menelusuri entri grup. String
filter tidak Filter opsional yang akan digunakan saat menelusuri grup tempat pengguna bergabung. Ini dapat digunakan untuk mencocokkan secara eksplisit hanya grup tertentu untuk mengurangi jumlah grup yang ditampilkan untuk setiap pengguna. Nilai defaultnya adalah (objectClass=Group). String
identifierAttribute tidak Nama identitas setiap grup yang mencakup pengguna. Misalnya, jika ditetapkan ke distinguishedName, RBAC dan ekspektasi grup lainnya harus ditulis sebagai DN lengkap. Jika tidak ditentukan, setelan defaultnya adalah distinguishedName. String
serviceAccount/simpleBindCredentials
dn ya Nama unik pengguna akun layanan. String
sandi ya Sandi pengguna akun layanan. String

Mengaktifkan GKE Identity Service

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

gcloud container fleet identity-service enable

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

Secara opsional, Anda dapat mengaktifkan Identity Service GKE dengan konfigurasi default level fleet. Dengan penyiapan ini, konfigurasi penyedia Identity Service GKE yang Anda tentukan akan otomatis diterapkan ke setiap cluster GKE di Google Cloud yang terdaftar ke fleet Anda selama pembuatan cluster. Anda dapat mengetahui lebih lanjut cara melakukannya di Mengonfigurasi setelan default tingkat armada.

Menerapkan konfigurasi ke cluster

Untuk menginstal Identity Service GKE jika diperlukan (khusus cluster EKS, semua jenis cluster lain yang didukung sudah menginstal Identity Service GKE 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 menjalankan perintah ini, konfigurasi akan dikelola oleh pengontrol Identity Service GKE. Setiap perubahan lokal yang dilakukan pada konfigurasi klien Identity Service GKE akan disatukan kembali oleh pengontrol ke konfigurasi yang ditentukan dalam penyiapan ini.

Hal ini memungkinkan Identity Service GKE 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) dari GKE Enterprise versi 1.13 dan yang lebih baru. Untuk mengetahui lebih lanjut fitur Google Grup, lihat Menyiapkan gateway koneksi dengan Google Grup.

Perhatikan bahwa jika Anda sudah memiliki konfigurasi di cluster untuk opsi autentikasi apa pun, hal berikut akan berlaku:

  • Jika Anda sudah memiliki konfigurasi tingkat cluster untuk penyedia OIDC, menerapkan konfigurasi Identity Service GKE tingkat fleet ke cluster akan menimpa semua spesifikasi autentikasi yang ada.
  • Jika Anda sudah memiliki konfigurasi tingkat cluster 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.

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

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 Identity Service GKE dengan Azure AD. Dengan menggunakan konfigurasi ini, Identity Service GKE dapat mendapatkan informasi pengguna dan grup dari Azure AD, serta memungkinkan Anda 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 Layanan Identitas GKE 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 Anda perlu mengambil kurang dari 200 grup per pengguna, sebaiknya gunakan konfigurasi default menggunakan anchor oidc di ClientConfig Anda. Untuk 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 memiliki nilai yang sesuai dengan ID atau NAME grup pengguna. Setelan ini hanya tersedia untuk cluster dalam deployment Google Distributed Cloud (on-premise).

Okta

Berikut ini cara menyiapkan autentikasi menggunakan pengguna dan grup dengan Okta sebagai penyedia identitas Anda. Konfigurasi ini memungkinkan Identity Service GKE 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 mengaktifkan Identity Service GKE dengan konfigurasi default tingkat fleet. Dengan penyiapan ini, setiap cluster GKE di Google Cloud yang terdaftar selama pembuatan cluster atau cluster GKE akan otomatis mengaktifkan GKE Identity Service di cluster dengan konfigurasi yang Anda tentukan. Jika Anda sudah memiliki cluster anggota fleet saat mengaktifkan fitur ini, cluster tersebut tidak akan otomatis diperbarui dengan default fleet, meskipun Anda dapat memilih untuk menerapkan konfigurasi default ke cluster tersebut. Untuk mengetahui informasi selengkapnya tentang cara mengelola konfigurasi tingkat fleet, lihat Mengelola fitur tingkat fleet.

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

  1. Buat file bernama fleet-default.yaml dan isi sesuai dengan Membuat file konfigurasi.
  2. Aktifkan Identity Service GKE dengan konfigurasi default tingkat fleet Anda:

    gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml

    Untuk mengubah konfigurasi default tingkat fleet yang ada, atau menambahkannya jika Identity Service GKE sudah diaktifkan di fleet Anda tanpa fitur ini, jalankan perintah berikut:

    gcloud container fleet identity-service apply --fleet-default-member-config=default-config.yaml

    Cluster anggota fleet yang ada dan Anda daftarkan sebelum menyiapkan konfigurasi default tingkat fleet tidak otomatis mewarisi konfigurasi default. Untuk menerapkan konfigurasi default ke cluster anggota fleet yang ada, jalankan perintah berikut:

    gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME

    Untuk menonaktifkan setelan default tingkat fleet untuk Identity Service GKE, jalankan perintah berikut untuk menghapus konfigurasi default:

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

Memverifikasi konfigurasi layanan identitas

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

Konsol

  1. Di konsol Google Cloud, buka halaman Feature Manager.

    Buka Pengelola Fitur

    Semua fitur yang diaktifkan tercantum sebagai Diaktifkan di panelnya.

  2. Klik DETAILS di panel Identity Service. Panel detail menampilkan status cluster terdaftar Anda.

gcloud

Jalankan perintah berikut:

gcloud container fleet identity-service describe

Langkah selanjutnya

Setelah mengonfigurasi cluster, lanjutkan untuk menyiapkan akses pengguna.