Setiap subjek - pengguna atau grup - mengikuti proses dua langkah untuk mendapatkan akses ke server Management API dan cluster Kubernetes:
Akses server Management API: Beri subjek izin di server Management API menggunakan
ClusterRoleBindingatauRoleBindingkeClusterRoleyang telah ditentukan sebelumnya.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 menyebarkanClusterRoledanClusterRoleBindingKubernetes ke seluruh cluster Kubernetes.
Persona (IO, PA, AO) bukan peran, tetapi kumpulan peran pengguna yang dipetakan ke izin tertentu dan ditetapkan kepada setiap pengguna.
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 pengikatan peran project untuk project apa pun. Di sisi lain, Admin IAM Project hanya dapat membuat peran project dan binding peran project untuk project yang izin aksesnya telah diberikan kepada mereka.
Menyiapkan binding peran
Anda dapat menyiapkan binding peran yang memberi anggota tim akses ke resource di level 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 Pilih project untuk memilih organisasi atau project.
- Untuk menyiapkan binding peran bagi organisasi, pilih organisasi.
- Untuk menyiapkan binding peran untuk project, pilih project.
- Di menu navigasi, klik Identity and Access > Access.
- Klik Tambahkan anggota.
- Di daftar Identity provider, pilih penyedia identitas.
- Pilih apakah Anda ingin menambahkan pengguna atau grup satu per satu.
- Di kolom Nama pengguna atau alias grup, masukkan nama pengguna, alamat email, atau alias.
- Dalam daftar Peran, pilih peran yang ingin Anda tetapkan kepada pengguna atau grup, seperti Pelihat Organisasi di tingkat organisasi atau Pembuat Project di tingkat project.
- Klik Tambahkan.
Anggota akan muncul dalam daftar Anggota yang diizinkan.
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.
Menyiapkan 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 akan Anda siapkan binding perannya.ROLE: nama peran bawaan atau kustom 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 penetapan 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 bawaan atau kustom yang ingin Anda tetapkan kepada pengguna (sepertiproject-viewer).
API
Mengekspor 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.export ROLE_NAME=ROLE_NAMEMenetapkan pengguna ke
ClusterRole,Role,ProjectRole, atauOrganizationRole:Menetapkan pengguna ke
ClusterRole:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ clusterrolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME}Untuk kasus ketika
ClusterRolememerlukanRoleBinding, bukanClusterRoleBinding, lihat Definisi peran untuk mengetahui jenis binding yang diperlukan peran dan buat RoleBinding di namespacegpc-system:kubectl create --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ rolebinding ${USERNAME}-${ROLE_NAME}-binding \ --clusterrole=${ROLE_NAME} --user=${USERNAME} --namespace=gpc-systemMenetapkan 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}
Menetapkan 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 pengguna (sepertiuser-project-creator-binding).PROJECT_NAME: Nama project yang perannya ingin 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 email ini harus cocok denganUSERNAMEyang diekspor.
Terapkan file
projectrolebinding.yaml:kubectl create -f projectrolebinding.yaml
Menetapkan 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 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 email 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 terkaitnya.
Untuk menghapus anggota, ikuti langkah-langkah berikut:
Konsol
- Login ke konsol GDC.
- Di menu navigasi, klik Identity and Access > Access.
- Dalam daftar Anggota yang diberi otorisasi, pilih anggota.
- Klik Hapus anggota.
- Saat diminta, klik Hapus anggota 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.
Menghapus 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 bawaan atau kustom yang ingin Anda hapus dari akun pengguna (sepertiproject-creator).
Menghapus binding peran untuk project:
gdcloud projects remove-iam-policy-binding PROJECT \ --member=USER_ACCOUNT \ --role=ROLE_TYPE/ROLEGanti variabel berikut:
PROJECT: nama project tempat Anda menghapus binding peran.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 bawaan atau kustom yang ingin Anda hapus dari akun pengguna (sepertiproject-viewer).
API
Mengekspor 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:Menghapus
ClusterRoleBindingdari akun pengguna:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete clusterrolebinding ${USERNAME}-paMenghapus
RoleBindingdari akun pengguna:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete rolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Menghapus
ProjectRoleBindingdari akun pengguna:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete projectrolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}Menghapus
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 perangkat air-gapped Google Distributed Cloud (GDC). Mencabut akses pengguna akan membuat pengguna logout dari appliance air-gapped GDC 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 Org Session Admin (
org-session-admin).Mencabut 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 merujuk 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 berikut ini: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:
Mencantumkan 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