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