Mengontrol Akses di Admin API

App Engine Admin API menggunakan Identity and Access Management (IAM) untuk kontrol akses.

Kontrol akses di App Engine Admin API dapat dikonfigurasi di level project. Akses ke project Google Cloud dan resource di dalamnya dapat diberikan ke akun pengguna, domain, grup, atau akun layanan. Contoh:

  • Berikan akses ke semua resource dalam project kepada pengguna perorangan atau akun layanan.
  • Berikan akses sebagian ke resource dalam project. Misalnya, akses hanya baca ke resource, atau kemampuan untuk men-deploy versi baru, tetapi tidak untuk mengonfigurasi traffic ke versi tersebut.

Untuk mengetahui deskripsi mendetail tentang IAM dan fitur-fiturnya, lihat dokumentasi IAM.

Setiap metode Admin API mengharuskan pemanggil memiliki izin yang diperlukan. Lihat bagian berikut untuk mengetahui daftar semua izin dan peran yang didukung Admin API.

Izin dan peran

Bagian ini merangkum izin dan peran yang didukung Admin API.

Untuk mengetahui detail tentang peran App Engine, lihat Kontrol Akses App Engine.

Izin yang diperlukan

Tabel berikut mencantumkan izin yang harus dimiliki pemanggil untuk memanggil setiap metode:

Metode Izin yang Diperlukan
apps.create appengine.applications.create pada resource Application yang diminta.
apps.get appengine.applications.get pada resource Application yang diminta.
apps.patch appengine.applications.update pada resource Application yang diminta.
apps.repair appengine.applications.update pada resource Application yang diminta.
apps.authorizedCertificates.create appengine.applications.update pada resource Application yang diminta.
apps.authorizedCertificates.delete appengine.applications.update pada resource Application yang diminta.
apps.authorizedCertificates.get appengine.applications.get pada resource Application yang diminta.
apps.authorizedCertificates.list appengine.applications.get pada resource Application yang diminta.
apps.authorizedCertificates.patch appengine.applications.update pada resource Application yang diminta.
apps.authorizedDomains.list appengine.applications.get pada resource Application yang diminta.
apps.domainMappings.create appengine.applications.update pada resource Application yang diminta.
apps.domainMappings.delete appengine.applications.update pada resource Application yang diminta.
apps.domainMappings.get appengine.applications.get pada resource Application yang diminta.
apps.domainMappings.list appengine.applications.get pada resource Application yang diminta.
apps.domainMappings.patch appengine.applications.update pada resource Application yang diminta.
apps.locations.get appengine.applications.get pada resource Application yang diminta.
apps.locations.list appengine.applications.get pada resource Application yang diminta.
apps.operations.get appengine.applications.get pada resource Application yang diminta.
apps.operations.list appengine.applications.get pada resource Application yang diminta.
apps.services.delete appengine.services.delete pada resource Service yang diminta.
apps.services.get appengine.services.get pada resource Service yang diminta.
apps.services.list appengine.services.list pada resource Application yang diminta.
apps.services.patch appengine.services.update pada resource Service yang diminta.
apps.services.versions.create appengine.versions.create pada resource Service yang diminta.
apps.services.versions.delete appengine.versions.delete pada resource Version yang diminta.
apps.services.versions.get appengine.versions.get pada resource Version yang diminta.
apps.services.versions.list appengine.versions.list pada resource Service yang diminta.
apps.services.versions.patch appengine.versions.update pada resource Version yang diminta.
apps.services.versions.instances.debug appengine.instances.enableDebug pada resource Instance yang diminta.
apps.services.versions.instances.delete appengine.instances.delete pada resource Instance yang diminta.
apps.services.versions.instances.get appengine.instances.get pada resource Instance yang diminta.
apps.services.versions.instances.list appengine.instances.list pada resource Version yang diminta.

Peran

Tabel berikut mencantumkan peran IAM App Engine Admin API beserta daftar semua izin yang disertakan dalam setiap peran. Perhatikan bahwa setiap izin berlaku untuk jenis resource tertentu.

Peran Menyertakan izin

App Engine Admin

/roles/appengine.appAdmin

Akses Baca/Tulis/Ubah ke semua konfigurasi dan setelan aplikasi.

appengine.applications.disable

appengine.applications.get
appengine.applications.update
appengine.instances.delete
appengine.instances.enableDebug
appengine.instances.get
appengine.instances.list
appengine.instances.update

appengine.operations.cancel

appengine.operations.delete

appengine.operations.get
appengine.operations.list
appengine.runtimes.actAsAdmin

appengine.services.delete
appengine.services.get
appengine.services.list
appengine.services.update
appengine.versions.create
appengine.versions.delete
appengine.versions.get
appengine.versions.list
appengine.versions.update
resourcemanager.projects.get
resourcemanager.projects.list

App Engine Deployer

/roles/appengine.deployer

Akses hanya baca ke semua konfigurasi dan setelan aplikasi.

Akses tulis hanya untuk membuat versi baru; tidak dapat memodifikasi versi yang ada selain menghapus versi yang tidak menerima traffic. Tidak dapat mengonfigurasi traffic ke versi tertentu.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.create

appengine.services.get
appengine.services.list
appengine.versions.create
appengine.versions.delete
appengine.versions.get
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

Admin Layanan App Engine

/roles/appengine.serviceAdmin

Akses hanya baca ke semua konfigurasi dan setelan aplikasi.

Akses tulis ke setelan tingkat layanan dan tingkat versi, termasuk konfigurasi traffic. Tidak dapat men-deploy versi aplikasi.

appengine.applications.get
appengine.instances.delete
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.delete
appengine.services.get
appengine.services.list
appengine.services.update
appengine.versions.delete
appengine.versions.get
appengine.versions.list
appengine.versions.update
resourcemanager.projects.get
resourcemanager.projects.list

App Engine Viewer

/roles/appengine.appViewer

Akses hanya baca ke semua konfigurasi dan setelan aplikasi.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.get
appengine.services.list
appengine.versions.get
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

Penampil Kode App Engine

/roles/appengine.codeViewer

Akses hanya baca ke semua konfigurasi dan setelan aplikasi, dan ke kode sumber yang di-deploy.

appengine.applications.get
appengine.instances.get
appengine.instances.list
appengine.operations.get
appengine.operations.list
appengine.services.get
appengine.services.list
appengine.versions.get
appengine.versions.getFileContents
appengine.versions.list
resourcemanager.projects.get
resourcemanager.projects.list

Perhatikan bahwa peran roles/owner, roles/editor, dan roles/viewer juga mencakup izin untuk layanan Google Cloud lainnya. Untuk mengetahui informasi selengkapnya tentang peran dasar ini, lihat Kontrol Akses.

Izin tidak tersedia untuk peran khusus

Jika ingin mengonfigurasi akses di luar peran IAM yang telah ditetapkan, Anda dapat membuat peran khusus. Namun, izin berikut tidak tersedia untuk peran khusus:

  • appengine.applications.disable
  • appengine.applications.list
  • appengine.instances.update
  • appengine.operations.cancel
  • appengine.operations.delete
  • appengine.services.create

Izin ini tidak diperlukan untuk semua operasi.

Mengontrol akses melalui Konsol Google Cloud

Anda dapat menggunakan Konsol Google Cloud untuk mengelola kontrol akses ke project Google Cloud Anda.

Menetapkan kontrol akses tingkat project

Untuk memberikan akses kepada akun utama ke project Google Cloud dan resource-nya, lihat Memberikan, Mengubah, dan Mencabut Akses.

Menetapkan kontrol akses akun layanan

Anda dapat membuat akun layanan di project Google Cloud untuk memberi aplikasi Anda akses terprogram ke layanan Google Cloud. Misalnya, gunakan akun layanan untuk mengizinkan satu project Google Cloud mengirim permintaan HTTP dengan App Engine Admin API ke project Google Cloud lainnya.

Untuk membuat akun layanan dan memberikan akses, lihat topik IAM berikut: