Mengakses cluster dengan GKE Identity Service

GKE Identity Service adalah layanan autentikasi yang memungkinkan Anda menggunakan penyedia identitas organisasi yang sudah ada untuk melakukan autentikasi ke cluster di beberapa lingkungan GKE Enterprise, sehingga Anda dapat menggunakan ID yang sama untuk login ke cluster di Google Cloud, infrastruktur lokal, dan cloud publik lainnya. Dokumen ini ditujukan bagi developer dan pengguna cluster GKE lainnya yang perlu mengakses cluster menggunakan layanan ini. Jika Anda perlu login ke cluster menggunakan ID Google Cloud melalui Gateway Connect, lihat Menggunakan Gateway Connect.

Jika Anda adalah administrator platform atau cluster yang perlu menyiapkan GKE Identity Service untuk organisasi atau tim Anda, lihat ringkasan Layanan Identitas GKE untuk mengetahui lingkungan cluster yang didukung, prasyarat lainnya, dan panduan penyiapan yang relevan.

Login ke cluster dari command line

Untuk melakukan autentikasi ke cluster dari command line, Anda perlu menjalankan perintah autentikasi gcloud menggunakan file konfigurasi login khusus yang disediakan oleh administrator cluster.

Sebelum memulai

  1. 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
  2. Jalankan perintah berikut untuk menginstal atau mengupdate komponen anthos-auth:

    gcloud components update
    gcloud components install anthos-auth
  3. Pastikan alat tersebut berhasil diinstal dengan menjalankan perintah berikut:

    gcloud anthos auth version

    Jika sebuah versi ditampilkan, berarti penginstalan Anda berhasil.

Mendapatkan file konfigurasi

Gcloud CLI mengasumsikan nama file dan lokasi default di mesin lokal Anda untuk file konfigurasi autentikasi. Administrator Anda mungkin menyalin file ke komputer Anda. Jika Anda diberi file secara manual dan perlu menyimpannya di komputer, gunakan default untuk menyederhanakan perintah autentikasi gcloud Anda.

Gunakan perintah berikut untuk menyalin file konfigurasi autentikasi ke lokasi default:

Linux

mkdir -p  $HOME/.config/google/anthos/
cp [AUTH_CONFIG_FILE] $HOME/.config/google/anthos/kubectl-anthos-config.yaml

dengan [AUTH_CONFIG_FILE] adalah nama file konfigurasi autentikasi Anda. Contohnya, kubectl-anthos-config.yaml.

macOS

mkdir -p  $HOME/Library/Preferences/google/anthos/
cp [AUTH_CONFIG_FILE] $HOME/Library/Preferences/google/anthos/kubectl-anthos-config.yaml

dengan [AUTH_CONFIG_FILE] adalah nama file konfigurasi autentikasi Anda. Contohnya, kubectl-anthos-config.yaml.

Windows

md "%APPDATA%\google\anthos"
copy [AUTH_CONFIG_FILE] "%APPDATA%\google\anthos\kubectl-anthos-config.yaml"

dengan [AUTH_CONFIG_FILE] adalah nama file konfigurasi autentikasi Anda. Contohnya, kubectl-anthos-config.yaml.

Jika Anda atau administrator memilih untuk menggunakan nama file atau lokasi yang berbeda (misalnya, jika administrator Anda menyediakan file di URL aman), Anda dapat menentukannya menggunakan tanda --login-config dengan setiap permintaan autentikasi. Lihat bagian berikut untuk detail selengkapnya.

Melakukan autentikasi ke cluster

Jalankan perintah gcloud untuk melakukan autentikasi dengan cluster Anda:

  1. Jalankan perintah gcloud anthos auth login untuk memulai alur autentikasi:

    gcloud anthos auth login \
     --cluster [CLUSTER_NAME] \
     --user [USER_NAME] \
     --login-config [AUTH_CONFIG_FILE_PATH] \
     --login-config-cert [CA_CERT_PEM_FILE] \
     --kubeconfig [CLUSTER_KUBECONFIG]

    dengan:

    • [CLUSTER_NAME] (opsional) menentukan nama cluster Anda. Jika flag ini dihilangkan, Anda akan diminta untuk memilih dari cluster yang ditentukan dalam file konfigurasi autentikasi Anda.

    • [USER_NAME] (opsional) menentukan nama pengguna untuk kredensial yang disimpan dalam file kubeconfig. Nilai defaultnya adalah [CLUSTER_NAME]-anthos-default-user.

    • [AUTH_CONFIG_FILE_PATH] (opsional) menentukan jalur kustom atau URL tempat file konfigurasi autentikasi Anda disimpan atau dihosting. Anda dapat menghilangkan parameter ini, jika file berada di lokasi default. Contoh: --login-config /path/to/custom/authentication-config.yaml

    • [CA_CERT_PEM_FILE] (opsional) menentukan jalur ke file sertifikat PEM dari CA Anda. Jika file konfigurasi autentikasi dihosting dengan aman, Anda dapat menggunakan koneksi HTTPS untuk mengakses file. Contoh: --login-config-cert my-cert.pem

    • [CLUSTER_KUBECONFIG] (opsional) menentukan jalur kustom untuk file kubeconfig cluster Anda. Token ID OIDC yang ditampilkan oleh penyedia OpenID Anda disimpan dalam file kubeconfig.

      Gunakan tanda ini jika file kubeconfig Anda berada di lokasi selain default. Jika tanda ini dihilangkan, token autentikasi akan ditambahkan ke file kubeconfig di lokasi default. Contoh: --kubeconfig /path/to/custom.kubeconfig

    Contoh:

    • Autentikasi cluster tertentu:

      gcloud anthos auth login --cluster my-production-cluster
      
    • Gunakan perintah untuk memilih cluster mana yang akan diautentikasi:

      gcloud anthos auth login
      

      Hasil:

      Please use the --cluster flag to specify a cluster from the list below:
      Source: $HOME/.config/google/anthos/kubectl-anthos-config.yaml
      1. Cluster: projects/1000000000000/locations/global/memberships/gke-gcp-cluster ServerIP: https://104.198.180.50:440
      2. Cluster: projects/1000000000000/locations/global/memberships/gke-baremetal-cluster ServerIP: https://104.198.180.51:440
      3. Cluster: projects/1000000000000/locations/global/memberships/gke-onprem-cluster ServerIP: https://104.198.180.52:440
      4. Cluster: projects/1000000000000/locations/global/memberships/gke-aws-cluster ServerIP: https://104.198.180.53:440
      
    • Menggunakan file konfigurasi autentikasi yang dihosting:

      gcloud anthos auth login \
       --cluster my-production-cluster \
       --login-config HTTPS://my-secure-server/kubectl-anthos-config.yaml \
       --login-config-cert my-cert.pem
      
    • Gunakan perintah untuk memilih opsi autentikasi. Anda dapat mengetahui hal ini lebih lanjut, termasuk contohnya, di bagian Pilih opsi autentikasi di bawah.

  2. Masukkan kredensial Anda di layar izin berbasis browser yang terbuka. Jika proses ini berhasil, file kubeconfig Anda kini akan berisi token ID yang akan digunakan perintah kubectl untuk melakukan autentikasi dengan server Kubernetes API di cluster Anda.

  3. Pastikan bahwa autentikasi berhasil dengan menjalankan salah satu perintah kubectl untuk mengakses resource di cluster Anda. Misalnya, jika Anda memiliki akses ke resource "node" pada cluster (akses ini dikonfigurasi oleh administrator cluster), Anda seharusnya dapat menjalankan perintah berikut dan melihat node cluster:

    kubectl get nodes --kubeconfig [CLUSTER_KUBECONFIG]

Untuk memecahkan masalah terkait akses pengguna, lihat Memecahkan masalah akses pengguna.

Pilih metode autentikasi

Jika administrator cluster telah mengonfigurasi beberapa penyedia identitas untuk cluster Anda (misalnya, penyedia OIDC dan server LDAP), dan belum mengonfigurasi penyedia default untuk cluster, Anda akan diminta login untuk memilih opsi autentikasi, seperti dalam contoh berikut ini:

gcloud anthos auth login

Please select your preferred authentication option for cluster [gke-onprem-ldap]
[1] LDAP Server
[2] OIDC
[3] cancel

Please enter your numeric choice:

1

Setting Preferred Authentication option to [LDAP Server]

Masukkan pilihan numerik, lalu lanjutkan login seperti yang dijelaskan dalam Autentikasi ke cluster di atas.

Opsi autentikasi yang Anda pilih akan disimpan hingga administrator cluster mengubah penyedia default untuk cluster ini, atau Anda mengubahnya sendiri. Untuk mengubah opsi autentikasi pilihan Anda, gunakan flag --set-preferred-authentication.

gcloud anthos auth login --set-preferred-authentication

Anda akan melihat hasil seperti contoh berikut, yang memungkinkan Anda memilih opsi autentikasi pilihan yang baru:

Your current authentication method is [1] AD Server. Please select your preferred authentication option for cluster [gke-onprem-ldap]
[1] LDAP Server
[2] OIDC
[3] cancel

Please enter your numeric choice:

2

Setting Preferred Authentication option to [OIDC]

Menggunakan SSH untuk mengautentikasi dari komputer jarak jauh

Misalkan Anda ingin melakukan SSH ke mesin jarak jauh dan melakukan autentikasi ke cluster dari mesin jarak jauh. Untuk melakukannya, file konfigurasi autentikasi Anda harus berada di komputer jarak jauh, dan Anda harus dapat menjangkau penyedia Open ID dari komputer lokal Anda.

Di komputer lokal, jalankan perintah berikut:

ssh [USER_NAME]@[REMOTE_MACHINE] -L [LOCAL_PORT]:localhost:[REMOTE_PORT]

dengan:

  • [USER_NAME] dan [REMOTE_MACHINE] adalah nilai standar yang digunakan untuk login dengan SSH.

  • [LOCAL_PORT] adalah port terbuka pilihan Anda di komputer lokal yang akan Anda gunakan untuk mengakses mesin jarak jauh.

  • [REMOTE_PORT] adalah port yang Anda konfigurasikan untuk URL alihan OIDC. Anda dapat menemukannya di kolom kubectlRedirectURI pada file konfigurasi autentikasi.

Di shell SSH, jalankan perintah berikut untuk memulai autentikasi:

gcloud anthos auth login --login-config [AUTH_CONFIG_FILE]

dengan [AUTH_CONFIG_FILE] adalah jalur file konfigurasi autentikasi Anda di komputer jarak jauh.

Di komputer lokal Anda, di browser, buka http://localhost:[LOCAL_PORT]/login dan selesaikan alur login OIDC.

Sekarang file kubeconfig di komputer jarak jauh Anda memiliki token yang Anda perlukan untuk mengakses cluster.

Di shell SSH, pastikan Anda memiliki akses ke cluster:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get nodes

Login ke cluster dari konsol Google Cloud (khusus penyedia OIDC)

Ikuti petunjuk di Bekerja dengan cluster dari Konsol Google Cloud.