Mengonfigurasi akun layanan App Engine

Aplikasi App Engine memerlukan akun layanan untuk mengakses layanan Google Cloud lainnya dan menjalankan tugas.

Ada dua jenis akun layanan di App Engine dan akun layanan apa pun di project Cloud Anda dapat ditetapkan untuk bertindak sebagai akun layanan default atau per versi tingkat aplikasi:

  • Akun layanan default tingkat aplikasi - Akun layanan ini digunakan untuk semua layanan yang di-deploy saat Anda tidak mengonfigurasi "akun layanan per versi". Anda dapat memilih untuk menetapkan akun layanan yang Anda buat atau menggunakan akun layanan default yang dibuat otomatis yang dibuat saat pertama kali men-deploy layanan ke project Cloud Anda. Misalnya, akun layanan default App Engine (PROJECT_ID@appspot.gserviceaccount.com).

  • Akun layanan per versi - Akun layanan yang dikonfigurasi sebagai identitas untuk versi tertentu dari layanan yang di-deploy. Saat men-deploy versi yang sudah ada atau versi baru, Anda dapat menentukan akun layanan agar berfungsi sebagai identitas versi tersebut. Misalnya, jika versi memerlukan izin yang berbeda dengan akun layanan default tingkat aplikasi, Anda dapat menetapkan akun layanan yang khusus untuk versi tersebut.

Lihat akun layanan yang dikonfigurasi

Untuk melihat akun layanan default level aplikasi saat ini, jalankan perintah gcloud app describe.

Untuk melihat akun layanan yang digunakan oleh versi yang di-deploy:

gcloud

Jalankan perintah gcloud app versions describe:

  gcloud app versions describe VERSION_ID --service=SERVICE_NAME

Replace:

  • VERSION_ID dengan ID versi.
  • SERVICE_NAME dengan nama layanan yang Anda buat.

Konsol

  1. Buka tab Versions App Engine di konsol. Buka Versions
  2. Temukan alamat email akun layanan khusus versi App Engine Anda. Contoh: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Menetapkan akun layanan default tingkat aplikasi

Secara default, akun layanan default tingkat aplikasi adalah akun layanan PROJECT_ID@appspot.gserviceaccount.com yang dibuat otomatis. Anda dapat menetapkan akun layanan lain untuk bertindak sebagai akun layanan default tingkat aplikasi menggunakan Google Cloud CLI, Google Cloud Console, atau Admin API.

Menentukan akun layanan default tingkat aplikasi selama pembuatan aplikasi

Selama proses awal pembuatan aplikasi App Engine, Anda dapat memilih untuk menetapkan akun layanan yang ingin dibuat atau menggunakan akun layanan yang dibuat otomatisPROJECT_ID@appspot.gserviceaccount.com untuk bertindak sebagai default.

Untuk membuat aplikasi App Engine dan menetapkan akun layanan default tingkat aplikasi, Anda dapat menggunakan salah satu opsi berikut:

gcloud

Jalankan perintah gcloud app create:

gcloud app create --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Replace:

  • SERVICE_ACCOUNT_NAME dengan nama akun layanan yang Anda buat.
  • PROJECT_ID dengan ID project Google Cloud tempat Anda ingin menetapkan akun layanan.

Konsol

  1. Buka halaman App Engine:

    Buka App Engine

  2. Membuat project Google Cloud.

  3. Di bagian Create App, pilih akun layanan dari Identity and API access.

Memperbarui akun layanan default tingkat aplikasi untuk aplikasi Anda

Untuk memperbarui akun layanan default tingkat aplikasi untuk aplikasi, Anda dapat menggunakan salah satu cara berikut untuk menetapkan akun layanan baru:

gcloud

Jalankan perintah gcloud app update.

    gcloud app update --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Replace:

  • SERVICE_ACCOUNT_NAME dengan nama akun layanan yang Anda buat.
  • PROJECT_ID dengan ID project Google Cloud tempat Anda ingin menetapkan akun layanan.

Setiap versi baru yang Anda deploy selanjutnya akan menggunakan akun layanan default tingkat aplikasi baru, kecuali jika Anda secara eksplisit menetapkan akun layanan khusus versi.

Konsol

  1. Buka tab Setelan Aplikasi App Engine di konsol dan klik Edit Setelan Aplikasi.

    Buka Setelan Aplikasi

  2. Pilih akun layanan default tingkat aplikasi dari Pilih akun layanan, lalu klik Simpan.

    Anda akan dialihkan ke tab Setelan Aplikasi tempat Anda dapat melihat alamat email akun layanan default level aplikasi yang telah diupdate. Contoh: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.

    Setiap versi baru yang Anda deploy selanjutnya akan menggunakan akun layanan default tingkat aplikasi baru, kecuali jika Anda secara eksplisit menetapkan akun layanan khusus versi.

Men-deploy dengan akun layanan khusus versi

Anda dapat menetapkan akun layanan khusus versi hanya selama deployment versi baru. Dengan menggunakan akun layanan khusus versi, Anda dapat memberikan hak istimewa yang berbeda untuk setiap versi aplikasi, berdasarkan tugas spesifik yang dijalankannya, dan menghindari pemberian hak istimewa yang lebih dari yang diperlukan.

Anda harus memiliki akun layanan yang sudah ada sebelum men-deploy aplikasi.

Menetapkan akun layanan khusus versi

gcloud

Jalankan perintah gcloud app deploy:

  gcloud app deploy --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Replace:

  • SERVICE_ACCOUNT_NAME dengan nama akun layanan yang Anda buat.
  • PROJECT_ID dengan ID project Google Cloud tempat Anda ingin menetapkan akun layanan.

app.yaml

Dalam file app.yaml Anda, tentukan akun layanan dengan menambahkan elemen service_account:

service_account: SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Replace:

  • SERVICE_ACCOUNT_NAME dengan nama akun layanan yang Anda buat.
  • PROJECT_ID dengan ID project Google Cloud tempat Anda ingin menetapkan akun layanan.

Akun layanan default App Engine

Secara default, akun layanan PROJECT_ID@appspot.gserviceaccount.com yang dibuat otomatis memiliki peran Editor dalam project. Jika Anda men-deploy aplikasi App Engine menggunakan akun layanan PROJECT_ID@appspot.gserviceaccount.com yang dibuat otomatis, aplikasi Anda dapat mengakses semua resource dalam project.

Untuk akun layanan PROJECT_ID@appspot.gserviceaccount.com yang dibuat otomatis, jika Anda menggunakan batasan kebijakan organisasi untuk mencegah peran Editor default diberikan secara otomatis, Anda harus memperbarui peran secara manual. Peran yang Anda berikan ke akun layanan default App Engine harus memungkinkan aplikasi mengakses resource yang diperlukan. Untuk mempelajari cara memberikan peran ke akun layanan dan akun utama lainnya, lihat Mengelola akses ke akun layanan.

Untuk mengubah izin, menghapus, dan memulihkan akun layanan Anda, lihat Membuat dan mengelola akun layanan.