Mengelola pengguna yang terhubung ke Distributed Cloud

Halaman ini menjelaskan cara mengelola pengguna di Distributed Cloud connected.

Saat Anda membuat cluster Distributed Cloud connected, hanya akun pengguna yang Anda gunakan untuk membuat cluster yang diberi akses ke cluster tersebut. Untuk memberikan akses ke cluster kepada lebih banyak pengguna, Anda dapat melakukan salah satu hal berikut:

Memberikan izin yang diperlukan menggunakan RBAC Kubernetes

Bagian ini menjelaskan cara memberikan izin yang diperlukan oleh kebutuhan bisnis pengguna ke akun pengguna menggunakan Kontrol Akses Berbasis Peran (RBAC) Kubernetes. Izin ini dienkapsulasi oleh beberapa peran. Setelah memberikan peran yang sesuai ke akun pengguna, Anda dapat menambahkan akun tersebut ke cluster Distributed Cloud connected target.

Distributed Cloud connected tidak mendukung grup Identity and Access Management atau penyedia identitas pihak ketiga untuk digunakan dengan RBAC Kubernetes di cluster Distributed Cloud connected.

Anda harus menggunakan resource Kubernetes berikut untuk memberikan peran kepada pengguna:

  • ClusterRole: memungkinkan Anda menerapkan sekumpulan izin ke namespace apa pun di cluster; juga memberikan akses ke resource di seluruh cluster.
  • ClusterRoleBinding: mengikat resource ClusterRole ke akun pengguna.
  • Role: memungkinkan Anda menerapkan sekumpulan izin ke namespace tertentu.
  • RoleBinding: mengikat resource Role atau ClusterRole ke akun pengguna di namespace tertentu.

Memberikan izin untuk administrator cluster

Saat Anda membuat cluster Distributed Cloud connected, akun pengguna yang Anda gunakan untuk melakukannya secara otomatis menjadi administrator cluster. Untuk memberikan izin administrator cluster kepada pengguna tambahan, ikat akun pengguna target ke peran cluster-admin dengan membuat resource ClusterRoleBinding dan menerapkannya ke cluster:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: BINDING_NAME
subjects:
  kind: User
  name: ACCOUNT_NAME
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

Ganti kode berikut:

  • BINDING_NAME: nama yang secara unik mengidentifikasi binding peran ini.
  • ACCOUNT_NAME: nama akun pengguna target.

Anda juga dapat menggunakan perintah kubectl berikut:

kubectl create clusterrolebinding "BINDING_NAME" \
  --clusterrole cluster-admin --user "ACCOUNT_NAME"

Ganti kode berikut:

  • BINDING_NAME: nama yang secara unik mengidentifikasi binding peran ini.
  • ACCOUNT_NAME: nama akun pengguna target.

Memberikan izin untuk developer aplikasi

Untuk memberikan izin yang diperlukan kepada developer aplikasi untuk men-deploy workload di cluster target, lakukan hal berikut:

  1. Buat resource Role yang memberikan izin untuk membuat dan mengelola Pod, Layanan, dan deployment di namespace target, lalu terapkan ke cluster:

    apiVersion: rbac.authorization.k8s.io/v1
     kind: Role
     metadata:
       namespace: NAMESPACE
       name: ROLE_NAME
     rules:
       apiGroups: ["apps", ""]
       resources: ["pods", "deployments", "services"]
       verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
    

    Ganti kode berikut:

    • NAMESPACE: nama namespace target.
    • ROLE_NAME: nama yang secara unik mengidentifikasi peran ini.
  2. Buat resource RoleBinding yang mengikat akun pengguna target ke peran yang Anda buat pada langkah sebelumnya, lalu terapkan ke cluster:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
     namespace: NAMESPACE
     name: BINDING_NAME
    subjects:
     kind: User
     name: ACCOUNT_NAME
     kind: User
     name: ACCOUNT_NAME
    roleRef:
     kind: Role
     name: ROLE_NAME
     apiGroup: rbac.authorization.k8s.io
    

    Ganti kode berikut:

    • BINDING_NAME: nama yang secara unik mengidentifikasi binding peran ini.
    • NAMESPACE: nama namespace target.
    • ACCOUNT_NAME: nama akun pengguna target.
    • ROLE_NAME: nama peran target.

Memberikan izin untuk Agen Layanan Cloud Build

Untuk memberikan izin yang diperlukan kepada Agen Layanan Cloud Build untuk men-deploy workload di cluster target, lakukan hal berikut:

  1. Buat resource Role yang memberikan izin untuk membuat dan mengelola Pod, Layanan, dan deployment di namespace target, lalu terapkan ke cluster:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: Role
    metadata:
     namespace: NAMESPACE
     name: ROLE_NAME
    rules:
     apiGroups: ["apps", ""]
     resources: ["pods", "deployments", "services"]
     verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
    

    Ganti kode berikut:

    • NAMESPACE: nama namespace target.
    • ROLE_NAME: nama yang secara unik mengidentifikasi peran ini.
  2. Buat resource RoleBinding yang mengikat akun Agen Layanan Cloud Build target ke peran yang Anda buat pada langkah sebelumnya, lalu terapkan ke cluster:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
     namespace: NAMESPACE
     name: BINDING_NAME
    subjects:
     kind: User
     name: PROJECT_ID@cloudbuild.gserviceaccount.com
    roleRef:
     kind: Role
     name: ROLE_NAME
     apiGroup: rbac.authorization.k8s.io
    

    Ganti kode berikut:

    • BINDING_NAME: nama yang secara unik mengidentifikasi binding peran ini.
    • NAMESPACE: nama namespace target.
    • PROJECT_ID: ID project target Google Cloud .
    • ROLE_NAME: nama peran target.

Jika Anda perlu memberikan izin kepada Agen Layanan Cloud Build untuk men-deploy dan mengelola workload di semua namespace pada cluster target, buat resource ClusterRole dan ClusterRoleBinding, bukan resource Role dan RoleBinding.

Memberikan izin untuk melihat informasi cluster

Untuk memberikan izin yang diperlukan untuk melihat informasi mendetail tentang cluster di Google Cloud konsol, lakukan hal berikut:

  1. Buat resource ClusterRole yang memungkinkan Connect Agent meniru pengguna yang perlu melihat informasi cluster di Google Cloud konsol:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
     name: ROLE_NAME
    rules:
     apiGroups: [""]
     resources: ["users"]
     verbs: ["impersonate"]
     resourceNames: ["ACCOUNT_NAME"]
    

    Ganti kode berikut:

    • ROLE_NAME: nama peran target.
    • ACCOUNT_NAME: nama akun pengguna target.
  2. Buat resource ClusterRoleBinding yang mengikat akun Agen Layanan Connect Agent ke peran yang Anda buat pada langkah sebelumnya, lalu terapkan ke cluster:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
     name: BINDING_NAME
    subjects:
     kind: ServiceAccount
     name: ACCOUNT_NAME
    roleRef:
     kind: ClusterRole
     name: ROLE_NAME
     apiGroup: rbac.authorization.k8s.io
    

    Ganti kode berikut:

    • BINDING_NAME: nama yang secara unik mengidentifikasi binding peran ini.
    • ACCOUNT_NAME: nama akun pengguna layanan target.
    • ROLE_NAME: nama peran target.

Anda harus membuat pasangan resource ClusterRole dan ClusterRoleBinding terpisah untuk setiap pengguna yang terpengaruh.

Anda juga dapat menggunakan alat command-line kubectl untuk memberikan izin yang diperlukan untuk melihat informasi cluster sebagai berikut:

  1. Buat resource ClusterRole yang memungkinkan Connect Agent meniru pengguna yang perlu melihat informasi cluster di Google Cloud konsol:

    kubectl create clusterrole "ROLE_NAME" --verb impersonate \
     --resource users --resource-name "ACCOUNT_NAME"
    

    Ganti kode berikut:

    • ROLE_NAME: nama peran target.
    • ACCOUNT_NAME: nama akun pengguna layanan target.
  2. Buat resource ClusterRoleBinding yang mengikat akun Agen Layanan Connect Agent ke peran yang Anda buat pada langkah sebelumnya, lalu terapkan ke cluster:

    kubectl create clusterrolebinding "BINDING_NAME" --clusterrole \
     "ROLE_NAME" --serviceaccount "ACCOUNT_NAME"
    

    Ganti kode berikut:

    • BINDING_NAME: nama yang secara unik mengidentifikasi binding peran ini.
    • ACCOUNT_NAME: nama akun pengguna layanan target.
    • ROLE_NAME: nama peran target.

Menggunakan connect gateway untuk mengakses cluster Distributed Cloud connected

Anda memiliki opsi untuk menggunakan connect gateway guna mengakses cluster Distributed Cloud connected. Pengguna connect gateway memerlukan satu atau beberapa peran berikut, bergantung pada persyaratan bisnisnya:

  • Admin Connect Gateway (roles/gkehub.gatewayAdmin): memberikan akses ke connect gateway API. Peran ini memungkinkan penggunaan alat command-line kubectl untuk mengelola cluster.
  • Editor Connect Gateway (roles/gkehub.gatewayEditor): memberikan akses baca dan tulis ke cluster.
  • Pembaca Connect Gateway (roles/gkehub.gatewayReader): memberikan akses hanya baca ke cluster.
  • Pelihat GKE Hub (roles/gkehub.viewer): memberikan kemampuan untuk mengambil file kubeconfig dari cluster.

Untuk mengetahui informasi selengkapnya tentang penggunaan connect gateway, lihat hal berikut: