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, serta cara menggunakannya untuk mengontrol akses.

Resource IAM

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

Anda memerlukan izin yang berbeda untuk menggunakan dan mengelola resource yang berbeda, lihat bagian berikut untuk mengetahui 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 Menghapus 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 di 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 Melaporkan 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 Pengelolaan Akses dan Identitas, izin diberikan dengan mengikat pengguna ke peran. Lihat Memahami Peran untuk mengetahui 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.update
serviceconsumermanagement.tenancyu.addResource
serviceconsumermanagement.tenancyu.create
serviceconsumermanagement.tenancyu.delete
serviceconsumermanagement.tenancyu.list
serviceconsumermanagement.tenancyu.removeResource
servicemanagement.services.bind
servicemanagement.services.check
servicemanagement.services.create
servicemanagement.services.delete
servicemanagement.services.get
servicemanagement.services.getIamPolicy
servicemanagement.services.list
servicemanagement.services.quota
servicemanagement.services.report
servicemanagement.services.setIamPolicy
servicemanagement.services.update
serviceusage.quotas.get
serviceusage.services.get
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 produsen layanannya. Oleh karena itu, peran yang diberikan pada project produsen layanan berlaku untuk semua layanan terkelola yang termasuk dalam project tersebut. Lihat Mengelola Kebijakan untuk mengetahui petunjuk pemberian peran di tingkat project.

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

Mengelola akses menggunakan Konsol Google Cloud

  1. Buka halaman Endpoints di konsol Google Cloud.

    Buka halaman Endpoints

  2. Klik layanan yang aksesnya ingin Anda kelola.
  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 menyertakan perintah gcloud endpoints services untuk 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 mencakup IAM Policy API untuk mengelola kebijakan tingkat layanan dan tingkat konsumen. Anda dapat menggunakan perintah gcurl untuk bereksperimen dengan metode API. Lihat Memulai untuk mengetahui 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