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@).

  • 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.

Menetapkan akun layanan default tingkat aplikasi

Secara default, akun layanan default tingkat aplikasi adalah akun layanan PROJECT_ID@ 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@ 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.

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.

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..

    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. Akun layanan khusus versi Anda harus berada dalam project yang sama dengan tempat Anda men-deploy aplikasi.

Menetapkan akun layanan khusus versi

gcloud

Jalankan perintah gcloud app deploy:

  gcloud app deploy --service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.

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 khusus versi Anda harus berada di project yang sama dengan tempat Anda men-deploy aplikasi.

app.yaml

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

service_account: SERVICE_ACCOUNT_NAME@PROJECT_ID.

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 khusus versi Anda harus berada di project yang sama dengan tempat Anda men-deploy aplikasi.

appengine-web.xml

Jika Anda menggunakan runtime Java dan menyertakan layanan paket lama App Engine, tentukan akun layanan dengan menambahkan elemen <service-account> dalam file appengine-web.xml:

<service-account>SERVICE_ACCOUNT_NAME@PROJECT_ID.</service-account>

Ganti:

  • 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 khusus versi Anda harus berada di project yang sama dengan tempat Anda men-deploy aplikasi.

Akun layanan default App Engine

Akun layanan App Engine default dibuat secara otomatis saat Anda menggunakan App Engine.

Bergantung pada konfigurasi kebijakan organisasi Anda, akun layanan default mungkin secara otomatis diberi peran Editor di project Anda. Sebaiknya Anda menonaktifkan pemberian peran otomatis dengan menerapkan batasan kebijakan organisasi iam.automaticIamGrantsForDefaultServiceAccounts. Jika Anda membuat organisasi setelah 3 Mei 2024, batasan ini akan diterapkan secara default.

Jika Anda menonaktifkan pemberian peran otomatis, Anda harus menentukan peran mana yang akan diberikan ke akun layanan default, lalu memberikan peran tersebut secara manual.

Jika akun layanan default sudah memiliki peran Editor, sebaiknya ganti peran Editor dengan peran yang kurang permisif. Untuk mengubah peran akun layanan dengan aman, gunakan Policy Simulator untuk melihat dampak perubahan, lalu berikan dan cabut peran yang sesuai.

Untuk mempelajari cara memberikan peran ke akun layanan dan akun utama lainnya, lihat Mengelola akses ke project, folder, dan organisasi.

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