Menyiapkan cluster dengan GKE Identity Service di tingkat fleet
Dokumen ini ditujukan bagi administrator cluster atau operator aplikasi yang ingin menyiapkan GKE Identity Service di cluster mereka. Dokumen ini berisi petunjuk tentang cara menyiapkan GKE Identity Service di level fleet pada 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.
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 pilihan Anda, GKE Identity Service memerlukan Anda untuk menentukan detail tentang penyedia identitas, informasi dalam token JWT yang diberikannya 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
adalah URI penyedia identitas, sub
mengidentifikasi pengguna, dan groupList
mencantumkan grup keamanan tempat pengguna berada:
{ 'iss': 'https://server.example.com' 'sub': 'u98523-4509823' 'groupList': ['developers@example.corp', 'us-east1-cluster-admins@example.corp'] ... }
...konfigurasi Anda akan memiliki kolom terkait berikut:
issueruri: 'https://server.example.com' username: 'sub' group: 'groupList' ...
Administrator platform Anda, atau siapa pun yang mengelola identitas di organisasi Anda, harus memberi Anda sebagian besar informasi yang Anda butuhkan 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
Di konsol Google Cloud , buka halaman Feature Manager.
Klik Aktifkan di panel Identity Service, lalu klik Aktifkan lagi di panel yang ditampilkan. Tindakan ini akan membuat instance pengontrol GKE Identity Service baru untuk mengelola siklus proses GKE Identity Service di cluster armada Anda.
Pilih cluster
- Kembali di halaman Feature Manager, klik Details di panel Identity Service untuk membuka panel detail layanan. Bagian ini menampilkan cluster project Anda dan status Layanan Identitas GKE tingkat fleet-nya.
- Klik Perbarui layanan identitas untuk membuka panel penyiapan.
- Pilih cluster yang ingin Anda konfigurasi. Hanya jenis cluster yang didukung yang dapat dipilih. 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 armada, konfigurasi akan disesuaikan kembali ke default. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi default tingkat fleet.
- Di menu drop-down Penyedia identitas, pilih cara Anda ingin mengonfigurasi cluster. Jika cluster memiliki konfigurasi GKE Identity Service yang ada, Anda dapat memilih untuk memperbaruinya. Jika cluster terdaftar yang ada memiliki konfigurasi GKE Identity Service 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.
Tetapkan detail penyedia
Detail penyedia yang perlu Anda tambahkan bergantung pada jenis penyedia identitas yang ingin Anda gunakan untuk konfigurasi.
OIDC
- Pilih New Open ID Connect untuk membuat konfigurasi OIDC baru.
- 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.
- Tentukan client ID yang ditampilkan saat mendaftarkan GKE Identity Service dengan penyedia Anda 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 URL Penerbit.
- Klik Berikutnya untuk menyetel 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 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.
- Tentukan client ID yang ditampilkan saat mendaftarkan GKE Identity Service dengan penyedia Anda 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 Berikutnya untuk menyetel atribut Azure AD.
LDAP
- Pilih LDAP untuk membuat konfigurasi LDAP baru.
- 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.
- Klik Berikutnya.
- Tentukan nama host (wajib), jenis koneksi LDAP, dan sertifikat CA yang dienkode base64 dari server LDAP.
- Klik Next untuk mengonfigurasi server.
- Tentukan nama khusus pengguna, filter, atribut login, dan atribut ID.
- Klik Berikutnya untuk menyetel detail pengguna.
- Jika Anda memilih untuk menggunakan grup, tentukan nama khusus, filter, dan atribut ID grup.
- Klik Berikutnya untuk menyetel detail grup.
- Tentukan nama pengguna dan sandi akun layanan.
- 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 Anda saat mengonfigurasi penyedia untuk Layanan Identitas 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 bentukhttp://localhost:PORT/callback
. - Certificate Authority (Opsional): Jika disediakan oleh administrator platform Anda, string sertifikat berenkode PEM untuk penyedia identitas.
- Klaim Grup (Opsional): Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk menampilkan grup keamanan akun.
- Awalan Grup (Opsional): Awalan yang ingin Anda tambahkan ke nama grup keamanan untuk menghindari bentrokan 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 menyetel 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
. - Cakupan (Opsional): Cakupan tambahan 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 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 bentrokan penamaan.
- Awalan Pengguna (Opsional): Awalan yang ingin Anda tambahkan ke klaim pengguna untuk mencegah bentrokan dengan nama yang ada, jika Anda tidak ingin menggunakan awalan default.
- Parameter Tambahan (Opsional): Parameter tambahan yang diperlukan untuk konfigurasi Anda, yang ditentukan sebagai Kunci dan Nilai parameter. Klik Tambahkan parameter untuk menambahkan parameter lainnya jika diperlukan.
- Aktifkan token akses (Opsional): Jika diaktifkan, fitur 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.
- URI pengalihan
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 bentukhttp://localhost:PORT/callback
. - Klaim Pengguna (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 berlaku. Anda mungkin perlu menyetel 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
.
- URI pengalihan
Tambahkan penyedia identitas
- Jika Anda memiliki penyedia identitas tambahan yang ingin dikonfigurasi untuk armada, Anda dapat menambahkan penyedia tersebut di sini. Ikuti langkah-langkah untuk menentukan penyedia identitas tambahan.
Update 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 di 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 dibutuhkan 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 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 penanda authentication
dengan format yang sama seperti pada konfigurasi sebelumnya.
Tabel berikut menjelaskan kolom objek ClientConfig oidc
dan azuread
. Sebagian besar kolom bersifat opsional. Kolom yang perlu Anda tambahkan bergantung pada penyedia identitas dan opsi penyiapan yang dipilih oleh administrator platform Anda saat mengonfigurasi penyedia untuk Layanan Identitas 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 berenkode PEM untuk penyedia identitas. Sertakan string
yang dihasilkan dalam certificateAuthorityData sebagai satu baris. |
String |
clientID | Ya | ID klien yang ditampilkan saat mendaftarkan Layanan Identitas GKE dengan penyedia Anda. | String |
clientSecret | Ya | Rahasia klien yang ditampilkan saat mendaftarkan Layanan Identitas 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 key=value tambahan untuk dikirim ke penyedia identitas, yang ditentukan sebagai comma-separated list; misalnya `prompt=consent,access_type=offline`. | Daftar yang dipisahkan koma |
enableAccessToken | Tidak | Jika diaktifkan, Layanan Identitas GKE 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 Anda memiliki
penyedia (seperti Okta) yang menyediakan klaim grup dari endpoint ini. Jika
tidak disetel, nilai ini dianggap false . |
Boolean |
groupsClaim | Tidak | Klaim JWT (nama kolom) yang digunakan penyedia Anda untuk menampilkan grup keamanan akun. | String |
groupPrefix | Tidak | Awalan yang ingin Anda tambahkan ke nama grup keamanan untuk menghindari bentrokan 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 pengalihan dan port 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, GKE Identity Service 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 bentrokan penamaan. | String |
userPrefix | Tidak | Awalan yang ingin ditambahkan ke klaim pengguna untuk mencegah bentrokan 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 termasuk dalam 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 menyetel ini 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 ClientConfig saml
. Kolom yang perlu Anda tambahkan bergantung pada penyedia identitas dan opsi penyiapan yang dipilih oleh administrator platform Anda saat mengonfigurasi penyedia untuk Layanan Identitas 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. 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 bentrokan dengan nama yang ada, jika Anda tidak ingin menggunakan awalan default. | String |
groupPrefix | Tidak | Awalan yang ingin Anda tambahkan ke nama grup keamanan untuk menghindari bentrokan 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 berenkode 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 ClientConfig ldap
. Kolom yang perlu Anda tambahkan bergantung pada penyedia identitas Anda dan opsi penyiapan yang dipilih oleh administrator platform Anda saat mengonfigurasi penyedia untuk Layanan Identitas 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 ke 389 secara default, 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 diisi untuk jenis koneksi LDAP tertentu | Berisi sertifikat otoritas sertifikat berformat PEM yang dienkode Base64 untuk server LDAP. Ini hanya boleh diberikan untuk koneksi ldaps dan startTLS .
|
String |
pengguna | |||
baseDN | ya | Lokasi subtree di direktori LDAP untuk menelusuri entri pengguna. | String dalam format DN. |
loginAttribute | tidak | 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 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 pengguna diautentikasi.
Hal ini berbeda dengan kolom loginAttribute untuk
memungkinkan pengguna login dengan nama pengguna, tetapi kemudian
memiliki ID sebenarnya berupa alamat email atau Nama yang Dibedakan (DN) lengkap. Misalnya, menyetel loginAttribute
ke sAMAccountName dan identifierAttribute ke userPrincipalName
akan memungkinkan pengguna login sebagai bsmith , tetapi kebijakan
RBAC sebenarnya untuk pengguna akan ditulis sebagai bsmith@example.com .
Sebaiknya gunakan userPrincipalName karena
akan unik untuk setiap pengguna. Jika tidak ditentukan, nilai defaultnya adalah userPrincipalName .
|
String |
grup (Kolom opsional) | |||
baseDN | ya | Lokasi subtree di direktori LDAP untuk menelusuri entri grup. | String |
filter | tidak | Filter opsional yang akan digunakan saat menelusuri grup tempat pengguna bergabung. Hal ini dapat digunakan untuk mencocokkan secara eksplisit hanya grup tertentu guna mengurangi jumlah grup yang ditampilkan untuk setiap pengguna. Nilai defaultnya adalah (objectClass=Group) .
|
String |
identifierAttribute | tidak | Nama identifikasi setiap grup yang mencakup pengguna. Misalnya, jika setelan ini ditetapkan 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 khusus pengguna akun layanan. | String |
sandi | ya | Sandi pengguna akun layanan. | String |
Mengaktifkan GKE Identity Service
Untuk mengaktifkan Layanan Identitas GKE untuk 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 armada Anda. Anda hanya perlu menjalankan perintah ini sekali per project untuk menggunakan GKE Identity Service dengan semua cluster yang didukung yang terdaftar ke fleet project Anda.
Secara opsional, Anda dapat mengaktifkan GKE Identity Service dengan konfigurasi default tingkat fleet. Dengan penyiapan ini, konfigurasi penyedia Layanan Identitas GKE yang Anda tentukan akan otomatis diterapkan ke setiap cluster GKE yang terdaftar ke fleet Anda selama pembuatan cluster. Google Cloud Anda dapat mengetahui lebih lanjut cara melakukannya di Mengonfigurasi default tingkat armada.
Menerapkan konfigurasi ke cluster
Untuk menginstal GKE Identity Service jika perlu (khusus cluster EKS, semua jenis cluster lain yang didukung 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 menjalankan perintah ini, konfigurasi akan dikelola oleh pengontrol GKE Identity Service. Setiap perubahan lokal yang dilakukan pada konfigurasi klien GKE Identity Service akan disesuaikan kembali oleh pengontrol ke konfigurasi yang ditentukan dalam penyiapan ini.
Dengan demikian, Layanan Identitas GKE dapat mengambil informasi Grup Google untuk akun pengguna yang login dengan ID Google mereka. Konfigurasi ini berlaku untuk cluster di Google Distributed Cloud (VMware dan bare metal) mulai dari GKE Enterprise versi 1.13 dan yang lebih baru. Untuk mengetahui lebih lanjut fitur Google Grup, lihat Menyiapkan gateway penghubung dengan Google Grup.
Perhatikan bahwa jika Anda memiliki konfigurasi yang ada di cluster untuk opsi autentikasi apa pun, hal berikut berlaku:
- Jika Anda memiliki konfigurasi tingkat cluster yang ada untuk penyedia OIDC, penerapan konfigurasi GKE Identity Service tingkat fleet ke cluster akan menggantikan semua spesifikasi autentikasi yang ada.
- Jika Anda memiliki konfigurasi tingkat cluster yang ada 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 lagi pengontrol Layanan Identitas GKE mengelola konfigurasi Anda, misalnya jika Anda ingin menggunakan opsi atau opsi autentikasi yang berbeda, Anda dapat menonaktifkan fitur ini dengan mengikuti petunjuk di Menonaktifkan pengelolaan Layanan Identitas 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 GKE Identity Service dengan Azure AD. Dengan konfigurasi ini, Layanan Identitas GKE dapat memperoleh informasi pengguna dan grup dari Azure AD, dan Anda dapat menyiapkan kontrol akses berbasis peran (RBAC) Kubernetes berdasarkan grup. Namun, menggunakan 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 (Tingkat Lanjut)
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 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 konfigurasi contoh 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 Anda inginkan 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 (on-premise).
Okta
Berikut cara menyiapkan autentikasi menggunakan pengguna dan grup dengan Okta sebagai penyedia identitas Anda. Konfigurasi ini memungkinkan GKE Identity Service 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 armada
Anda dapat mengaktifkan GKE Identity Service dengan konfigurasi default tingkat armada. Dengan penyiapan ini, setiap cluster GKE di Google Cloud baru yang terdaftar selama pembuatan cluster atau cluster GKE akan mengaktifkan GKE Identity Service secara otomatis di cluster dengan konfigurasi yang Anda tentukan. Jika Anda memiliki cluster anggota fleet yang ada saat Anda mengaktifkan fitur ini, cluster tersebut tidak otomatis diperbarui dengan default fleet, meskipun Anda dapat memilih untuk menerapkan konfigurasi default ke cluster tersebut. Untuk mengetahui informasi selengkapnya tentang mengelola konfigurasi tingkat fleet, lihat Mengelola fitur tingkat fleet.
Untuk mengonfigurasi GKE Identity Service dengan konfigurasi default tingkat fleet, lakukan hal berikut:
- Buat file bernama
fleet-default.yaml
dan isi sesuai dengan Buat file konfigurasi. Aktifkan GKE Identity Service dengan konfigurasi default tingkat armada Anda:
gcloud container fleet identity-service enable --fleet-default-member-config=fleet-default.yaml
Untuk mengubah konfigurasi default tingkat fleet yang ada, atau menambahkan konfigurasi jika GKE Identity Service 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 yang Anda daftarkan sebelum menyiapkan konfigurasi default tingkat fleet tidak otomatis mewarisi konfigurasi default. Untuk menerapkan konfigurasi default ke cluster anggota armada yang ada, jalankan perintah berikut:
gcloud container fleet identity-service apply --origin=fleet --membership=CLUSTER_NAME
Untuk menonaktifkan setelan default tingkat fleet untuk GKE Identity Service, 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 Anda telah berhasil dikonfigurasi dengan konfigurasi layanan identitas yang Anda tentukan.
Konsol
Di konsol Google Cloud , buka halaman Feature Manager.
Semua fitur yang diaktifkan dicantumkan sebagai Diaktifkan di panelnya.
Klik DETAIL di panel Identity Service. Panel detail menampilkan status cluster terdaftar Anda.
gcloud
Jalankan perintah berikut:
gcloud container fleet identity-service describe
Langkah berikutnya
Setelah mengonfigurasi cluster, lanjutkan menyiapkan akses pengguna.