Kontrol akses menentukan siapa yang memiliki izin untuk mengakses layanan dan resource di project Google Cloud. Di App Engine, ada beberapa kasus penggunaan terpisah untuk menyiapkan kontrol akses:
Memberikan akses kepada anggota tim ke project Google Cloud Anda agar mereka dapat menyiapkan layanan dan men-deploy aplikasi.
Memberi aplikasi Anda akses ke layanan Google Cloud, seperti Cloud Storage. Semua layanan Cloud memerlukan autentikasi dan otorisasi untuk setiap panggilan API, termasuk panggilan dari aplikasi App Engine Anda.
Memberi pengguna Anda akses ke resource di project Google Cloud. Meskipun tidak umum, ada kasus penggunaan ketika aplikasi Anda perlu meminta akses ke resource Cloud atas nama pengguna. Misalnya, aplikasi Anda mungkin perlu mengakses data milik pengguna.
Halaman ini memberikan ringkasan tentang cara menyiapkan kontrol akses pada setiap kasus penggunaan.
Untuk mengetahui informasi latar belakang tentang cara Google Cloud Platform menangani kontrol akses, baca ringkasan Identity and Access Management (IAM).
Memberikan akses ke anggota tim
Untuk memberikan akses ke project Google Cloud Anda kepada developer, buat salah satu atau kedua hal berikut:
Akun pengguna, yang terkait dengan akun Google dan dimaksudkan untuk mewakili individu tertentu dalam project Anda.
Akun pengguna dapat digunakan untuk melakukan autentikasi dari alat berikut:
- Konsol Google Cloud
- Google Cloud CLI
- IDE dan alat pembuatan yang menggunakan gcloud CLI untuk menguji dan men-deploy aplikasi App Engine
Akun layanan, yang dimaksudkan untuk mewakili aplikasi atau proses, bukan seseorang. Gunakan akun layanan dalam proses pembuatan, pengujian, dan deployment otomatis, terutama jika beberapa developer dapat menjalankan proses ini.
Akun layanan dapat digunakan untuk melakukan autentikasi dari alat berikut:
- gcloud CLI
- IDE dan alat pembuatan yang menggunakan alat gcloud CLI untuk menguji dan men-deploy aplikasi App Engine
Membuat akun pengguna
Buka halaman IAM di konsol Google Cloud.
Klik Pilih project, pilih project, lalu klik Buka.
Klik Tambahkan.
Masukkan alamat email.
Pilih peran yang memberikan akses ke fitur App Engine.
Jika pengguna juga memerlukan akses ke layanan Cloud lainnya, pilih peran yang memberikan akses ke layanan Cloud lainnya.
Klik Simpan.
Pengguna kini dapat login ke Konsol Google Cloud serta melakukan otorisasi gcloud CLI.
Anda juga dapat membuat akun pengguna dari gcloud, REST API, atau library klien.
Membuat akun layanan
Buka halaman Akun Layanan di konsol Google Cloud.
Pilih project Anda lalu klik Buka.
Klik Buat Akun Layanan.
Masukkan nama akun layanan. Nama ini harus mudah digunakan untuk ditampilkan.
Klik Buat.
Pilih peran yang memberikan akses ke fitur App Engine.
Jika akun layanan juga memerlukan akses ke layanan Cloud lainnya, pilih peran yang memberikan akses ke layanan Cloud lainnya.
Klik Lanjutkan.
Atau, tentukan akun pengguna yang dapat mengelola akun layanan. Anda juga dapat menentukan akun pengguna yang dapat menggunakan akun layanan untuk mengakses semua resource secara tidak langsung yang dapat diakses oleh akun layanan.
Klik Simpan.
Daftar akun layanan yang ada akan muncul.
Atau, jika Anda perlu menggunakan akun layanan di luar Google Cloud, ikuti petunjuk untuk membuat kunci akun layanan.
Langkah berikutnya
- Jika Anda menggunakan akun layanan dalam proses pembuatan dan deployment otomatis, otorisasikan gcloud CLI dengan akun layanan.
- Jika Anda menggunakan akun layanan dengan IDE, ikuti petunjuk yang diberikan oleh IDE.
- Jika perlu menggunakan identitas unik untuk versi aplikasi App Engine Anda saat mengakses layanan Google Cloud lainnya atau menjalankan tugas, Anda dapat menentukan akun layanan yang dikelola pengguna di App Engine.
Memberi aplikasi Anda akses ke layanan Cloud
Setiap panggilan ke layanan Cloud harus diautentikasi dan diberi otorisasi, termasuk panggilan dari aplikasi App Engine ke layanan Cloud lainnya seperti Cloud Storage.
Secara default, panggilan dari aplikasi App Engine Anda ke layanan di project yang sama akan diotorisasi. Berikut adalah cara kerja alur default:
Untuk memulai panggilan ke layanan Cloud, aplikasi Anda akan membuat objek klien, yang berisi kredensial dan data lain yang diperlukan aplikasi untuk berinteraksi dengan layanan. Jika kredensial di konstruktor klien tidak Anda tetapkan, klien akan mencari kredensial di lingkungan aplikasi.
Berikut ini contoh pembuatan klien untuk Cloud Storage:
Go
Java
Node.js
PHP
Python
Ruby
- Secara default, lingkungan aplikasi berisi kredensial dari
akun
layanan App Engine default.
Akun layanan ini dibuat oleh Google saat Anda membuat aplikasi App Engine dan diberi izin penuh untuk mengelola serta menggunakan semua layanan Cloud dalam sebuah project Google Cloud.
Anda dapat mengganti alur default ini dengan melakukan salah satu hal berikut:
Menetapkan variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS
. Jika variabel ini ditetapkan, layanan Cloud akan menggunakan kredensial yang ditentukan oleh variabel, bukan akun layanan default.Tentukan kredensial saat Anda membuat instance objek
Client
untuk layanan Cloud. Misalnya, jika aplikasi memanggil layanan Cloud di project lain, Anda mungkin perlu meneruskan kredensial secara manual.
- Simpan kredensial Anda di lokasi yang aman seperti Firestore dalam mode Datastore (Datastore), lalu ambil di runtime.
- Simpan kredensial dalam kode Anda, tetapi buat enkripsi kredensial dengan keystore, seperti Cloud KMS.
Untuk mempelajari keuntungan dari setiap pendekatan, lihat Memilih solusi pengelolaan rahasia.
Memberi pengguna akses ke resource Cloud
Jika ingin aplikasi Anda membaca data pengguna dari layanan Google lain, Anda harus menyiapkan OAuth 2.0 untuk Aplikasi Server Web. Misalnya, jika Anda ingin mengambil data pengguna dari Google Drive dan memasukkannya ke aplikasi Anda, gunakan OAuth 2.0 untuk Aplikasi Server Web agar dapat berbagi data tertentu sekaligus menjaga data lainnya tetap pribadi, seperti nama pengguna dan sandi.
Delegasi otoritas di seluruh domain Google Workspace
Jika Anda memiliki domain Google Workspace (sebelumnya G Suite), administrator domain dapat memberikan aplikasi otorisasi untuk mengakses data pengguna atas nama pengguna di domain Google Workspace. Misalnya, aplikasi yang menggunakan API Google Kalender untuk menambahkan acara ke kalender semua pengguna dalam domain Google Workspace akan menggunakan akun layanan untuk mengakses API Google Kalender atas nama pengguna.
Memberikan akun layanan otorisasi untuk mengakses data atas nama pengguna di suatu domain terkadang disebut sebagai "mendelegasikan otoritas seluruh domain" ke akun layanan. Opsi ini masih menggunakan OAuth 2.0, dan memerlukan administrator domain Google Workspace untuk memberikan otorisasi seluruh domain ke akun layanan.
Menentukan akun layanan
App Engine memungkinkan Anda menggunakan dua jenis akun layanan:
Akun layanan default App Engine adalah identitas default untuk semua versi aplikasi App Engine Anda jika akun layanan yang dikelola pengguna tidak ditentukan.
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.
Akun layanan yang dikelola pengguna adalah akun layanan yang Anda buat di Identity and Access Management (IAM). Anda dapat menentukan akun layanan yang dikelola pengguna untuk suatu versi, lalu akun tersebut akan digunakan saat mengakses layanan App Engine lain dan menjalankan tugas untuk versi tersebut.