Menggunakan peniruan akun layanan

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 berumur pendek untuk akun layanan yang memiliki otorisasi yang diperlukan oleh 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 harus mengaktifkan Service Account Credentials API dalam project.

Enable the API

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.

Peran yang telah ditetapkan 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

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

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 selanjutnya