Jika akun utama yang Anda gunakan tidak memiliki izin yang diperlukan untuk menyelesaikan tugas, atau Anda ingin menggunakan akun layanan di lingkungan pengembangan, Anda dapat menggunakan peniruan akun layanan.
Saat menggunakan peniruan akun layanan, Anda akan memulai dengan akun utama yang diautentikasi (akun pengguna atau akun layanan) dan meminta kredensial dengan jangka waktu singkat untuk akun layanan yang memiliki otorisasi yang diperlukan dalam kasus penggunaan Anda. Akun utama yang diautentikasi harus memiliki izin yang diperlukan untuk meniru akun layanan.
Peniruan akun layanan lebih aman daripada menggunakan kunci akun layanan karena peniruan akun layanan memerlukan identitas yang diautentikasi sebelumnya, dan kredensial yang dibuat dengan menggunakan peniruan tidak akan dipertahankan. Sebagai perbandingan, autentikasi dengan kunci akun layanan tidak memerlukan autentikasi sebelumnya, dan kunci persisten merupakan kredensial berisiko tinggi jika diekspos.
Untuk informasi selengkapnya tentang peniruan akun layanan, lihat Peniruan akun layanan.
Sebelum memulai
Sebelum menggunakan peniruan akun layanan, Anda harus mengaktifkan API yang diperlukan dan memastikan bahwa Anda memiliki peran yang diperlukan.
Mengaktifkan API
Untuk meniru identitas akun layanan, Anda perlu mengaktifkan Service Account Credentials API di project Anda.
Peran yang diperlukan
Untuk memastikan akun utama memiliki izin
yang diperlukan untuk meniru akun layanan,
minta administrator untuk memberikan peran IAM
Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
) kepada akun utama di akun layanan.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran yang telah ditentukan ini berisi izin
iam.serviceAccounts.getAccessToken
,
yang diperlukan untuk
meniru akun layanan.
Administrator Anda mungkin juga dapat memberi akun utama izin ini dengan peran khusus atau peran bawaan lainnya.
Anda harus memberikan peran ini kepada akun utama, bahkan saat mengerjakan project yang Anda buat.
Untuk mengetahui informasi lebih lanjut tentang peran yang diperlukan untuk peniruan identitas, lihat Peran untuk autentikasi akun layanan.
Anda dapat menggunakan peniruan akun layanan menggunakan metode berikut:
- Menggunakan gcloud CLI
- Menyiapkan Kredensial Default Aplikasi untuk menggunakan library klien
- Membuat dan mengelola kredensial dengan jangka waktu singkat
Menggunakan gcloud CLI
gcloud CLI menyediakan cara mudah untuk menggunakan peniruan akun layanan. Metode ini berfungsi dengan baik jika Anda perlu menggunakan akun layanan untuk mengakses resource atau layanan Google Cloud menggunakan gcloud CLI.
Anda dapat meniru akun layanan untuk perintah gcloud CLI tertentu atau menyiapkan gcloud CLI agar menggunakan peniruan identitas untuk setiap perintah secara otomatis.
Menggunakan peniruan identitas untuk perintah gcloud CLI tertentu
Agar dapat menggunakan peniruan identitas untuk perintah gcloud CLI tertentu, gunakan
flag --impersonate-service-account
. Misalnya,
perintah berikut mencantumkan bucket penyimpanan, menggunakan identitas dan akses yang disediakan
oleh akun layanan tertentu:
gcloud storage buckets list --impersonate-service-account=SERVICE_ACCT_EMAIL
Saat flag ini digunakan, gcloud CLI akan meminta kredensial dengan jangka waktu singkat untuk akun layanan yang ditentukan, lalu menggunakannya untuk melakukan autentikasi ke API dan mengizinkan akses. Akun utama yang login ke gcloud CLI (biasanya akun pengguna Anda) harus memiliki izin yang diperlukan pada akun layanan.
Menggunakan peniruan identitas dengan gcloud CLI secara default
Untuk menyiapkan gcloud CLI agar menggunakan identitas dan akses yang disediakan oleh akun layanan secara default, Anda dapat menggunakan perintah konfigurasi gcloud CLI:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Dengan kumpulan properti konfigurasi ini, gcloud CLI meminta kredensial dengan jangka waktu singkat untuk akun layanan yang ditentukan, dan menggunakannya untuk melakukan autentikasi ke API serta mengizinkan akses ke resource untuk setiap perintah. Akun utama yang login ke gcloud CLI harus memiliki izin yang diperlukan di akun layanan.
Menyiapkan Kredensial Default Aplikasi untuk menggunakan library klien
Anda dapat menggunakan peniruan akun layanan untuk menyiapkan file Kredensial Default Aplikasi (ADC) lokal. Library klien yang mendukung peniruan identitas dapat menggunakan kredensial tersebut secara otomatis. File ADC lokal yang dibuat dengan menggunakan peniruan identitas didukung dalam bahasa berikut:
- C#
- Go
- Java
- Node.js
- Python
Menggunakan peniruan akun layanan untuk membuat file ADC lokal:
gcloud auth application-default login --impersonate-service-account SERVICE_ACCT_EMAIL
Sekarang Anda dapat menggunakan library klien menggunakan bahasa yang didukung dengan cara yang sama seperti yang Anda lakukan setelah menyiapkan file ADC lokal dengan kredensial pengguna. Kredensial ditemukan secara otomatis oleh library autentikasi. Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan library klien.
Membuat dan mengelola kredensial dengan jangka waktu singkat
Jika tidak satu pun metode sebelumnya menangani kasus penggunaan, Anda harus membuat dan mengelola token yang memiliki jangka waktu singkat. Misalnya, jika Anda memerlukan jenis kredensial lain yang memiliki jangka waktu singkat (selain token akses), atau jika Anda perlu menggunakan peniruan identitas di lingkungan produksi, gunakan metode ini.
Untuk informasi tentang membuat token dengan jangka waktu singkat, lihat Membuat kredensial dengan jangka waktu singkat untuk akun layanan.
Langkah berikutnya
- Pelajari lebih lanjut cara ADC menemukan kredensial.
- Pelajari metode autentikasi.