Kontrol akses dengan IAM

Halaman ini menjelaskan peran dan izin Identity and Access Management (IAM) yang Anda perlukan untuk membeli dan mengelola produk komersial di Cloud Marketplace.

Dengan IAM, Anda dapat mengelola kontrol akses dengan menentukan siapa (identitas) yang memiliki akses apa (peran) untuk resource yang mana. Untuk aplikasi komersial di Cloud Marketplace, pengguna di organisasi Google Cloud Anda memerlukan peran IAM untuk mendaftar ke paket Cloud Marketplace, dan untuk melakukan perubahan pada paket penagihan.

Sebelum memulai

  • Untuk memberikan peran dan izin Cloud Marketplace menggunakan gcloud, instal gcloud CLI. Atau, Anda dapat memberikan peran menggunakan konsol Google Cloud .

Membeli dan mengelola peran

Sebaiknya Anda menetapkan peran IAM Billing Account Administrator kepada pengguna yang membeli layanan dari Cloud Marketplace.

Pengguna yang ingin mengakses layanan harus memiliki peran Viewer, minimal.

Akses administratif untuk OAuth 2.0 dan verifikasi domain

Jika solusi Marketplace Anda memerlukan verifikasi OAuth 2.0 atau konfigurasi tingkat domain (seperti untuk integrasi SaaS), Anda harus memiliki izin administratif untuk mengelola setelan identitas dan keamanan project.

Skenario Izin atau Peran yang Diperlukan Tindakan
Mendapatkan kembali akses administratif roles/resourcemanager.organizationAdmin Berikan peran ini di level organisasi untuk mengelola pemilik project.
Memverifikasi domain yang diizinkan roles/cloudsecurityscanner.editor Gunakan peran ini untuk mengelola keamanan web dan konfigurasi terkait domain.
Mengelola verifikasi OAuth roles/owner atau roles/editor Konfigurasi layar izin OAuth dan kirimkan branding untuk ditinjau.

Untuk menyelesaikan masalah verifikasi umum, seperti "Domain tidak ditemukan" atau URL halaman beranda yang tidak responsif, pastikan domain Anda diverifikasi di Search Console dan kebijakan privasi Anda dapat diakses secara publik. Untuk mengetahui informasi selengkapnya tentang verifikasi identitas, lihat Memverifikasi identitas Anda.

Untuk kontrol yang lebih terperinci atas izin pengguna, Anda dapat membuat peran khusus dengan izin yang ingin Anda berikan.

Persyaratan khusus produk

Untuk menggunakan layanan berikut dalam project Google Cloud , Anda harus memiliki peran Project Editor:

  • Google Cloud Dataprep by Trifacta
  • Neo4j Aura Professional
  • Redis Enterprise Cloud

Daftar peran dan izin IAM

Anda dapat memberikan satu atau beberapa peran IAM berikut kepada pengguna. Bergantung pada peran yang Anda berikan kepada pengguna, Anda juga harus menetapkan peran tersebut ke akun penagihan, organisasi, atau project Google Cloud . Untuk mengetahui detailnya, lihat bagian Memberikan peran IAM kepada pengguna.

Role Permissions

(roles/consumerprocurement.entitlementManager)

Allows managing entitlements and enabling, disabling, and inspecting service states for a consumer project.

commerceoffercatalog.offers.get

consumerprocurement.consents.check

consumerprocurement.consents.grant

consumerprocurement.consents.list

consumerprocurement.consents.revoke

consumerprocurement.entitlements.*

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list

consumerprocurement.freeTrials.*

  • consumerprocurement.freeTrials.create
  • consumerprocurement.freeTrials.get
  • consumerprocurement.freeTrials.list

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.*

  • serviceusage.consumerpolicy.analyze
  • serviceusage.consumerpolicy.get
  • serviceusage.consumerpolicy.update

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.operations.get

serviceusage.services.disable

serviceusage.services.enable

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

(roles/consumerprocurement.entitlementViewer)

Allows inspecting entitlements and service states for a consumer project.

commerceoffercatalog.offers.get

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.entitlements.*

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list

consumerprocurement.freeTrials.get

consumerprocurement.freeTrials.list

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.analyze

serviceusage.consumerpolicy.get

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

(roles/consumerprocurement.eventsViewer)

Allows viewing key events for an offer

consumerprocurement.events.*

  • consumerprocurement.events.get
  • consumerprocurement.events.list

(roles/consumerprocurement.licensePoolEditor)

Allows managing license pools and license assignments.

consumerprocurement.licensePools.*

  • consumerprocurement.licensePools.assign
  • consumerprocurement.licensePools.enumerateLicensedUsers
  • consumerprocurement.licensePools.get
  • consumerprocurement.licensePools.unassign
  • consumerprocurement.licensePools.update

(roles/consumerprocurement.licensePoolViewer)

Allows viewing license pools and license assignments.

consumerprocurement.licensePools.enumerateLicensedUsers

consumerprocurement.licensePools.get

(roles/consumerprocurement.orderAdmin)

Allows managing purchases.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.accounts.redeemPromotion

billing.credits.list

billing.resourceAssociations.create

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.*

  • consumerprocurement.accounts.create
  • consumerprocurement.accounts.delete
  • consumerprocurement.accounts.get
  • consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.grant

consumerprocurement.consents.list

consumerprocurement.consents.revoke

consumerprocurement.events.*

  • consumerprocurement.events.get
  • consumerprocurement.events.list

consumerprocurement.licensePools.*

  • consumerprocurement.licensePools.assign
  • consumerprocurement.licensePools.enumerateLicensedUsers
  • consumerprocurement.licensePools.get
  • consumerprocurement.licensePools.unassign
  • consumerprocurement.licensePools.update

consumerprocurement.orderAttributions.*

  • consumerprocurement.orderAttributions.get
  • consumerprocurement.orderAttributions.list
  • consumerprocurement.orderAttributions.update

consumerprocurement.orders.*

  • consumerprocurement.orders.cancel
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list
  • consumerprocurement.orders.modify
  • consumerprocurement.orders.place

discoveryengine.billingAccountLicenseConfigs.*

  • discoveryengine.billingAccountLicenseConfigs.distribute
  • discoveryengine.billingAccountLicenseConfigs.get
  • discoveryengine.billingAccountLicenseConfigs.list
  • discoveryengine.billingAccountLicenseConfigs.retract

(roles/consumerprocurement.orderViewer)

Allows inspecting purchases.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.credits.list

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.get

consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.licensePools.enumerateLicensedUsers

consumerprocurement.licensePools.get

consumerprocurement.orderAttributions.get

consumerprocurement.orderAttributions.list

consumerprocurement.orders.get

consumerprocurement.orders.list

discoveryengine.billingAccountLicenseConfigs.get

discoveryengine.billingAccountLicenseConfigs.list

(roles/consumerprocurement.procurementAdmin)

Allows managing purchases, consents at both billing account and project level.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.accounts.redeemPromotion

billing.credits.list

billing.resourceAssociations.create

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.*

  • consumerprocurement.accounts.create
  • consumerprocurement.accounts.delete
  • consumerprocurement.accounts.get
  • consumerprocurement.accounts.list
  • consumerprocurement.consents.allowProjectGrant
  • consumerprocurement.consents.check
  • consumerprocurement.consents.grant
  • consumerprocurement.consents.list
  • consumerprocurement.consents.revoke
  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list
  • consumerprocurement.events.get
  • consumerprocurement.events.list
  • consumerprocurement.freeTrials.create
  • consumerprocurement.freeTrials.get
  • consumerprocurement.freeTrials.list
  • consumerprocurement.licensePools.assign
  • consumerprocurement.licensePools.enumerateLicensedUsers
  • consumerprocurement.licensePools.get
  • consumerprocurement.licensePools.unassign
  • consumerprocurement.licensePools.update
  • consumerprocurement.orderAttributions.get
  • consumerprocurement.orderAttributions.list
  • consumerprocurement.orderAttributions.update
  • consumerprocurement.orders.cancel
  • consumerprocurement.orders.get
  • consumerprocurement.orders.list
  • consumerprocurement.orders.modify
  • consumerprocurement.orders.place

discoveryengine.billingAccountLicenseConfigs.*

  • discoveryengine.billingAccountLicenseConfigs.distribute
  • discoveryengine.billingAccountLicenseConfigs.get
  • discoveryengine.billingAccountLicenseConfigs.list
  • discoveryengine.billingAccountLicenseConfigs.retract

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.*

  • serviceusage.consumerpolicy.analyze
  • serviceusage.consumerpolicy.get
  • serviceusage.consumerpolicy.update

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.operations.get

serviceusage.services.disable

serviceusage.services.enable

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

(roles/consumerprocurement.procurementViewer)

Allows inspecting purchases, consents and entitlements and service states for a consumer project.

billing.accounts.get

billing.accounts.getIamPolicy

billing.accounts.list

billing.credits.list

commerceoffercatalog.*

  • commerceoffercatalog.agreements.get
  • commerceoffercatalog.agreements.list
  • commerceoffercatalog.documents.get
  • commerceoffercatalog.documents.list
  • commerceoffercatalog.offers.get

consumerprocurement.accounts.get

consumerprocurement.accounts.list

consumerprocurement.consents.check

consumerprocurement.consents.list

consumerprocurement.entitlements.*

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list

consumerprocurement.freeTrials.get

consumerprocurement.freeTrials.list

consumerprocurement.licensePools.enumerateLicensedUsers

consumerprocurement.licensePools.get

consumerprocurement.orderAttributions.get

consumerprocurement.orderAttributions.list

consumerprocurement.orders.get

consumerprocurement.orders.list

discoveryengine.billingAccountLicenseConfigs.get

discoveryengine.billingAccountLicenseConfigs.list

orgpolicy.policy.get

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.analyze

serviceusage.consumerpolicy.get

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

Memberikan peran IAM kepada pengguna

Dari peran dalam tabel sebelumnya, peran consumerprocurement.orderAdmin dan consumerprocurement.orderViewer harus ditetapkan di tingkat akun penagihan atau organisasi, dan peran consumerprocurement.entitlementManager dan consumerprocurement.entitlementViewer harus ditetapkan di tingkat project atau organisasi.

Untuk memberikan peran kepada pengguna menggunakan gcloud, jalankan salah satu perintah berikut:

Organisasi

Anda harus memiliki peran resourcemanager.organizationAdmin untuk menetapkan peran di tingkat organisasi.

gcloud organizations add-iam-policy-binding organization-id \
--member=member --role=role-id

Nilai placeholder adalah:

  • organization-id: ID numerik organisasi yang Anda beri peran.
  • member: Pengguna yang Anda beri akses.
  • role-id: ID peran, dari tabel sebelumnya.

Akun penagihan

Anda harus memiliki peran billing.admin untuk menetapkan peran di tingkat akun penagihan.

gcloud beta billing accounts set-iam-policy account-id \
policy-file

Nilai placeholder adalah:

  • account-id: ID akun penagihan Anda, yang dapat Anda peroleh dari halaman Kelola akun penagihan.
  • policy-file: File kebijakan IAM, dalam format JSON atau YAML. File kebijakan harus berisi ID peran dari tabel sebelumnya, dan pengguna yang Anda tetapkan perannya.

Project

Anda harus memiliki peran resourcemanager.folderAdmin untuk menetapkan peran di level project.

gcloud projects add-iam-policy-binding project-id \
--member=member --role=role-id

Nilai placeholder adalah:

  • project-id: Project yang Anda beri peran.
  • member: Pengguna yang Anda beri akses.
  • role-id: ID peran, dari tabel sebelumnya.

Untuk memberikan peran kepada pengguna menggunakan konsol Google Cloud , lihat dokumentasi IAM tentang Memberikan, mengubah, dan mencabut akses untuk pengguna.

Menggunakan peran khusus dengan Cloud Marketplace

Jika menginginkan kontrol terperinci atas izin yang Anda berikan kepada pengguna, Anda dapat membuat peran khusus dengan izin yang ingin Anda berikan.

Jika Anda membuat peran khusus untuk pengguna yang membeli layanan dari Cloud Marketplace, peran tersebut harus menyertakan izin ini untuk akun penagihan yang mereka gunakan untuk membeli layanan:

Mengakses situs partner dengan Single Sign-On (SSO)

Produk Cloud Marketplace API tertentu mendukung Single Sign-on (SSO) ke situs eksternal partner. Pengguna yang diberi otorisasi dalam organisasi memiliki akses ke tombol "MANAGE ON PROVIDER" di halaman detail produk. Tombol ini mengarahkan pengguna ke situs partner. Dalam beberapa kasus, pengguna akan diminta untuk "Login dengan Google". Dalam kasus lain, pengguna login dalam konteks akun bersama.

Untuk mengakses kemampuan SSO, pengguna membuka halaman detail produk, dan memilih project yang sesuai. Project harus ditautkan ke akun penagihan tempat paket telah dibeli. Untuk mengetahui detail tentang pengelolaan paket Cloud Marketplace API, lihat Mengelola paket penagihan.

Selain itu, pengguna harus memiliki izin IAM yang memadai dalam project yang dipilih. Untuk sebagian besar produk, roles/consumerprocurement.entitlementManager (atau roles/editor peran dasar) diperlukan.

Izin minimal untuk produk tertentu

Produk berikut dapat beroperasi dengan serangkaian izin yang berbeda untuk mengakses kemampuan SSO:

  • Apache Kafka di Confluent Cloud
  • DataStax Astra untuk Apache Cassandra
  • Elastic Cloud
  • Neo4j Aura Professional
  • Redis Enterprise Cloud

Untuk produk ini, Anda dapat menggunakan izin minimal berikut:

  • consumerprocurement.entitlements.get
  • consumerprocurement.entitlements.list
  • serviceusage.services.get
  • serviceusage.services.list
  • resourcemanager.projects.get

Izin ini biasanya diberikan dengan peran roles/consumerprocurement.entitlementManager atau roles/consumerprocurement.entitlementViewer.