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
- Buka tab Versions App Engine di konsol. Buka Versions
- 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
Buka halaman App Engine:
Membuat project Google Cloud.
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
Buka tab Setelan Aplikasi App Engine di konsol dan klik Edit Setelan Aplikasi.
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. 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.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 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.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 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.iam.gserviceaccount.com</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.