Memecahkan masalah akses pengguna

Dokumen ini memberikan panduan pemecahan masalah untuk masalah akses pengguna di GKE Identity Service.

gcloud anthos create-login-config gagal mendapatkan clientconfig

Masalah ini terjadi dalam salah satu kasus berikut:

  • File {i>kubeconfig<i} yang diteruskan ke gcloud anthos create-login-config salah.
  • Resource kustom ClientConfig tidak ada di cluster (GKE Identity Service tidak diinstal di cluster).

Pesan error

  failed to get clientconfig default in namespace kube-public
  

Solusi

Untuk menyelesaikan masalah ini, lakukan tindakan berikut:

  1. Pastikan Anda memiliki file kubeconfig yang benar untuk cluster Anda.
  2. Untuk memastikan apakah resource kustom ClientConfig ada di cluster, jalankan perintah berikut:

    kubectl --kubeconfig KUBECONFIG  get clientconfig default -n kube-public
    

    Jika ClientConfig tidak ada di cluster, instal dan konfigurasi GKE Identity Service di cluster. Untuk mengetahui informasi selengkapnya tentang cluster opsi penyiapan, lihat Opsi penyiapan untuk cluster.

gcloud anthos create-login-config gagal karena nama cluster duplikat

Masalah ini terjadi jika Anda mencoba membuat konfigurasi login untuk cluster ke dalam file yang sudah berisi konfigurasi login untuk cluster ini.

Pesan error

  error merging with file FILENAME because FILENAME contains a
    cluster with the same name as the one read from KUBECONFIG.
  

Solusi

Untuk mengatasi masalah ini, gunakan tanda --output untuk menentukan file tujuan baru.

Jika Anda tidak memberikan --output, data konfigurasi login ini akan ditulis ke bernama kubectl-anthos-config.yaml dalam direktori saat ini.

gcloud anthos auth login gagal dengan proxyconnect tcp

Masalah ini terjadi saat ada error di https_proxy atau HTTPS_PROXY konfigurasi variabel lingkungan tertentu. Jika ada https:// yang ditentukan dalam variabel lingkungan yang berbeda, maka pustaka klien HTTP GoLang mungkin akan gagal jika {i>proxy<i} dikonfigurasi untuk menangani koneksi HTTPS menggunakan protokol lain seperti SOCK5.

Pesan error

  proxyconnect tcp: tls: first record does not look like a TLS handshake
  

Solusi

Untuk mengatasi masalah ini, ubah lingkungan https_proxy dan HTTPS_PROXY variabel untuk menghilangkan https:// prefix. Pada Windows, modifikasi sistem variabel lingkungan. Misalnya, ubah nilai https_proxy variabel lingkungan dari https://webproxy.example.com:8000 hingga webproxy.example.com:8000.

Akses cluster gagal saat menggunakan kubeconfig yang dibuat oleh gcloud anthos auth login

Masalah ini terjadi jika server Kubernetes API tidak dapat mengizinkan karena salah satu alasan berikut:

  • Terjadi error dalam konfigurasi yang digunakan untuk login dengan perintah gcloud anthos auth login.
  • Kebijakan RBAC yang diperlukan salah atau tidak ada untuk pengguna.

Pesan error

  Unauthorized
  

Solusi

Untuk menyelesaikan masalah ini, lakukan tindakan berikut:

  1. Verifikasi konfigurasi yang digunakan untuk login.

    Konfigurasi OIDC

    Bagian authentication.oidc dalam file konfigurasi cluster pengguna memiliki Kolom group dan username yang digunakan untuk menetapkan --oidc-group-claim dan --oidc-username-claim di server Kubernetes API. Kapan API server diberikan token identitas pengguna, ia akan meneruskan token tersebut ke GKE Identity Service, yang menampilkan group-claim dan username-claim kembali ke server API. Server API menggunakan respons untuk verifikasi bahwa grup atau pengguna yang sesuai memiliki izin yang benar.

    Verifikasi bahwa klaim ditetapkan untuk group dan user di authentication.oidc di file konfigurasi cluster terdapat di token ID.

  2. Verifikasi kebijakan RBAC yang diterapkan.

    Untuk mempelajari cara menyiapkan kebijakan RBAC yang benar untuk GKE Identity Service, lihat Menyiapkan kontrol akses berbasis peran (RBAC).

RBAC untuk grup yang tidak berfungsi bagi penyedia OIDC

  1. Verifikasi apakah token ID memiliki informasi grup

    Setelah Anda menjalankan perintah gcloud anthos auth login untuk memulai alur autentikasi OIDC, Token ID disimpan di file kubeconfig di kolom id-token. Gunakan jwt.io untuk mendekode token ID dan memverifikasi apakah token tersebut berisi informasi grup pengguna seperti yang diharapkan.

  2. Jika token ID tidak memiliki informasi grup pengguna, konfigurasi penyedia OIDC dengan benar untuk menampilkan informasi grup sesuai dengan dokumentasi penyedia OIDC Anda. Misalnya, jika Anda menggunakan konfigurasi OIDC penyedia Identitas Okta, ikuti dokumentasi penyedia Identitas Okta untuk mengonfigurasi grup dalam token ID.

  3. Jika token ID memiliki informasi grup, verifikasi apakah kunci informasi grup dalam token ID cocok dengan kolom groupsClaim yang dikonfigurasi di bagian oidc.

    Misalnya, jika token ID berisi informasi grup di kunci groups:

    "groups" : ["group1", "group2" ...]
    

    maka nilai kolom groupsClaim harus groups di bagian oidc.

    Setelah mengubah konfigurasi di bagian oidc, pastikan Anda menjalankan petunjuk yang tercantum di Menyiapkan akses pengguna dan Mengakses cluster lagi.

Memecahkan masalah penyedia identitas

Jika Anda mengalami masalah saat menggunakan OIDC atau LDAP dengan cluster GKE, ikuti langkah-langkah di bagian ini untuk memecahkan masalah dan bantuan GKE Identity Service tentukan apakah ada masalah dengan konfigurasi penyedia identitas Anda.

Mengaktifkan log debug GKE Identity Service

Untuk membantu memecahkan masalah terkait identitas di cluster Anda, aktifkan metode Log debug GKE Identity Service.

  1. Tambahkan kubectl patch pada cluster yang ada:

    kubectl patch deployment ais \
      -n anthos-identity-service --type=json \
      -p='[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--vmodule=cloud/identity/hybrid/charon/*=LOG_LEVEL"}]' \
      --kubeconfig KUBECONFIG
    

    Ganti kode berikut:

    • LOG_LEVEL: Untuk log yang paling panjang, tetapkan nilai ini ke tingkat 3 saat memecahkan masalah.

    • KUBECONFIG: Jalur ke kubeconfig cluster pengguna Anda .

Memeriksa log container GKE Identity Service

Tinjau konten log container GKE Identity Service untuk mengetahui error atau peringatan.

  1. Untuk meninjau log, gunakan kubectl logs:

    kubectl logs -f -l k8s-app=ais \
      -n anthos-identity-service \
      --kubeconfig KUBECONFIG
    

    Ganti KUBECONFIG dengan jalur ke cluster pengguna Anda {i>kubeconfig<i}.

Memulai ulang pod GKE Identity Service

Jika log container menampilkan masalah, mulai ulang pod GKE Identity Service.

  1. Untuk memulai ulang pod GKE Identity Service, hapus pod yang ada. Fitur baru pod akan otomatis dibuat sebagai pengganti.

    kubectl delete pod -l k8s-app=ais \
      -n anthos-identity-service \
      --kubeconfig KUBECONFIG
    

    Ganti KUBECONFIG dengan jalur ke cluster pengguna Anda {i>kubeconfig<i}.

Memecahkan masalah konektivitas ke penyedia identitas

Jika pod GKE Identity Service terlihat berjalan dengan benar, uji konektivitas ke penyedia identitas jarak jauh.

  1. Mulai pod Crowdbox dalam namespace yang sama dengan GKE Identity Service pod:

    kubectl run curl --image=radial/busyboxplus:curl \
      -n anthos-identity-service -- sleep 3000 \
      --kubeconfig KUBECONFIG
    

    Ganti KUBECONFIG dengan jalur ke cluster pengguna Anda {i>kubeconfig<i}.

  2. Untuk memeriksa apakah Anda dapat mengambil URL penemuan, jalankan ke dalam pod {i>sibuk<i} dan jalankan perintah curl:

    kubectl exec pod/curl -n anthos-identity-service -- \
      curl ISSUER_URL \
      --kubeconfig KUBECONFIG
    

    Ganti kode berikut:

    • ISSUER_URL: URL penerbit penyedia identitas Anda.
    • KUBECONFIG: Jalur ke kubeconfig cluster pengguna Anda .

    Respons yang berhasil adalah hasil JSON dengan penyedia identitas mendetail endpoint.

  3. Jika perintah sebelumnya tidak menampilkan hasil yang diharapkan, hubungi administrator penyedia identitas untuk mendapatkan bantuan tambahan.

Login LDAP tidak berfungsi untuk cluster admin Google Distributed Cloud

LDAP saat ini hanya didukung untuk cluster pengguna Google Distributed Cloud.