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
ClusterRoleBinding
atauRoleBinding
keClusterRole
yang 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
ProjectRole
danProjectRoleBinding
yang sesuai. Proses ini menyebarkanRole
danRoleBinding
Kubernetes keNamespace
Kubernetes di cluster, yang sesuai denganProject
yang terkait denganProjectRole
danProjectRoleBinding
.Untuk akses di seluruh cluster: Untuk memberikan akses ke semua namespace dalam cluster, buat
OrganizationRole
danOrganizationRoleBinding
yang sesuai. Proses ini menyebarkanClusterRole
danClusterRoleBinding
Kubernetes 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 login
untuk 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/ROLE
Ganti 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
, atauOrganizationRole
yang 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/ROLE
Ganti 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
:Role
atauProjectRole
yang 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_KUBECONFIG
Ekspor akun pengguna yang ingin Anda tetapkan perannya, termasuk awalan penyedia identitas (seperti
idpprefix-paul@example.com
):export USERNAME=IDP_PREFIX-USER_EMAIL
Ekspor nama peran yang dibutuhkan pengguna, seperti
project-creator
. Lihat Definisi peran untuk mengetahui detail tentang peran.export ROLE_NAME=ROLE_NAME
Menetapkan 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
ClusterRole
memerlukanRoleBinding
, 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-system
Menetapkan pengguna ke
Role
:Ekspor namespace tempat binding harus dibuat:
export BINDING_NAMESPACE=BINDING_NAMESPACE
Jalankan 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: USERNAME
Ganti 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
: NamaProjectRole
yang 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 denganUSERNAME
yang 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: USERNAME
Ganti kode berikut:
BINDING_NAME
: Nama untuk binding yang dapat disesuaikan pengguna (sepertiuser-organization-creator-binding
).ROLE_NAME
: NamaOrganizationRole
yang 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 denganUSERNAME
yang 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 login
untuk 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/ROLE
Ganti 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
, atauOrganizationRole
yang 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/ROLE
Ganti 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
:Role
atauProjectRole
yang 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_KUBECONFIG
Ekspor akun pengguna yang perannya ingin Anda hapus, termasuk awalan penyedia identitas (seperti
idpprefix-paul@example.com
):export USERNAME=IDP_PREFIX-USER_EMAIL
Ekspor namespace tempat binding dihapus:
export BINDING_NAMESPACE=BINDING_NAMESPACE
Hapus
ClusterRoleBinding
,RoleBinding
,ProjectRoleBinding
, atauOrganizationRoleBinding
untuk mencabut izin yang diberikan ke akun pengguna:Menghapus
ClusterRoleBinding
dari akun pengguna:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete clusterrolebinding ${USERNAME}-pa
Menghapus
RoleBinding
dari akun pengguna:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete rolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}
Menghapus
ProjectRoleBinding
dari akun pengguna:kubectl --kubeconfig ${YOUR_IAM_ADMIN_KUBECONFIG} \ delete projectrolebinding ${USERNAME}-pa \ --namespace=${BINDING_NAMESPACE}
Menghapus
OrganizationRoleBinding
dari 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_EMAIL
Ganti 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.com
Dalam 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