Membuat peran khusus

Halaman ini menjelaskan cara membuat dan mengelola peran khusus di Google Distributed Cloud (GDC) dengan air gap. Peran khusus memungkinkan Anda mengelola akses di luar set izin standar yang tersedia dalam peran bawaan, sehingga Anda dapat mengonfigurasi izin untuk memenuhi kriteria tertentu.

Peran khusus mengikuti prinsip hak istimewa terendah dan berguna untuk memberikan akses paling sedikit yang diperlukan untuk tugas sensitif, mengurangi risiko keamanan, dan mencegah konflik kepentingan.

Dengan membuat peran khusus, Anda dapat:

  • Tentukan cakupan akses: Pilih untuk menerapkan izin di seluruh organisasi, di semua project, atau batasi izin ke project tertentu.
  • Menyesuaikan akses terperinci: Pilih satu atau beberapa izin yang sudah tersedia melalui peran yang telah ditetapkan untuk menyesuaikan akses ke tugas atau tanggung jawab tertentu.

Peran khusus terikat oleh cakupan tempat peran tersebut dibuat. Akses ke peran khusus hanya dapat diberikan dalam organisasi atau project yang sama tempat peran khusus dibuat.

Halaman ini ditujukan untuk audiens dalam grup administrator platform, seperti admin IT atau engineer keamanan, yang ingin mengelola akses ke resource organisasi dengan aman. Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC dengan air gap.

Buka Deskripsi peran yang telah ditetapkan dan Definisi peran untuk mengetahui informasi selengkapnya tentang peran.

Sebelum memulai

Sebelum membuat atau mengelola peran khusus, Anda harus meminta izin yang diperlukan dan menyiapkan lingkungan Anda.

Meminta peran organisasi IAM

Untuk membuat, memperbarui, dan menghapus peran khusus di seluruh organisasi atau dalam project, hubungi Admin Org IAM Anda untuk meminta peran Custom Role Org Admin (custom-role-org-admin).

Pelajari lebih lanjut cara menetapkan izin peran untuk organisasi.

Meminta peran project IAM

Untuk membuat, memperbarui, dan menghapus peran khusus dalam project tertentu, hubungi Admin Project IAM Anda untuk meminta peran Custom Role Project Admin (custom-role-project-admin).

Pelajari lebih lanjut cara menetapkan izin peran untuk project.

Menyiapkan lingkungan Anda

Untuk menggunakan alat command line guna membuat atau mengelola peran khusus, selesaikan penyiapan berikut:

Melihat peran dan izinnya

Peran khusus terdiri dari sekelompok izin yang dapat Anda tetapkan kepada pengguna. Untuk membuat peran khusus, pilih izin dari peran bawaan yang ada dan gabungkan agar sesuai dengan kebutuhan Anda. Izin yang dapat Anda sertakan dalam peran khusus bergantung pada cakupan tempat Anda membuat peran: organisasi atau project.

Bagian ini menjelaskan cara mencantumkan peran yang tersedia (baik yang telah ditetapkan maupun kustom) dan melihat izin di dalamnya. Anda dapat menggunakan informasi ini untuk melakukan hal berikut:

  • Mengidentifikasi izin untuk peran khusus baru: Temukan string izin tertentu yang diperlukan untuk flag --permissions saat menggunakan gdcloud CLI untuk membuat peran khusus.
  • Meninjau peran yang ada: Periksa izin yang terkait dengan peran yang telah ditetapkan atau peran khusus pada cakupan yang dipilih (organisasi atau project).

Cantumkan peran dan periksa izinnya menggunakan konsol GDC atau gdcloud CLI:

Konsol

  1. Login ke konsol GDC.
  2. Di pemilih project, pilih organisasi atau project tempat Anda ingin melihat peran.
  3. Di menu navigasi, klik Identity & Access > Roles.

    Daftar peran bawaan dan khusus yang tersedia akan muncul.

  4. Klik nama peran untuk melihat detailnya, termasuk izin yang ditetapkan.

    Izin yang tercantum untuk peran yang telah ditetapkan pada cakupan saat ini (organisasi atau project) adalah izin yang tersedia untuk disertakan dalam peran khusus baru.

gdcloud

  1. Pastikan Anda telah menginstal gdcloud CLI. Untuk mengetahui informasi selengkapnya, lihat halaman Ringkasan gdcloud CLI.
  2. Cantumkan peran yang tersedia:

    gdcloud iam roles list \
      --type=ROLE_TYPE \
      --project=PROJECT
    

    Ganti kode berikut:

    • ROLE_TYPE: jenis peran yang akan dicantumkan. Nilai yang valid adalah predefined, custom, atau all.
    • PROJECT: namespace project tempat Anda ingin melihat peran. Hapus flag --project untuk peran cakupan organisasi.
  3. Melihat izin tertentu dalam peran:

    gdcloud iam roles describe ROLE_NAME \
      --project=PROJECT
    

    Ganti kode berikut:

    • ROLE_NAME: nama resource Kubernetes dari peran
    • PROJECT: namespace project tempat Anda ingin melihat izin peran. Hapus flag --project untuk peran cakupan organisasi.

Lihat gdcloud iam roles list dan gdcloud iam roles describe untuk mengetahui detail perintah dan contoh penggunaan selengkapnya.

Membuat peran khusus

Buat peran khusus baru dengan mengelompokkan izin dari peran yang telah ditetapkan. Peran khusus mewarisi kemampuan multi-zona IAM dari peran bawaan yang menjadi dasarnya. Setelah membuat peran khusus, Anda dapat memberikan akses kepada pengguna.

Buat peran khusus menggunakan konsol GDC, gdcloud CLI, atau API:

Konsol

  1. Login ke konsol GDC.
  2. Di pemilih project, pilih organisasi atau project tempat Anda ingin membuat peran khusus.
  3. Di menu navigasi, klik Identity & Access > Roles.
  4. Klik Create Custom Role.
  5. Di kolom Title, masukkan judul peran khusus Anda.
  6. Di kolom Description, berikan deskripsi tujuan peran khusus Anda.
  7. Di kolom ID, masukkan ID unik untuk peran khusus Anda.

    ID peran khusus dapat berisi hingga 10 karakter alfanumerik huruf kecil dan tidak dapat diubah setelah pembuatan peran.

  8. Pilih Launch stage.

  9. Pilih cakupan peran khusus Anda.

    Jika Anda memilih Organization, peran khusus akan berlaku untuk semua resource di seluruh organisasi. Jika Anda memilih Projects, peran khusus akan berlaku untuk semua project saat ini dan yang akan datang dalam organisasi. Anda dapat memilih Limit to selected projects jika ingin menentukan project mana yang dapat mengakses peran khusus.

  10. Klik Add Permissions.

  11. Pilih kotak centang di samping satu atau beberapa izin yang didukung yang ingin Anda tetapkan ke peran khusus.

    Izin yang tersedia dibatasi untuk cakupan yang Anda pilih. Jika Anda mengubah cakupan setelah menambahkan izin, Anda harus mengonfirmasi bahwa semua izin yang ditetapkan sebelumnya direset.

  12. Klik Simpan.

  13. Klik Buat.

    Peran khusus baru Anda akan muncul di halaman Roles.

gdcloud

  1. Pastikan Anda telah menginstal gdcloud CLI. Untuk mengetahui informasi selengkapnya, lihat halaman Ringkasan gdcloud CLI.
  2. Membuat peran khusus:

    gdcloud iam roles create ROLE_ID \
      --title=TITLE \
      --description=DESCRIPTION \
      --permissions=PERMISSIONS
      --stage=LAUNCH_STAGE
    

    Ganti kode berikut:

    • ROLE_ID: ID unik untuk peran khusus Anda. ID peran khusus dapat berisi hingga 10 karakter alfanumerik huruf kecil dan dapat berisi tanda hubung. ID peran khusus tidak dapat diubah setelah pembuatan peran.
    • TITLE: judul yang mudah digunakan untuk peran khusus
    • DESCRIPTION: deskripsi tujuan peran khusus
    • PERMISSIONS: daftar izin yang dipisahkan koma yang ingin Anda berikan untuk peran khusus

      Untuk mengetahui detail tentang cara menemukan string izin yang benar, lihat Melihat peran dan izinnya. Setiap string izin harus diformat sesuai dengan panduan di gdcloud iam roles create, dengan iamRoleName adalah nama resource Kubernetes dari peran yang telah ditetapkan yang berisi izin. Anda dapat menemukan nama resource Kubernetes peran di halaman Role definitions atau menggunakan perintah gdcloud iam roles list.

    • LAUNCH_STAGE: Opsional. Tahap rilis peran khusus. Nilai yang valid adalah ALPHA, BETA, GA, atau DISABLED. Nilai defaultnya adalah ALPHA jika flag ini dihilangkan.

    Lihat gdcloud iam roles create untuk mengetahui daftar lengkap flag wajib dan opsional, serta contoh penggunaannya.

    Atau, Anda dapat menentukan peran khusus dalam file YAML dan menggunakan flag --file:

    gdcloud iam roles create ROLE_ID --file=YAML_FILE_PATH
    

    Ganti YAML_FILE_PATH dengan jalur ke file YAML yang berisi flag wajib dan opsional. Jika Anda menggunakan flag --file, semua flag lain seperti --title, --description, dan --permissions akan diabaikan.

API

Buat dan terapkan resource kustom CustomRole menggunakan kubectl:

kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
  name: ROLE_NAME
  namespace: NAMESPACE
spec:
  metadata:
    description: DESCRIPTION
    id: ROLE_ID
    scope: SCOPE
    stage: LAUNCH_STAGE
    title: TITLE
  RULES_TYPE:
  - RULES_LIST
EOF

Ganti kode berikut:

  • ROLE_NAME: nama resource Kubernetes dari peran
  • NAMESPACE: namespace untuk peran khusus. Gunakan platform untuk peran lingkup organisasi dan untuk beberapa project. Gunakan namespace project (seperti my-project) untuk peran cakupan project dan project tunggal.
  • DESCRIPTION: deskripsi tujuan peran khusus
  • ROLE_ID: ID unik untuk peran khusus Anda. ID peran khusus dapat berisi hingga 10 karakter alfanumerik huruf kecil dan dapat berisi tanda hubung. ID peran khusus tidak dapat diubah setelah pembuatan peran.
  • SCOPE: gunakan organization untuk peran yang dibuat di namespace platform. Gunakan project untuk peran yang dibuat di namespace project.
  • LAUNCH_STAGE: Opsional. Tahap rilis peran khusus. Nilai yang valid adalah ALPHA, BETA, GA, atau DISABLED. Nilai defaultnya adalah ALPHA jika kolom ini dihilangkan.
  • TITLE: judul yang mudah digunakan untuk peran khusus
  • RULES_TYPE: cakupan aturan. Ganti dengan globalRules (untuk izin di API global), zonalRules (untuk izin di API zona), atau keduanya.
  • RULES_LIST: daftar objek aturan RBAC Kubernetes standar yang diindentasi. Setiap objek dalam daftar memberikan izin. Anda dapat menentukan apiGroups, resources, dan verbs yang benar dengan memeriksa izin dalam peran yang telah ditetapkan menggunakan gdcloud iam roles describe, seperti yang ditunjukkan dalam Melihat peran dan izinnya.

    Contoh berikut menunjukkan struktur satu item dalam objek globalRules:

    globalRules:
    - apiGroups: ["storage.global.gdc.goog"]
      resources: ["buckettypes"]
      verbs: ["get", "list", "watch"]
    

    Anda dapat menyertakan beberapa item dalam daftar, yang masing-masing menentukan kumpulan izin yang berbeda.

Mengelola peran khusus

Anda bertanggung jawab untuk mengelola siklus proses peran khusus Anda. Saat Distributed Cloud menambahkan izin, fitur, atau layanan baru, peran yang telah ditetapkan akan diperbarui. Pembaruan seperti menghapus peran yang telah ditetapkan atau menghapus izin dari peran yang telah ditetapkan dapat membuat peran khusus yang mengandalkan izin tersebut tidak berfungsi. Anda harus memantau update ini dan menyesuaikan peran khusus yang terpengaruh secara manual untuk memastikan peran tersebut terus berfungsi seperti yang diharapkan.

Anda dapat mengedit, menonaktifkan, atau menghapus peran khusus; namun, Anda tidak dapat mengedit, menonaktifkan, atau menghapus peran yang telah ditetapkan. Untuk melihat daftar semua peran dan izin spesifiknya, lihat Melihat peran dan izinnya.

Mengedit peran khusus

Edit peran khusus menggunakan konsol GDC, gdcloud CLI, atau API:

Konsol

  1. Login ke konsol GDC.
  2. Di pemilih project, pilih organisasi atau project tempat Anda ingin mengedit peran khusus.
  3. Di menu navigasi, klik Identity & Access > Roles.
  4. Dari daftar peran, pilih peran khusus yang ingin Anda edit.
  5. Dari halaman detail peran khusus, klik Edit.
  6. Edit detail peran khusus Anda seperti judul, deskripsi, ID, atau tahap peluncuran.
  7. Tambahkan atau hapus izin yang ditetapkan jika perlu.
    1. Klik Add permissions untuk memilih dari daftar izin yang tersedia.
    2. Untuk menghapus izin yang ditetapkan, centang kotak di samping izin yang ingin Anda hapus, lalu klik Remove.
  8. Klik Simpan.

    Pesan akan muncul untuk mengonfirmasi perubahan yang Anda simpan.

gdcloud

  1. Pastikan Anda telah menginstal gdcloud CLI. Untuk mengetahui informasi selengkapnya, lihat halaman Ringkasan gdcloud CLI.
  2. Mengedit peran khusus:

    gdcloud iam roles update ROLE_ID \
      --title=TITLE \
      --description=DESCRIPTION \
      --permissions=PERMISSIONS
      --stage=LAUNCH_STAGE
    

    Ganti kode berikut:

    • ROLE_ID: ID unik untuk peran khusus Anda
    • TITLE: judul yang mudah digunakan untuk peran khusus
    • DESCRIPTION: deskripsi tujuan peran khusus
    • PERMISSIONS: daftar izin yang dipisahkan koma yang ingin Anda berikan untuk peran khusus

      Untuk mengetahui detail tentang cara menemukan string izin yang benar, lihat Melihat peran dan izinnya. Setiap string izin harus diformat sesuai dengan panduan di gdcloud iam roles create, dengan iamRoleName adalah nama resource Kubernetes dari peran yang telah ditetapkan yang berisi izin. Anda dapat menemukan nama resource Kubernetes peran di halaman Role definitions atau menggunakan perintah gdcloud iam roles list.

    • LAUNCH_STAGE: Opsional. Tahap rilis peran khusus. Nilai yang valid adalah ALPHA, BETA, GA, atau DISABLED. Nilai defaultnya adalah ALPHA jika flag ini dihilangkan.

    Lihat gdcloud iam roles update untuk mengetahui daftar lengkap flag yang diperlukan dan opsional, serta contoh penggunaannya.

    Atau, Anda dapat memperbarui peran khusus dalam file YAML-nya dan menggunakan flag --file:

    gdcloud iam roles update ROLE_ID --file=YAML_FILE_PATH
    

    Ganti YAML_FILE_PATH dengan jalur ke file YAML yang berisi flag wajib dan opsional yang telah diperbarui. Jika Anda menggunakan flag --file, semua flag lain seperti --title, --description, dan --permissions akan diabaikan.

API

Edit resource kustom CustomRole menggunakan kubectl:

kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
  name: ROLE_NAME
  namespace: NAMESPACE
spec:
  metadata:
    description: DESCRIPTION
    id: ROLE_ID
    scope: SCOPE
    stage: LAUNCH_STAGE
    title: TITLE
  RULES_TYPE:
  - RULES_LIST
EOF

Ganti kode berikut:

  • ROLE_NAME: nama resource Kubernetes dari peran
  • NAMESPACE: namespace untuk peran khusus. Gunakan platform untuk peran lingkup organisasi dan untuk beberapa project. Gunakan namespace project (seperti my-project) untuk peran cakupan project dan project tunggal.
  • DESCRIPTION: deskripsi tujuan peran khusus
  • ROLE_ID: ID unik untuk peran khusus Anda. ID peran khusus dapat berisi hingga 10 karakter alfanumerik huruf kecil dan dapat berisi tanda hubung. ID peran khusus tidak dapat diubah setelah pembuatan peran.
  • SCOPE: gunakan organization untuk peran yang dibuat di namespace platform. Gunakan project untuk peran yang dibuat di namespace project.
  • LAUNCH_STAGE: Opsional. Tahap rilis peran khusus. Nilai yang valid adalah ALPHA, BETA, GA, atau DISABLED. Nilai defaultnya adalah ALPHA jika kolom ini dihilangkan.
  • TITLE: judul yang mudah digunakan untuk peran khusus
  • RULES_TYPE: cakupan aturan. Ganti dengan globalRules (untuk izin di API global), zonalRules (untuk izin di API zona), atau keduanya.
  • RULES_LIST: daftar objek aturan RBAC Kubernetes standar yang diindentasi. Setiap objek dalam daftar memberikan izin. Anda dapat menentukan apiGroups, resources, dan verbs yang benar dengan memeriksa izin dalam peran yang telah ditetapkan menggunakan gdcloud iam roles describe, seperti yang ditunjukkan dalam Melihat peran dan izinnya.

    Contoh berikut menunjukkan struktur satu item dalam objek globalRules:

    globalRules:
    - apiGroups: ["storage.global.gdc.goog"]
      resources: ["buckettypes"]
      verbs: ["get", "list", "watch"]
    

    Anda dapat menyertakan beberapa item dalam daftar, yang masing-masing menentukan kumpulan izin yang berbeda.

Menonaktifkan peran khusus

Peran khusus yang dinonaktifkan tetap ada dalam daftar peran Anda dan masih dapat ditetapkan kepada pengguna; namun, peran tersebut tidak berpengaruh. Anda dapat mengaktifkan kembali peran khusus kapan saja.

Nonaktifkan peran khusus menggunakan konsol GDC, gdcloud CLI, atau API:

Konsol

  1. Login ke konsol GDC.
  2. Di pemilih project, pilih organisasi atau project tempat Anda ingin menonaktifkan peran khusus.
  3. Di menu navigasi, klik Identity & Access > Roles.
  4. Dalam daftar peran, pilih peran khusus yang ingin Anda nonaktifkan.
  5. Di halaman detail peran khusus, klik Disable.

gdcloud

  1. Pastikan Anda telah menginstal gdcloud CLI. Untuk mengetahui informasi selengkapnya, lihat halaman Ringkasan gdcloud CLI.
  2. Menonaktifkan peran khusus:

    gdcloud iam roles update ROLE_ID --stage=DISABLED
    

    Ganti kode berikut:

    • ROLE_ID: ID unik untuk peran khusus Anda

    Lihat gdcloud iam roles update untuk mengetahui informasi selengkapnya.

API

Nonaktifkan resource kustom CustomRole dengan mengubah kolom stage menjadi DISABLED. Pastikan semua kolom lainnya cocok dengan nilai saat ini untuk peran khusus yang ingin Anda nonaktifkan.

kubectl apply -f - <<EOF
apiVersion: iam.global.gdc.goog/v1
kind: CustomRole
metadata:
  name: ROLE_NAME
  namespace: NAMESPACE
spec:
  metadata:
    description: DESCRIPTION
    id: ROLE_ID
    scope: SCOPE
    stage: DISABLED
    title: TITLE
  RULES_TYPE:
  - RULES_LIST
EOF

Ganti kode berikut:

  • ROLE_NAME: nama resource Kubernetes dari peran
  • NAMESPACE: namespace untuk peran khusus. Gunakan platform untuk peran lingkup organisasi dan untuk beberapa project. Gunakan namespace project (seperti my-project) untuk peran cakupan project dan project tunggal.
  • DESCRIPTION: deskripsi tujuan peran khusus
  • ROLE_ID: ID unik untuk peran khusus Anda. ID peran khusus dapat berisi hingga 10 karakter alfanumerik huruf kecil dan dapat berisi tanda hubung. ID peran khusus tidak dapat diubah setelah pembuatan peran.
  • SCOPE: gunakan organization untuk peran yang dibuat di namespace platform. Gunakan project untuk peran yang dibuat di namespace project.
  • TITLE: judul yang mudah digunakan untuk peran khusus
  • RULES_TYPE: cakupan aturan. Ganti dengan globalRules (untuk izin di API global), zonalRules (untuk izin di API zona), atau keduanya.
  • RULES_LIST: daftar objek aturan RBAC Kubernetes standar yang diindentasi. Setiap objek dalam daftar memberikan izin. Anda dapat menentukan apiGroups, resources, dan verbs yang benar dengan memeriksa izin dalam peran yang telah ditetapkan menggunakan gdcloud iam roles describe, seperti yang ditunjukkan dalam Melihat peran dan izinnya.

    Contoh berikut menunjukkan struktur satu item dalam objek globalRules:

    globalRules:
    - apiGroups: ["storage.global.gdc.goog"]
      resources: ["buckettypes"]
      verbs: ["get", "list", "watch"]
    

    Anda dapat menyertakan beberapa item dalam daftar, yang masing-masing menentukan kumpulan izin yang berbeda.

Menghapus peran khusus

Peran yang dihapus akan dihapus secara permanen dari sistem; namun, Anda dapat membuat peran baru dengan nama yang sama.

Hapus peran khusus menggunakan gdcloud CLI atau API:

gdcloud

  1. Pastikan Anda telah menginstal gdcloud CLI. Untuk mengetahui informasi selengkapnya, lihat halaman Ringkasan gdcloud CLI.
  2. Menghapus peran khusus:

    gdcloud iam roles delete ROLE_ID --project=PROJECT
    

    Ganti kode berikut:

    • ROLE_ID: ID unik untuk peran khusus Anda
    • PROJECT: namespace project tempat Anda ingin menghapus peran khusus. Jika flag --project tidak ditentukan, peran yang tercakup dalam organisasi akan dihapus.

    Lihat gdcloud iam roles delete untuk mengetahui informasi selengkapnya dan contoh penggunaan.

API

Hapus resource kustom CustomRole menggunakan kubectl:

kubectl delete -f CUSTOM_ROLE

Ganti CUSTOM_ROLE dengan jalur ke file YAML CustomRole Anda. File ini sama dengan file yang Anda gunakan untuk membuat atau memperbarui peran.