Login menggunakan file konfigurasi

GKE Identity Service memungkinkan Anda login ke cluster yang dikonfigurasi dari command line menggunakan nama pengguna dan sandi dari penyedia identitas pihak ketiga. Ikuti petunjuk di halaman ini jika administrator cluster Anda telah memilih untuk membagikan file konfigurasi login yang dapat Anda gunakan saat melakukan autentikasi dengan gcloud CLI. Untuk mengetahui informasi selengkapnya tentang cara mengakses cluster, lihat Memilih metode akses untuk login ke cluster.

Alur kerja login

Berikut adalah alur kerja yang digunakan GKE Identity Service untuk memungkinkan Anda login ke cluster yang dikonfigurasi menggunakan file konfigurasi login. Alur yang tepat bergantung pada jenis penyedia identitas yang digunakan.

Alur kerja OIDC

Dengan penyedia OIDC, administrator cluster mendaftarkan GKE Identity Service sebagai aplikasi klien untuk penyedia identitas dan menyiapkan setiap cluster. Mereka dapat menambahkan kontrol akses terperinci menggunakan kontrol akses berbasis peran (RBAC) Kubernetes, jika diperlukan.

Anda dapat login ke cluster dengan cara berikut:

Akses command line

  1. Lakukan autentikasi: Jalankan perintah gcloud anthos auth login dan masukkan kredensial login OIDC Anda. Tindakan ini mengambil token identitas dari penyedia.
  2. Perbarui Kubeconfig: Token yang diambil akan otomatis ditambahkan ke file kubeconfig Anda.
  3. Akses cluster: Gunakan kubectl untuk berinteraksi dengan cluster Anda. Server Kubernetes API menggunakan GKE Identity Service untuk memvalidasi token Anda dan mengizinkan akses.

Akses konsolGoogle Cloud

  1. Mulai login: Saat Anda login dari konsol Google Cloud , Anda akan dialihkan ke halaman login penyedia identitas.
  2. Lakukan autentikasi: Masukkan kredensial Anda dan berhasil login.
  3. Mengakses cluster: Kembali ke konsol Google Cloud untuk melihat dan mengelola resource cluster Anda.

Alur kerja LDAP

Dengan penyedia LDAP, administrator cluster menyiapkan GKE Identity Service untuk setiap cluster, yang mencakup kredensial klien LDAP. Administrator cluster dapat menambahkan kontrol akses terperinci menggunakan kontrol akses berbasis peran (RBAC) Kubernetes, jika diperlukan.

Akses command line

  1. Mulai login: Jalankan perintah gcloud anthos auth login dan masukkan kredensial login LDAP Anda.
  2. Pembuatan token: GKE Identity Service mengkueri server LDAP, mengambil atribut pengguna Anda, dan mengemas atribut ini ke dalam token STS (Security Token Service) yang berlaku singkat. Kredensial LDAP Anda tidak disimpan secara lokal.
  3. Pembaruan kubeconfig: Token STS otomatis ditambahkan ke file kubeconfig Anda.
  4. Akses cluster: Gunakan kubectl untuk berinteraksi dengan cluster Anda. Server Kubernetes API menggunakan GKE Identity Service untuk memvalidasi token Anda dan mengizinkan akses. Secara default, masa berlaku token akan berakhir setelah satu jam, sehingga pengguna harus login lagi.

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

Mendapatkan file konfigurasi

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

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

Lakukan 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]

    Ganti kode berikut:

    • [CLUSTER_NAME] (opsional) menentukan nama cluster Anda. Jika tanda ini tidak ada, 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 atau URL kustom ke tempat file konfigurasi autentikasi Anda disimpan atau dihosting. Anda dapat menghapus 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 Anda dihosting secara aman, Anda dapat menggunakan koneksi HTTPS untuk mengakses file tersebut. Contoh: --login-config-cert my-cert.pem

    • [CLUSTER_KUBECONFIG] (opsional) menentukan jalur kustom ke 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 tidak ada, token autentikasi akan ditambahkan ke file kubeconfig di lokasi default. Contoh: --kubeconfig /path/to/custom.kubeconfig

    Contoh:

    • Lakukan autentikasi ke cluster tertentu:

      gcloud anthos auth login --cluster my-production-cluster
      
    • Gunakan perintah untuk memilih cluster 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. Untuk mengetahui informasi selengkapnya, lihat Memilih metode autentikasi.

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

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

    kubectl get nodes --kubeconfig [CLUSTER_KUBECONFIG]

Untuk informasi pemecahan masalah terkait akses pengguna, lihat Memecahkan masalah akses pengguna.

Memilih metode autentikasi

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

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 untuk login seperti yang dijelaskan di bagian Mengautentikasi ke cluster di atas.

Opsi autentikasi yang Anda pilih akan disimpan hingga administrator cluster Anda 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 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

Untuk terhubung ke mesin jarak jauh dan mengautentikasi ke cluster dengan SSH, file konfigurasi autentikasi Anda harus ada di mesin jarak jauh, dan Anda harus dapat menjangkau penyedia OpenID dari mesin lokal Anda.

Di komputer lokal, jalankan perintah berikut:

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

Ganti kode berikut:

  • [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 komputer jarak jauh.

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

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 mesin 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