Setiap subjek—pengguna atau grup—mengikuti proses dua langkah untuk mendapatkan akses ke server Management API dan cluster Kubernetes:
Akses server Management API: Berikan izin kepada subjek di server Management API menggunakan
ClusterRoleBindingatauRoleBindingkeClusterRoleyang telah ditentukan.Akses cluster Kubernetes: Berikan akses khusus namespace atau akses di seluruh cluster.
Untuk akses khusus namespace: Untuk memberikan akses ke namespace project tertentu dalam cluster, buat
ProjectRoledanProjectRoleBindingyang sesuai. Proses ini menyebarkanRoledanRoleBindingKubernetes keNamespaceKubernetes di cluster, yang sesuai denganProjectyang terkait denganProjectRoledanProjectRoleBinding.Untuk akses di seluruh cluster: Untuk memberikan akses ke semua namespace dalam cluster, buat
OrganizationRoledanOrganizationRoleBindingyang sesuai. Proses ini menyebarkan KubernetesClusterRoledanClusterRoleBindingke seluruh cluster Kubernetes.
Halaman ini ditujukan untuk audiens dalam grup administrator platform yang mengelola izin dalam organisasi mereka.
Admin IAM Organisasi dan Admin IAM Project dapat membuat lebih banyak peran project dan binding peran project untuk memberikan izin tambahan khusus project. Namun, Admin IAM Organisasi dapat membuat peran project dan binding peran project untuk project apa pun. Di sisi lain, Admin IAM Project hanya dapat membuat peran project dan binding peran project untuk project yang memiliki izin akses.
Sebelum memulai
Sebelum mengelola binding peran atau mencabut akses, Anda harus meminta izin yang diperlukan dan menyiapkan lingkungan. Peran spesifik yang diperlukan bergantung pada apakah Anda mengelola binding peran atau mencabut akses pengguna.
Meminta peran IAM
Hubungi Admin IAM Organisasi Anda untuk meminta peran berdasarkan tugas yang perlu Anda lakukan:
- Admin IAM Organisasi (
organization-iam-admin): membuat, memperbarui, dan menghapus binding peran di tingkat organisasi dan project. - Admin Sesi Org (
org-session-admin): mencabut sesi aktif dan akses pengguna dalam zona tertentu.
Menyiapkan lingkungan
Untuk menggunakan alat command line guna mengelola binding peran atau mencabut akses, selesaikan penyiapan berikut.
- Unduh dan instal gdcloud CLI, jika Anda belum melakukannya.
- Untuk menggunakan API dengan
kubectl, penyiapan tambahan diperlukan:
Menyiapkan binding peran
Anda dapat menyiapkan binding peran yang memberi anggota tim akses ke resource di tingkat organisasi atau project.
Untuk mendapatkan izin yang diperlukan untuk menyiapkan binding peran, minta Admin IAM Organisasi Anda untuk memberi Anda peran Admin IAM Organisasi.
Untuk menetapkan peran kepada anggota yang diberi otorisasi, ikuti langkah-langkah berikut:
Konsol
- Login ke konsol GDC.
- Klik Select project untuk memilih organisasi atau project.
- Untuk menyiapkan binding peran untuk organisasi, pilih organisasi.
- Untuk menyiapkan binding peran untuk project, pilih project.
- Di menu navigasi, klik Identity and Access > Access.
- Klik Add member.
- Di daftar Identity provider, pilih penyedia identitas.
- Pilih apakah Anda ingin menambahkan pengguna atau grup satu per satu.
- Di kolom Username or group alias, masukkan nama pengguna, alamat email, atau alias.
- Di daftar Role, pilih peran yang ingin Anda tetapkan kepada pengguna atau grup, seperti Organization Viewer di tingkat organisasi atau Project Creator di tingkat project.
- Klik Add.
Anggota akan muncul dalam daftar Authorized member.
gdcloud
Pastikan Anda telah menginstal gdcloud CLI.
Login menggunakan perintah
gdcloud auth loginuntuk melakukan autentikasi dengan penyedia identitas Anda. Untuk mengetahui informasi selengkapnya, lihat autentikasi gdcloud CLI.Siapkan binding peran.
Siapkan binding peran untuk organisasi:
gdcloud organizations add-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLEGanti variabel berikut:
USER_ACCOUNT: akun pengguna yang ingin Anda beri peran. Flag ini menerima alamat email pengguna dengan awalan penyedia identitas (user:idpprefix-user@example.com) atau nama akun layanan dengan project akun layanan (serviceAccount:projectName:serviceAccountName).ROLE_TYPE:ClusterRole,Role, atauOrganizationRoleyang binding perannya Anda siapkan.ROLE: nama peran khusus atau yang telah ditentukan yang ingin Anda tetapkan kepada pengguna (sepertiproject-creator).
Siapkan binding peran untuk project:
gdcloud projects add-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLEGanti variabel berikut:
PROJECT: nama project yang binding perannya Anda siapkan.USER_ACCOUNT: akun pengguna yang ingin Anda beri peran. Flag ini menerima alamat email pengguna dengan awalan penyedia identitas (user:idpprefix-user@example.com) atau nama akun layanan dengan project akun layanan (serviceAccount:projectName:serviceAccountName).ROLE_TYPE:RoleatauProjectRoleyang binding perannya Anda siapkan.ROLE: nama peran khusus atau yang telah ditentukan yang ingin Anda tetapkan kepada pengguna (sepertiproject-viewer).
API
Ekspor kredensial pengguna yang Anda gunakan:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIGEkspor akun pengguna yang ingin Anda tetapkan perannya, termasuk awalan penyedia identitas (seperti
idpprefix-paul@example.com):export USERNAME=IDP_PREFIX-USER_EMAILEkspor nama peran yang dibutuhkan pengguna, seperti
project-creator. Lihat Definisi peran untuk mengetahui detail tentang peran tersebut.export ROLE_NAME=ROLE_NAMETetapkan pengguna ke
ClusterRole,Role,ProjectRole, atauOrganizationRole:Tetapkan pengguna ke
ClusterRole:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ clusterrolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME}Jika
ClusterRolememerlukanRoleBinding, bukanClusterRoleBinding, lihat Definisi peran untuk mengetahui jenis binding yang diperlukan peran tersebut dan buat RoleBinding di namespacegpc-systemsebagai gantinya:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME} --namespace=gpc-systemTetapkan pengguna ke
Role:Ekspor namespace tempat binding harus dibuat:
export BINDING_NAMESPACE=BINDING_NAMESPACEJalankan perintah berikut untuk membuat
RoleBinding:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --role=${ROLE_NAME} --user=${USERNAME} --namespace=${BINDING_NAMESPACE}
Tetapkan pengguna ke
ProjectRole:Buat file
projectrolebinding.yaml:apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectRoleBinding metadata: name: BINDING_NAME namespace: PROJECT_NAME spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: ProjectRole name: ROLE_NAME subjects: - apiGroup: rbac.authorization.k8s.io kind: USER_KIND name: USERNAMEGanti kode berikut:
BINDING_NAME: Nama untuk binding yang dapat disesuaikan oleh pengguna (sepertiuser-project-creator-binding).PROJECT_NAME: Nama project yang perannya Anda berikan.ROLE_NAME: NamaProjectRoleyang Anda tetapkan kepada pengguna.USER_KIND: Jenis pengguna, yang dapat berupaUser,Group, atauServiceAccount.USERNAME: Alamat email pengguna yang perannya Anda tetapkan, termasuk awalan penyedia identitas (sepertiidpprefix-paul@example.com). Alamat ini harus cocok denganUSERNAMEyang diekspor.
Terapkan file
projectrolebinding.yaml:kubectl create -f projectrolebinding.yaml
Tetapkan pengguna ke
OrganizationRole:Buat file
organizationrolebinding.yaml:apiVersion: resourcemanager.gdc.goog/v1 kind: OrganizationRoleBinding metadata: name: BINDING_NAME namespace: gpc-system spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: OrganizationRole name: ROLE_NAME subjects: - apiGroup: rbac.authorization.k8s.io kind: USER_KIND name: USERNAMEGanti kode berikut:
BINDING_NAME: Nama untuk binding yang dapat disesuaikan oleh pengguna (sepertiuser-organization-creator-binding).ROLE_NAME: NamaOrganizationRoleyang Anda tetapkan kepada pengguna.USER_KIND: Jenis pengguna, yang dapat berupaUser,Group, atauServiceAccount.USERNAME: Alamat email pengguna yang perannya Anda tetapkan, termasuk awalan penyedia identitas (sepertiidpprefix-paul@example.com). Alamat ini harus cocok denganUSERNAMEyang diekspor.
Terapkan file YAML
organizationrolebinding.yaml:kubectl create -f organizationrolebinding.yaml
Menghapus binding peran
Jika akses tidak lagi diperlukan, hapus anggota dan peran, izin, serta akses terkait.
Untuk menghapus anggota, ikuti langkah-langkah berikut:
Konsol
- Login ke konsol GDC.
- Di menu navigasi, klik Identity and Access > Access.
- Dalam daftar Authorized members, pilih anggota.
- Klik Remove member.
- Saat diminta, klik Remove member untuk mengonfirmasi.
gdcloud
Pastikan Anda telah menginstal gdcloud CLI.
Login menggunakan perintah
gdcloud auth loginuntuk melakukan autentikasi dengan penyedia identitas Anda. Untuk mengetahui informasi selengkapnya, lihat autentikasi gdcloud CLI.Hapus binding peran.
Hapus binding peran untuk organisasi:
gdcloud organizations remove-iam-policy-binding root \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLEGanti variabel berikut:
USER_ACCOUNT: akun pengguna yang perannya ingin Anda hapus. Flag ini menerima alamat email pengguna dengan awalan penyedia identitas (user:idpprefix-user@example.com) atau nama akun layanan dengan project akun layanan (serviceAccount:projectName:serviceAccountName).ROLE_TYPE:ClusterRole,Role, atauOrganizationRoleyang binding perannya Anda hapus.ROLE: nama peran khusus atau yang telah ditentukan yang ingin Anda hapus dari akun pengguna (sepertiproject-creator).
Hapus binding peran untuk project:
gdcloud projects remove-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLEGanti variabel berikut:
PROJECT: nama project yang binding perannya Anda hapus.USER_ACCOUNT: akun pengguna yang perannya ingin Anda hapus. Flag ini menerima alamat email pengguna dengan awalan penyedia identitas (user:idpprefix-user@example.com) atau nama akun layanan dengan project akun layanan (serviceAccount:projectName:serviceAccountName).ROLE_TYPE:RoleatauProjectRoleyang binding perannya Anda hapus.ROLE: nama peran khusus atau yang telah ditentukan yang ingin Anda hapus dari akun pengguna (sepertiproject-viewer).
API
Ekspor kredensial pengguna yang Anda gunakan:
export YOUR_IAM_ADMIN_KUBECONFIG=YOUR_IAM_ADMIN_KUBECONFIGEkspor akun pengguna yang perannya ingin Anda hapus, termasuk awalan penyedia identitas (seperti
idpprefix-paul@example.com):export USERNAME=IDP_PREFIX-USER_EMAILEkspor namespace tempat binding dihapus:
export BINDING_NAMESPACE=BINDING_NAMESPACEHapus
ClusterRoleBinding,RoleBinding,ProjectRoleBinding, atauOrganizationRoleBindinguntuk mencabut izin yang diberikan ke akun pengguna:Hapus
ClusterRoleBindingdari akun pengguna:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete clusterrolebinding ${USERNAME}-paHapus
RoleBindingdari akun pengguna:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete rolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Hapus
ProjectRoleBindingdari akun pengguna:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete projectrolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Hapus
OrganizationRoleBindingdari akun pengguna:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete organizationrolebinding ${USERNAME}-pa \ --namespace=gpc-system
Mencabut akses pengguna
Jika anggota keluar dari organisasi atau tim Anda, Anda dapat mencabut aksesnya ke appliance air-gapped Google Distributed Cloud (GDC). Mencabut akses pengguna akan membuat pengguna tersebut logout dari appliance GDC dengan air gap dan menghapus peran serta izinnya. Anda juga dapat mencantumkan aktivitas dan sesi pengguna dari waktu mulai dan berakhirnya.
Untuk mencabut akses pengguna, lakukan hal berikut:
Dapatkan izin yang Anda perlukan untuk mencabut akses pengguna. Minta Admin IAM Organisasi Anda untuk memberi Anda peran Admin Sesi Org (
org-session-admin).Cabut akses pengguna:
gdcloud admin auth revoke --accounts USER_EMAILGanti USER_EMAIL dengan email pengguna yang aksesnya akan dicabut.
Setelah menjalankan perintah, Anda akan melihat output yang mirip dengan berikut ini. Contoh ini mencabut akses dari pengguna
ariel@example.com:Success: NUMBER of sessions revoked for user ariel@example.comDalam contoh ini, variabel NUMBER mengacu pada jumlah sesi aktif yang dimiliki pengguna.
Konfirmasi bahwa Anda telah mencabut akses pengguna dengan menjalankan kembali perintah
gdcloud admin auth revoke. Jika berhasil, Anda akan melihat hal berikut:No sessions found for account: ariel@example.com
Mencantumkan semua pengguna yang aksesnya dicabut
Untuk melihat semua pengguna yang aksesnya dicabut serta aktivitas dan sesi mereka, lakukan hal berikut:
Cantumkan semua pengguna yang aksesnya dicabut dari waktu mulai dan berakhirnya:
gdcloud admin auth list --format="csv(ACCOUNT, IDENTITY_PROVIDER, CREATION_TIME, EXPIRATION_TIME)"Jika berhasil, Anda akan melihat output yang mirip dengan berikut ini:
account,identity_provider,creation_time,expiration_time ariel@example.com,example-idp,2023-02-15 22:10:52,2023-02-15 23:10:52