Kontrol Akses Service Management API

Service Management API menggunakan Identity and Access Management (Cloud IAM) untuk mengontrol akses ke layanan terkelola dan resource turunannya. Halaman ini menjelaskan resource, peran, dan izin IAM yang disediakan oleh Service Management API, dan cara menggunakannya untuk mengontrol akses.

Resource IAM

IAM menerapkan kebijakan IAM pada resource untuk mengontrol siapa yang dapat melakukan tindakan apa pada resource. Service Management API menggunakan resource berikut untuk menyediakan fungsinya:

Anda akan memerlukan izin yang berbeda untuk menggunakan dan mengelola resource yang berbeda. Lihat bagian berikut untuk detailnya.

Izin IAM

Panggilan ke Service Management API mengharuskan pemanggil memiliki izin IAM yang diperlukan pada resource target.

Tabel berikut mencantumkan izin yang berlaku untuk layanan:

Izin Deskripsi
servicemanagement.services.delete Hapus layanan.
servicemanagement.services.get Membaca layanan.
servicemanagement.services.create Membuat layanan baru dalam project.
servicemanagement.services.list Mencantumkan layanan dalam project.
servicemanagement.services.update Memperbarui layanan.
servicemanagement.services.bind Melihat dan mengaktifkan layanan pada project yang dikontrol pemanggil.
servicemanagement.services.setIamPolicy Menetapkan kebijakan akses IAM untuk layanan.
servicemanagement.services.getIamPolicy Membaca kebijakan akses IAM untuk layanan.
servicemanagement.services.check Periksa status konsumen layanan. Lihat services.check
servicemanagement.services.quota Mengalokasikan kuota untuk konsumen layanan. Lihat services.allocateQuota
servicemanagement.services.report Laporkan penggunaan layanan. Lihat services.report

Tabel berikut menunjukkan izin yang diperlukan untuk setiap metode Service Management API, jika berlaku. Informasi ini juga didokumentasikan dalam Referensi API:

Metode Izin yang Diperlukan
services.delete servicemanagement.services.delete pada service_name yang ditentukan.
services.get servicemanagement.services.get pada service_name yang ditentukan.
services.getConfig servicemanagement.services.get pada service_name yang ditentukan.
services.undelete servicemanagement.services.delete pada service_name yang ditentukan.
services.configs.create servicemanagement.services.update pada service_name yang ditentukan.
services.configs.get servicemanagement.services.get pada service_name yang ditentukan.
services.configs.list servicemanagement.services.get pada service_name yang ditentukan.
services.configs.submit servicemanagement.services.update pada service_name yang ditentukan.
services.rollouts.create servicemanagement.services.update pada service_name yang ditentukan.
services.rollouts.get servicemanagement.services.get pada service_name yang ditentukan.
services.rollouts.list servicemanagement.services.get pada service_name yang ditentukan.

Peran IAM

Dengan Identity and Access Management, izin diberikan dengan mengikat pengguna ke peran. Lihat Memahami Peran untuk detailnya.

Tabel berikut mencantumkan peran yang berlaku untuk layanan:

Peran Izin
roles/viewer servicemanagement.services.get
servicemanagement.services.list
roles/editor Semua izin roles/viewer, ditambah

servicemanagement.services.bind
servicemanagement.services.check
servicemanagement.services.create
servicemanagement.services.delete
servicemanagement.services.quota
servicemanagement.services.report
servicemanagement.services.update
roles/owner Semua izin roles/editor, ditambah

servicemanagement.services.getIamPolicy
servicemanagement.services.setIamPolicy
roles/servicemanagement.admin monitoring.timeSeries.list
resourcemanager.folders.get
resourcemanager.folders.list
resourcemanager.organizations.get
resourcemanager.projects.get
resourcemanager.projects.list
serviceconsumermanagement.consumers.get
serviceconsumermanagement.quota.get
serviceconsumermanagement.quota.folders.list
resourcemanager.organizations.get
resourcemanager.projects.get
resourcemanager.projects.list
serviceconsumermanagement.consumers.get
serviceconsumermanagement.quota.get
serviceconsumermanagement.quota.folders.list
serviceconsumermanagement.tenancyu.addResource.servicemanagementmanagement.tenancy.











roles/servicemanagement.configEditor servicemanagement.services.get
servicemanagement.services.update
roles/servicemanagement.reporter servicemanagement.services.report
roles/servicemanagement.serviceConsumer servicemanagement.services.bind
roles/servicemanagement.serviceController servicemanagement.services.check
servicemanagement.services.get
servicemanagement.services.quota
servicemanagement.services.report

Mengelola kebijakan

IAM mengevaluasi kebijakan secara hierarkis: resource turunan selalu mewarisi kebijakan induknya. Untuk Service Management API, setiap layanan terkelola adalah resource turunan dari project pembuat layanannya. Oleh karena itu, peran yang diberikan pada project produsen layanan berlaku untuk semua layanan terkelola yang termasuk dalam project tersebut. Baca bagian Mengelola Kebijakan untuk mengetahui petunjuk mengenai cara memberikan peran di level project.

Anda juga dapat mengelola kebijakan IAM untuk setiap layanan. Bagian berikut menjelaskan cara mengelola peran tingkat layanan menggunakan Google Cloud Console, Service Management API, dan Google Cloud CLI.

Mengelola akses menggunakan Konsol Google Cloud

  1. Buka halaman Endpoint di konsol Google Cloud.

    Buka halaman Endpoint

  2. Klik layanan yang ingin Anda kelola aksesnya.
  3. Klik link "PERMISSIONS" di bagian atas halaman. Tindakan ini akan mengaktifkan dan menonaktifkan panel info.
  4. Dari panel info, Anda dapat melihat daftar anggota saat ini, menambahkan anggota baru, dan menghapus anggota, untuk peran tingkat layanan apa pun.

Mengelola akses menggunakan gcloud CLI

gcloud CLI mencakup perintah gcloud endpoints services guna mengelola kebijakan IAM untuk layanan terkelola:

  • endpoints services get-iam-policy
    • Menampilkan kebijakan IAM layanan.
  • endpoints services check-iam-policy
    • Periksa kebijakan IAM layanan.
  • endpoints services add-iam-policy-binding
    • Menambahkan anggota ke peran.
  • endpoints services remove-iam-policy-binding
    • Menghapus anggota dari peran.

Contoh:

# Show the IAM policy of service "endpointsapis.appspot.com".
gcloud endpoints services get-iam-policy endpointsapis.appspot.com

# The above command may produce an output similar to this:
bindings:
- members:
  - user:email1@gmail.com
  - group:group1@googlegroups.com
  role: roles/servicemanagement.serviceConsumer

# Add a user to "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services add-iam-policy-binding endpointsapis.appspot.com --member "user:email1@gmail.com" --role "roles/servicemanagement.serviceConsumer"

# Add a group to "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services add-iam-policy-binding endpointsapis.appspot.com --member "group:group1@googlegroups.com" --role "roles/servicemanagement.serviceConsumer"

# Remove a user from "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services remove-iam-policy-binding endpointsapis.appspot.com --member "user:email1@gmail.com" --role "roles/servicemanagement.serviceConsumer"

# Remove a group from "roles/servicemanagement.serviceConsumer" role.
gcloud endpoints services remove-iam-policy-binding endpointsapis.appspot.com --member "group:group1@googlegroups.com" --role "roles/servicemanagement.serviceConsumer"

Mengelola akses menggunakan Service Management API

Service Management API menyertakan IAM Policy API untuk mengelola kebijakan tingkat layanan dan tingkat konsumen. Anda dapat menggunakan perintah gcurl untuk bereksperimen dengan metode API. Lihat Memulai untuk langkah-langkah penyiapan awal.

Contoh:

# View the current IAM policy on service "endpointsapis.appspot.com".
gcurl -d '{}' https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com:getIamPolicy

# View the current IAM policy on service "endpointsapis.appspot.com" and consumer "12345".
gcurl -d '{}' https://servicemanagement.googleapis.com/v1/services/endpointsapis.appspot.com/consumers/12345:getIamPolicy