Hubungkan ke cluster yang terpasang dengan EKS

Dokumen ini menjelaskan tiga metode untuk terhubung ke cluster terpasang EKS:

Tiga metode untuk terhubung ke cluster terdaftar ini diaktifkan oleh layanan Google yang disebut gateway koneksi. Untuk mengetahui detail tentang gateway Connect, lihat Menghubungkan ke cluster terdaftar dengan gateway Connect.

Halaman ini ditujukan bagi administrator dan Operator IT yang ingin menyiapkan, memantau, dan mengelola infrastruktur cloud. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang kami referensikan dalam konten, lihat Peran dan tugas pengguna umum GKE Enterprise. Google Cloud

Sebelum memulai

Sebelum menjalankan metode apa pun, pastikan Anda telah melampirkan cluster. Untuk mengetahui detailnya, lihat Melampirkan cluster EKS Anda.

Sebelum melanjutkan dengan metode #2 atau metode #3, Anda harus memenuhi prasyarat tambahan. Untuk mengetahui detailnya, lihat bagian berikut.

Sebelum Anda memulai metode #2

Untuk menggunakan metode #2 untuk menghubungkan ke cluster terlampir, pastikan Anda memiliki prasyarat berikut:

  • Google Cloud CLI versi terbaru. Untuk mengetahui informasi tentang cara memperbarui gcloud CLI, lihat gcloud components update.
  • Versi cluster terlampir 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 atau yang lebih baru.

Sebelum Anda memulai metode #3

Untuk menggunakan metode #3 dalam menghubungkan ke cluster terlampir, pastikan Anda memiliki prasyarat berikut:

  1. Pastikan Anda memiliki Google Cloud CLI versi terbaru. Untuk mengetahui informasi tentang cara mengupdate gcloud CLI, lihat gcloud components update.

  2. Pastikan Anda menggunakan cluster terlampir versi 1.27.0-gke.5, 1.28.0-gke.2 atau yang lebih baru.

  3. Konfigurasi workforce identity federation (sehingga pengguna atau grup eksternal dapat menggunakan GKE Attached Clusters API):

  4. Opsional: Tetapkan peran Identity and Access Management (IAM) yang sesuai untuk pengguna atau grup eksternal Anda. Langkah ini hanya diperlukan jika Anda ingin memberi pengguna atau grup kemampuan untuk membuat atau mengupdate cluster; langkah ini tidak diperlukan hanya untuk mengakses cluster.

    Perhatikan bahwa peran adalah kumpulan izin. Saat menetapkan peran ke entitas (pengguna, grup, atau akun layanan), Anda memberikan semua izin yang dimiliki oleh peran tersebut kepada entitas tersebut.

    Pengguna

    Untuk pengguna perorangan, Anda harus menetapkan peran gkemulticloud.admin:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE"
    

    Ganti kode berikut:

    • PROJECT_ID: ID Google Cloud project Anda.
    • WORKFORCE_POOL_ID: ID yang secara unik mengidentifikasi workforce identity pool Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti panduan yang direkomendasikan yang diberikan dalam dokumentasi IAM di bagian Parameter kueri.
    • SUBJECT_VALUE: ID yang mengidentifikasi pengguna eksternal secara unik. Misalnya, ID dapat berupa alamat email seperti alex@cymbalgroup.com.

    Grup

    Untuk grup, Anda perlu menetapkan peran gkemulticloud.admin:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    Ganti kode berikut:

    • PROJECT_ID: ID Google Cloud project Anda.
    • WORKFORCE_POOL_ID: ID yang secara unik mengidentifikasi workforce identity pool Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti pedoman yang direkomendasikan yang disediakan dalam dokumentasi IAM di bagian Parameter kueri.
    • GROUP_ID: ID yang mengidentifikasi grup eksternal secara unik.

    Untuk mengetahui informasi selengkapnya tentang peran dan izin API yang diperlukan untuk cluster terlampir GKE, lihat Peran dan izin API.

Metode #1: hubungkan ke cluster terlampir sebagai pengguna Google

Untuk terhubung ke cluster terlampir sebagai pengguna Google, ikuti langkah-langkah berikut:

  1. Aktifkan API connectgateway dan cloudresourcemanager dengan perintah berikut:

     gcloud services enable --project=PROJECT_ID \
         connectgateway.googleapis.com \
         cloudresourcemanager.googleapis.com
    

    Ganti PROJECT_ID dengan ID project Google Cloud Anda.

  2. Siapkan dan terapkan aturan RBAC secara otomatis atau manual:

    • Metode otomatis: Jika, saat Anda melampirkan cluster, Anda menentukan pengguna Google di kolom --admin-users perintah gcloud container attached clusters register, pengguna ini akan otomatis diberi hak istimewa administrator di cluster. Oleh karena itu, Anda dapat melewati langkah ini.

    • Metode manual: Siapkan aturan RBAC secara manual untuk setiap pengguna Google dengan membuat manifes YAML Kubernetes. Untuk mengetahui detailnya, lihat Menggunakan Otorisasi RBAC.

  3. Dapatkan file konfigurasi kubeconfig Kubernetes dengan perintah berikut:

    gcloud container fleet memberships get-credentials CLUSTER_NAME
    

    Ganti CLUSTER_NAME dengan nama cluster yang kredensial koneksinya Anda inginkan.

Setelah melakukan langkah-langkah ini, Anda dapat terhubung ke cluster terlampir sebagai pengguna Google.

Metode #2: hubungkan ke cluster terlampir Anda dengan grup Google

Metode ini memungkinkan Anda terhubung ke cluster terlampir sebagai anggota grup Google. Dengan kata lain, Anda memberikan akses grup Google ke cluster dan semua pengguna yang tergabung dalam grup Google tersebut memiliki akses ke cluster.

Menggunakan Google Grup untuk memberikan akses cluster lebih efisien daripada membuat otorisasi terpisah untuk setiap pengguna. Misalnya, Anda ingin menambahkan 50 pengguna ke grup Administrator cluster, 75 pengguna ke grup Editor, dan 100 pengguna ke grup Pembaca. Metode #1, yang dijelaskan dalam dokumen ini, mengharuskan Anda membuat aturan RBAC dalam file manifes Kubernetes untuk 225 pengguna. Namun, Metode #2 menghemat waktu Anda karena Anda hanya perlu membuat aturan RBAC untuk tiga grup Google.

Untuk memberikan otorisasi pada grup Google agar dapat terhubung ke cluster terlampir, ikuti langkah-langkah berikut:

  1. Aktifkan API connectgateway dan cloudresourcemanager dengan perintah berikut:

      gcloud services enable --project=PROJECT_ID \
          connectgateway.googleapis.com \
          cloudresourcemanager.googleapis.com
    

    Ganti PROJECT_ID dengan ID Google Cloud project Anda.

  2. Buat grup bernama gke-security-groups sebagai grup di domain project Anda jika belum ada.

  3. Buat satu atau beberapa sub-grup dalam grup gke-security-groups untuk autentikasi cluster.

  4. Tambahkan pengguna ke sub-grup yang baru dibuat.

  5. Memberikan peran IAM ke Grup Google:

    1. Pilih peran yang sesuai untuk grup. Peran ini menentukan cara grup berinteraksi dengan gateway koneksi. Peran dapat berupa salah satu dari berikut: roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor, roles/gkehub.gatewayReader. (Perhatikan bahwa Anda tidak memberikan izin atas cluster terlampir di sini - langkah tersebut akan dilakukan nanti. Di sini, Anda hanya menentukan cara pengguna grup dapat memanipulasi gateway koneksi).

    2. Jalankan perintah berikut untuk memberikan peran kepada grup:

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=group:GROUP_NAME@DOMAIN \
        --role=GATEWAY_ROLE
      

      Ganti kode berikut:

      • PROJECT_ID: project ID Google Anda
      • GROUP_NAME: nama grup yang akan diberi akses
      • DOMAIN: domain Google Workspace Anda
      • GATEWAY_ROLE: peran yang dipilih. Misalnya, roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor, atau roles/gkehub.gatewayReader.
  6. Dalam manifes Kubernetes, tentukan jenis izin yang dimiliki setiap grup Google di cluster. Misalnya, manifes berikut memberikan peran administrator cluster kepada Grup Google cluster-admin-team:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: gateway-cluster-admin-group
    subjects:
    - kind: Group
      name: cluster-admin-team@example.com
    roleRef:
      kind: ClusterRole
      name: cluster-admin
      apiGroup: rbac.authorization.k8s.io
    
  7. Simpan manifes ke file dan terapkan ke cluster dengan menjalankan perintah berikut:

    kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
    

    Ganti kode berikut:

    • KUBECONFIG_PATH: jalur ke file kubeconfig Anda.
    • FILENAME: nama file manifes yang Anda buat.

Setelah Anda melakukan langkah-langkah ini, pengguna yang tergabung dalam grup Google tertentu dapat terhubung ke cluster yang terlampir. Dalam contoh yang diberikan, pengguna yang tergabung dalam Grup Google cluster-admin-team dapat terhubung ke cluster sebagai administrator.

Metode #3: memberikan akses ke identitas eksternal saat melampirkan atau mengupdate cluster

Metode #3 memberikan akses ke identitas eksternal saat Anda melampirkan atau mengupdate cluster.

Untuk melampirkan cluster EKS, ikuti langkah-langkah di Melampirkan cluster EKS. Untuk mengupdate cluster EKS, ikuti langkah-langkah di Mengupdate cluster EKS.

Saat menjalankan perintah gcloud CLI untuk mendaftarkan atau memperbarui cluster, tentukan parameter admin-users dan/atau admin-groups sebagai berikut:

gcloud container attached clusters [register|update] CLUSTER_NAME \
    --admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
    --admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster Anda.
  • WORKFORCE_POOL_ID: ID yang secara unik mengidentifikasi workforce identity pool Anda di Google Cloud. Saat memformat ID, pastikan Anda mengikuti pedoman yang direkomendasikan yang disediakan dalam dokumentasi IAM di bagian Parameter kueri.
  • SUBJECT_VALUE: ID yang mengidentifikasi pengguna eksternal secara unik. Misalnya, ID dapat berupa alamat email seperti alex@cymbalgroup.com.
  • GROUP_ID: ID yang mengidentifikasi grup eksternal secara unik.

Langkah berikutnya

Untuk mengelola cluster dari konsol Google Cloud dengan Cloud Identity Anda, lihat Login menggunakan identitas Google Cloud Anda.