Halaman ini menjelaskan cara membuat kredensial yang berlaku singkat untuk akun layanan, yang dapat Anda gunakan untuk meniru identitas akun layanan. Bergantung pada jenis token yang Anda buat, token yang berlaku singkat memberikan identitas (untuk token ID) atau izin (untuk token akses) yang terkait dengan akun layanan.
Jika arsitektur sistem Anda mengharuskan Anda untuk menggunakan serangkaian panggilan pembuatan token, Anda dapat menggunakan rantai delegasi yang terdiri dari beberapa akun layanan. Dalam sebagian besar kasus, metode langsung, seperti yang dijelaskan di halaman ini, sudah cukup.
Sebelum memulai
-
Enable the IAM and Service Account Credentials APIs:
gcloud services enable iam.googleapis.com
iamcredentials.googleapis.com Menyiapkan autentikasi.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Go
Untuk menggunakan contoh Go di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Java
Untuk menggunakan contoh Java di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Node.js
Untuk menggunakan contoh Node.js di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Python
Untuk menggunakan contoh Python di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud.
Pahami akun layanan IAM.
Pahami peniruan identitas akun layanan.
Pahami jenis token yang Anda butuhkan, dan gunakan langkah-langkah yang sesuai yang disediakan di bagian di bawah ini:
Membuat token akses yang berlaku singkat
Token akses diterima untuk autentikasi oleh sebagian besar Google API. Saat Anda membuat token akses dengan menggunakan peniruan akun layanan, token akses akan diberikan tanpa token refresh, yang berarti bahwa saat masa berlaku token berakhir, Anda harus mengulangi proses peniruan identitas untuk membuat token akses baru.
Untuk mengetahui informasi selengkapnya, lihat Token akses.
Untuk membuat token akses yang berlaku singkat, selesaikan tugas berikut:
Memberikan izin yang diperlukan
Permintaan langsung melibatkan dua identitas: pemanggil yang meminta kredensial, dan akun layanan tempat kredensial tersebut dibuat. Cara Anda menyiapkan izin bergantung pada apakah pemanggil melakukan autentikasi sebagai akun layanan atau sebagai akun pengguna.
Jika Anda ingin menjalankan perintah REST atau gcloud CLI pada halaman ini dalam lingkungan pengembangan lokal, pemanggil dapat diwakili oleh kredensial pengguna. Untuk workload otomatis, seperti aplikasi yang berjalan di Compute Engine, pemanggil harus diwakili oleh akun layanan.
Akun layanan
Saat aplikasi panggilan menggunakan akun layanan sebagai identitasnya, entity utama berikut akan terlibat:
Akun layanan pemanggil (
CALLER_SA
)Akun layanan ini mewakili aplikasi panggilan, yang mengeluarkan permintaan untuk kredensial yang berlaku singkat.
-
Akun layanan yang memiliki hak istimewa (
PRIV_SA
)Akun layanan ini diberi peran IAM yang diperlukan untuk token yang berlaku singkat. Ini adalah akun layanan tempat token yang berlaku singkat dibuat.
Untuk memberi
CALLER_SA
izin untuk membuat kredensial yang berlaku singkat untukPRIV_SA
, Anda memberikanCALLER_SA
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
) padaPRIV_SA
.Berikan peran yang diperlukan pada
PRIV_SA
:Konsol
-
Di konsol Google Cloud, buka halaman Akun Layanan.
- Pilih project.
-
Klik alamat email akun layanan yang memiliki hak istimewa,
PRIV_SA
. - Klik tab Izin.
- Pada Akun utama dengan akses ke akun layanan ini, klik Berikan Akses.
-
Masukkan alamat email akun layanan pemanggil,
CALLER_SA
.Misalnya,
demo@my-project.iam.gserviceaccount.com
. -
Pilih peran Pembuat Token Akun Layanan
(
roles/iam.serviceAccountTokenCreator
). - Klik Simpan untuk memberikan peran ke akun layanan.
gcloud
Perintah
gcloud iam service-accounts add-iam-policy-binding
memberikan peran pada akun layanan.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token dibuat. -
CALLER_SA
: Alamat email akun layanan yang mewakili aplikasi yang meminta token yang berlaku singkat.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Anda akan melihat respons seperti berikut:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }
REST
-
Baca kebijakan izin untuk
PRIV_SA
:Metode
serviceAccounts.getIamPolicy
mendapatkan kebijakan izin akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Meminta isi JSON:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Jika Anda belum memberikan peran apa pun ke akun layanan, respons hanya akan berisi nilai
etag
. Sertakan nilaietag
tersebut di langkah berikutnya. -
Ubah kebijakan izinkan untuk memberi
CALLER_SA
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
).Misalnya, untuk mengubah contoh respons dari langkah sebelumnya, tambahkan kode berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Tulis kebijakan izin yang telah diperbarui:
Metode
serviceAccounts.setIamPolicy
menetapkan kebijakan izin yang telah diperbarui untuk akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.-
POLICY
: Representasi JSON dari kebijakan yang ingin Anda tetapkan. Untuk informasi selengkapnya tentang format kebijakan, lihat Referensi kebijakan.Misalnya, untuk menetapkan kebijakan izinkan yang ditunjukkan pada langkah sebelumnya, ganti
POLICY
dengan kode berikut, denganCALLER_SA
adalah akun layanan yang membuat token yang berlaku singkat:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA
Meminta isi JSON:
{ "policy": POLICY }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Respons berisi kebijakan izin yang telah diperbarui.
Kredensial pengguna
Jika Anda ingin menggunakan Google Cloud CLI untuk membuat token yang berlaku singkat, atau Anda ingin membuat token yang berlaku singkat dari lingkungan pengembangan lokal, Anda dapat menggunakan akun pengguna untuk membuat token tersebut. Sering kali, Anda dapat menggunakan akun pengguna Anda sendiri.
Saat Anda menggunakan akun pengguna untuk membuat token yang berlaku singkat, identitas berikut akan dilibatkan:
Akun pemanggil (
CALLER_ACCOUNT
)Akun pengguna ini digunakan untuk membuat kredensial yang berlaku singkat untuk akun layanan yang memiliki hak istimewa.
Akun layanan yang memiliki hak istimewa (
PRIV_SA
)Akun layanan ini diberi peran IAM yang diperlukan untuk token yang berlaku singkat. Ini adalah akun layanan tempat token yang berlaku singkat dibuat.
Untuk memungkinkan
CALLER_ACCOUNT
dapat membuat kredensial yang berlaku singkat untukPRIV_SA
, Anda memberikanCALLER_ACCOUNT
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
) padaPRIV_SA
.Berikan peran yang diperlukan pada
PRIV_SA
:Konsol
-
Di konsol Google Cloud, buka halaman Akun Layanan.
- Pilih project.
-
Klik alamat email akun layanan yang memiliki hak istimewa,
PRIV_SA
. - Klik tab Izin.
- Pada Akun utama dengan akses ke akun layanan ini, klik Berikan Akses.
-
Masukkan ID utama akun pemanggil,
CALLER_ACCOUNT
.Misalnya,
my-user@example.com
. -
Pilih peran Pembuat Token Akun Layanan
(
roles/iam.serviceAccountTokenCreator
). - Klik Simpan untuk memberikan peran kepada akun pengguna.
gcloud
Perintah
gcloud iam service-accounts add-iam-policy-binding
memberikan peran pada akun layanan.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token dibuat. -
CALLER_ACCOUNT
: Alamat email akun pengguna yang digunakan untuk meminta token yang berlaku singkat.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Anda akan melihat respons seperti berikut:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "user:my-user@example.com" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }
REST
-
Baca kebijakan izin untuk
PRIV_SA
:Metode
serviceAccounts.getIamPolicy
mendapatkan kebijakan izin akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Meminta isi JSON:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Jika Anda belum memberikan peran apa pun ke akun layanan, respons hanya akan berisi nilai
etag
. Sertakan nilaietag
tersebut di langkah berikutnya. -
Ubah kebijakan izin untuk memberi
CALLER_ACCOUNT
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
).Misalnya, untuk mengubah contoh respons dari langkah sebelumnya, tambahkan kode berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "user:my-user@example.com" ] } ] }
-
Tulis kebijakan izin yang telah diperbarui:
Metode
serviceAccounts.setIamPolicy
menetapkan kebijakan izin yang telah diperbarui untuk akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.-
POLICY
: Representasi JSON dari kebijakan yang ingin Anda tetapkan. Untuk informasi selengkapnya tentang format kebijakan, lihat Referensi kebijakan.Misalnya, untuk menetapkan kebijakan izinkan yang ditunjukkan pada langkah sebelumnya, ganti
POLICY
dengan kode berikut, denganCALLER_ACCOUNT
adalah akun pengguna yang membuat token yang berlaku singkat:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA
Meminta isi JSON:
{ "policy": POLICY }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Respons berisi kebijakan izin yang telah diperbarui.
Membuat token akses
Anda dapat membuat token akses OAuth 2.0 dengan menggunakan gcloud CLI, REST API, atau Library Klien Cloud dan Library Klien Google API.
Jika Anda menggunakan REST API, dan sistem Anda dikonfigurasi untuk mengizinkan masa pakai token yang lebih lama, Anda dapat membuat token dengan masa aktif yang lebih lama daripada default-nya. Google Cloud CLI tidak mendukung setelan masa aktif untuk token.
Contoh di bawah ini dirancang untuk digunakan di lingkungan pengembangan lokal; pemanggil harus diwakili oleh akun pengguna, bukan akun layanan.
Buat token akses OAuth 2.0 untuk akun layanan:
gcloud
Pastikan Anda login ke gcloud CLI dengan akun pengguna pemanggil.
Buat token untuk akun layanan menggunakan perintah
gcloud auth print-access-token
.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud auth print-access-token --impersonate-service-account=PRIV_SA
Windows (PowerShell)
gcloud auth print-access-token --impersonate-service-account=PRIV_SA
Windows (cmd.exe)
gcloud auth print-access-token --impersonate-service-account=PRIV_SA
Anda akan melihat respons seperti berikut:
WARNING: This command is using service account impersonation. All API calls will be executed as [my-sa@my-project.iam.gserviceaccount.com]. ya29.c.b0AXv0zTPnzTnDV8F8Aj5Fgy46Yf2v_v8eZIoKq7xGpfbpXuy23aQ1693m3gAuE8AZga7w6kdagN7a9bfdDYbdeoGY0CMHOClsCwIdutL7k_RFC672lOCbUgF5hS8Iu2nCA8hle-11LJXBLmaxFmH08ZTBJLuDrWSNd8cYqGYFunSC1K1qLIPBF18tsa0hxVgKPucI8b1A9L8_MK1JGLGcr0n7-zY77_lmbcdODG3NmIbLOGWOutjJgqSO_YoeCKK2QTUZIp5PG7RkKlXWnmYJA9pEahzNoQrs5sWZctc2bia9af_ITzqqlXC9h1Kj5-me6e8rd734MJvpagqYazRk0gGWpMb03XmMGpgPc_FBp4pnX9rGOzW83SNpcDz8zeFO1Q0Bo3N7CuZougjRce0y8I2_4rtw5ME_nV3wrCWa..................................................................................................................................................................................................................................................................................................
-
REST
Metode Service Account Credentials API
serviceAccounts.generateAccessToken
menghasilkan token akses OAuth 2.0 untuk akun layanan.Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku dibuat. -
LIFETIME
: Jumlah waktu hingga token akses berakhir, dalam detik. Contoh,300s
.Secara default, masa aktif token maksimum adalah 1 jam (3.600 detik). Untuk memperpanjang masa aktif maksimum token ini menjadi 12 jam (43.200 detik), tambahkan akun layanan ke kebijakan organisasi yang menyertakan batasan daftar
constraints/iam.allowServiceAccountCredentialLifetimeExtension
.
Metode HTTP dan URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:generateAccessToken
Meminta isi JSON:
{ "scope": [ "https://www.googleapis.com/auth/cloud-platform" ], "lifetime": "LIFETIME" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Jika permintaan
generateAccessToken
berhasil, isi respons akan memuat token akses OAuth 2.0 dan waktu habis masa berlaku.accessToken
kemudian dapat digunakan untuk mengautentikasi permintaan atas nama akun layanan hinggaexpireTime
telah tercapai:{ "accessToken": "eyJ0eXAi...NiJ9", "expireTime": "2020-04-07T15:01:23.045123456Z" }
Go
Java
Node.js
Python
Membuat token ID OpenID Connect (OIDC)
Token ID mengikuti spesifikasi OpenID Connect (OIDC). Token ID diterima oleh layanan dan aplikasi dalam jumlah yang terbatas.
Untuk mengetahui informasi selengkapnya, lihat Token ID dan Autentikasi untuk aplikasi yang dihosting di Cloud Run atau Cloud Run Functions.
Untuk membuat token ID, selesaikan tugas berikut:
Berikan izin yang diperlukan kepada pemanggil.
Gunakan peran Pembuat Token OpenID Connect Identity pada Akun Layanan (
roles/iam.serviceAccountOpenIdTokenCreator
) untuk membuat token ID. Ini adalah peran yang berbeda dengan peran yang Anda gunakan untuk jenis token lainnya.
Memberikan izin yang diperlukan
Permintaan langsung melibatkan dua identitas: pemanggil yang meminta kredensial, dan akun layanan tempat kredensial tersebut dibuat. Cara Anda menyiapkan izin bergantung pada apakah pemanggil melakukan autentikasi sebagai akun layanan atau sebagai akun pengguna.
Jika Anda ingin menjalankan perintah REST atau gcloud CLI pada halaman ini dalam lingkungan pengembangan lokal, pemanggil dapat diwakili oleh kredensial pengguna. Untuk workload otomatis, seperti aplikasi yang berjalan di Compute Engine, pemanggil harus diwakili oleh akun layanan.
Akun layanan
Saat aplikasi panggilan menggunakan akun layanan sebagai identitasnya, entity utama berikut akan terlibat:
Akun layanan pemanggil (
CALLER_SA
)Akun layanan ini mewakili aplikasi panggilan, yang mengeluarkan permintaan untuk kredensial yang berlaku singkat.
-
Akun layanan yang memiliki hak istimewa (
PRIV_SA
)Akun layanan ini diberi peran IAM yang diperlukan untuk token yang berlaku singkat. Ini adalah akun layanan tempat token yang berlaku singkat dibuat.
Untuk memberi
CALLER_SA
izin guna membuat kredensial yang berlaku singkat untukPRIV_SA
, Anda memberikanCALLER_SA
peran Pembuat Token Identitas OpenID Connect (roles/iam.serviceAccountOpenIdTokenCreator
) Akun Layanan padaPRIV_SA
.Berikan peran yang diperlukan pada
PRIV_SA
:Konsol
-
Di konsol Google Cloud, buka halaman Akun Layanan.
- Pilih project.
-
Klik alamat email akun layanan yang memiliki hak istimewa,
PRIV_SA
. - Klik tab Izin.
- Pada Akun utama dengan akses ke akun layanan ini, klik Berikan Akses.
-
Masukkan alamat email akun layanan pemanggil,
CALLER_SA
.Misalnya,
demo@my-project.iam.gserviceaccount.com
. -
Pilih peran Pembuat Token OpenID Connect Identity pada Akun Layanan
(
roles/iam.serviceAccountOpenIdTokenCreator
). - Klik Simpan untuk memberikan peran ke akun layanan.
gcloud
Perintah
gcloud iam service-accounts add-iam-policy-binding
memberikan peran pada akun layanan.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token dibuat. -
CALLER_SA
: Alamat email akun layanan yang mewakili aplikasi yang meminta token yang berlaku singkat.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Anda akan melihat respons seperti berikut:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountOpenIdTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }
REST
-
Baca kebijakan izin untuk
PRIV_SA
:Metode
serviceAccounts.getIamPolicy
mendapatkan kebijakan izin akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Meminta isi JSON:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Jika Anda belum memberikan peran apa pun ke akun layanan, respons hanya akan berisi nilai
etag
. Sertakan nilaietag
tersebut di langkah berikutnya. -
Ubah kebijakan izin untuk memberi
CALLER_SA
peran Pembuat Token OpenID Connect Identity pada Akun Layanan (roles/iam.serviceAccountOpenIdTokenCreator
).Misalnya, untuk mengubah contoh respons dari langkah sebelumnya, tambahkan kode berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Tulis kebijakan izin yang telah diperbarui:
Metode
serviceAccounts.setIamPolicy
menetapkan kebijakan izin yang telah diperbarui untuk akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.-
POLICY
: Representasi JSON dari kebijakan yang ingin Anda tetapkan. Untuk informasi selengkapnya tentang format kebijakan, lihat Referensi kebijakan.Misalnya, untuk menetapkan kebijakan izinkan yang ditunjukkan pada langkah sebelumnya, ganti
POLICY
dengan kode berikut, denganCALLER_SA
adalah akun layanan yang membuat token yang berlaku singkat:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA
Meminta isi JSON:
{ "policy": POLICY }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Respons berisi kebijakan izin yang telah diperbarui.
Kredensial pengguna
Jika Anda ingin menggunakan Google Cloud CLI untuk membuat token yang berlaku singkat, atau Anda ingin membuat token yang berlaku singkat dari lingkungan pengembangan lokal, Anda dapat menggunakan akun pengguna untuk membuat token tersebut. Sering kali, Anda dapat menggunakan akun pengguna Anda sendiri.
Saat Anda menggunakan akun pengguna untuk membuat token yang berlaku singkat, identitas berikut akan dilibatkan:
Akun pemanggil (
CALLER_ACCOUNT
)Akun pengguna ini digunakan untuk membuat kredensial yang berlaku singkat untuk akun layanan yang memiliki hak istimewa.
Akun layanan yang memiliki hak istimewa (
PRIV_SA
)Akun layanan ini diberi peran IAM yang diperlukan untuk token yang berlaku singkat. Ini adalah akun layanan tempat token yang berlaku singkat dibuat.
Agar
CALLER_ACCOUNT
dapat membuat kredensial yang berlaku singkat untukPRIV_SA
, Anda memberikanCALLER_ACCOUNT
peran Pembuat Token OpenID Connect Identity Akun Layanan (roles/iam.serviceAccountOpenIdTokenCreator
) padaPRIV_SA
.Berikan peran yang diperlukan pada
PRIV_SA
:Konsol
-
Di konsol Google Cloud, buka halaman Akun Layanan.
- Pilih project.
-
Klik alamat email akun layanan yang memiliki hak istimewa,
PRIV_SA
. - Klik tab Izin.
- Pada Akun utama dengan akses ke akun layanan ini, klik Berikan Akses.
-
Masukkan ID utama akun pemanggil,
CALLER_ACCOUNT
.Misalnya,
my-user@example.com
. -
Pilih peran Pembuat Token OpenID Connect Identity pada Akun Layanan
(
roles/iam.serviceAccountOpenIdTokenCreator
). - Klik Simpan untuk memberikan peran kepada akun pengguna.
gcloud
Perintah
gcloud iam service-accounts add-iam-policy-binding
memberikan peran pada akun layanan.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token dibuat. -
CALLER_ACCOUNT
: Alamat email akun pengguna yang digunakan untuk meminta token yang berlaku singkat.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountOpenIdTokenCreator --format=json
Anda akan melihat respons seperti berikut:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "user:my-user@example.com" ], "role": "roles/iam.serviceAccountOpenIdTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }
REST
-
Baca kebijakan izin untuk
PRIV_SA
:Metode
serviceAccounts.getIamPolicy
mendapatkan kebijakan izin akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Meminta isi JSON:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Jika Anda belum memberikan peran apa pun ke akun layanan, respons hanya akan berisi nilai
etag
. Sertakan nilaietag
tersebut di langkah berikutnya. -
Ubah kebijakan izin untuk memberi
CALLER_ACCOUNT
peran Pembuat Token OpenID Connect Identity pada Akun Layanan (roles/iam.serviceAccountOpenIdTokenCreator
).Misalnya, untuk mengubah contoh respons dari langkah sebelumnya, tambahkan kode berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "user:my-user@example.com" ] } ] }
-
Tulis kebijakan izin yang telah diperbarui:
Metode
serviceAccounts.setIamPolicy
menetapkan kebijakan izin yang telah diperbarui untuk akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.-
POLICY
: Representasi JSON dari kebijakan yang ingin Anda tetapkan. Untuk informasi selengkapnya tentang format kebijakan, lihat Referensi kebijakan.Misalnya, untuk menetapkan kebijakan izinkan yang ditunjukkan pada langkah sebelumnya, ganti
POLICY
dengan kode berikut, denganCALLER_ACCOUNT
adalah akun pengguna yang membuat token yang berlaku singkat:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountOpenIdTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA
Meminta isi JSON:
{ "policy": POLICY }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Respons berisi kebijakan izin yang telah diperbarui.
Membuat token ID
Anda dapat membuat token ID OpenID Connect (OIDC) dengan menggunakan gcloud CLI, REST API, atau Library Klien Cloud dan Library Klien Google API.
Contoh di bawah ini dirancang untuk digunakan di lingkungan pengembangan lokal; pemanggil harus diwakili oleh akun pengguna, bukan akun layanan.
Token ID OIDC berlaku selama 1 jam (3.600 detik).
Buat token ID OIDC yang ditandatangani Google untuk akun layanan:
gcloud
Pastikan Anda login ke gcloud CLI dengan akun pengguna pemanggil.
Buat token untuk akun layanan menggunakan perintah
gcloud auth print-identity-token
.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. -
AUDIENCE_NAME
: Audiens untuk token, biasanya URL aplikasi atau layanan tempat token akan digunakan untuk mengakses.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME"
Windows (PowerShell)
gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME"
Windows (cmd.exe)
gcloud auth print-identity-token --impersonate-service-account=PRIV_SA --audiences="AUDIENCE_NAME"
Anda akan melihat respons seperti berikut:
WARNING: This command is using service account impersonation. All API calls will be executed as [my-sa@my-project.iam.gserviceaccount.com]. eyJhbGciOiJSUzI1NiIsImtpZDNhMDg4ZDRmZmMjJkYTVmZTM5MDZjY2MiLCJ0eXAiOiJKV1QifQ.eyJhdWQiOiJ3d3cuZXhhbXBsJhenAiOiIxMTYzwNDYyMDk0ODIiLCJleHAiOjE2NTQ4ODU0MzEsImlhdCI6MTY1NDg4MTgzMSwiaXN6Ly9hY2NvdW50cy5nb29nbGUuY29tIiwic3ViIMDQ2MjA5NDgyIn0.F7mu8IHj5VQdu7ItFrnYAKyGd7YqXuOP_rFLc98q8BaFBycAF1zAQnSnwqnSUXba0UK9PDT_-IOry68qLwBObz4XlX9lk0ehpN0O0W9FcFToKLB6wefXXPd4h7xtuPe5KzmpSOqj2Qqv34HriGw00Nqd-oGSgNY_lZ4wGEf4rT4oQa_kEcrY57Q2G6pwd769BhgeFwoLi5aK_Cv2kvf_zfMszC-xlkP9zwWQ8XinJBwe-qcQBa4NTgrbueNtXsEjccBS366zmw
-
REST
Metode Service Account Credentials API
serviceAccounts.generateIdToken
menghasilkan token ID OIDC untuk akun layanan.Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. -
AUDIENCE_NAME
: Audiens untuk token, biasanya URL aplikasi atau layanan tempat token akan digunakan untuk mengakses.
Metode HTTP dan URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:generateIdToken
Meminta isi JSON:
{ "audience": "AUDIENCE_NAME", "includeEmail": "true" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Jika permintaan
generateId
berhasil, isi permintaan akan memuat token ID yang berlaku selama 1 jam.token
kemudian dapat digunakan untuk mengautentikasi permintaan atas nama akun layanan:{ "token": "eyJ0eXAi...NiJ9" }
Membuat Token Web JSON (JWT) yang ditandatangani sendiri
Token Web JSON (JWT) yang ditandatangani sendiri berguna dalam berbagai skenario:
- Berkomunikasi antar-aplikasi Anda dengan aman. Dalam skenario ini, satu aplikasi dapat menandatangani token yang dapat diverifikasi oleh aplikasi lain untuk tujuan autentikasi.
- Mengautentikasi panggilan ke Google API seperti yang dijelaskan dalam Otorisasi akun layanan tanpa OAuth.
- Mengautentikasi ke API yang di-deploy dengan API Gateway.
- Memperlakukan akun layanan sebagai penyedia identitas dengan menandatangani JWT yang berisi klaim arbitrer tentang pengguna, akun, atau perangkat.
Untuk membuat JWT, selesaikan tugas berikut:
Memberikan izin yang diperlukan
Permintaan langsung melibatkan dua identitas: pemanggil yang meminta kredensial, dan akun layanan tempat kredensial tersebut dibuat. Cara Anda menyiapkan izin bergantung pada apakah pemanggil melakukan autentikasi sebagai akun layanan atau sebagai akun pengguna.
Jika Anda ingin menjalankan perintah REST atau gcloud CLI pada halaman ini dalam lingkungan pengembangan lokal, pemanggil dapat diwakili oleh kredensial pengguna. Untuk workload otomatis, seperti aplikasi yang berjalan di Compute Engine, pemanggil harus diwakili oleh akun layanan.
Akun layanan
Saat aplikasi panggilan menggunakan akun layanan sebagai identitasnya, entity utama berikut akan terlibat:
Akun layanan pemanggil (
CALLER_SA
)Akun layanan ini mewakili aplikasi panggilan, yang mengeluarkan permintaan untuk kredensial yang berlaku singkat.
-
Akun layanan yang memiliki hak istimewa (
PRIV_SA
)Akun layanan ini diberi peran IAM yang diperlukan untuk token yang berlaku singkat. Ini adalah akun layanan tempat token yang berlaku singkat dibuat.
Untuk memberi
CALLER_SA
izin untuk membuat kredensial yang berlaku singkat untukPRIV_SA
, Anda memberikanCALLER_SA
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
) padaPRIV_SA
.Berikan peran yang diperlukan pada
PRIV_SA
:Konsol
-
Di konsol Google Cloud, buka halaman Akun Layanan.
- Pilih project.
-
Klik alamat email akun layanan yang memiliki hak istimewa,
PRIV_SA
. - Klik tab Izin.
- Pada Akun utama dengan akses ke akun layanan ini, klik Berikan Akses.
-
Masukkan alamat email akun layanan pemanggil,
CALLER_SA
.Misalnya,
demo@my-project.iam.gserviceaccount.com
. -
Pilih peran Pembuat Token Akun Layanan
(
roles/iam.serviceAccountTokenCreator
). - Klik Simpan untuk memberikan peran ke akun layanan.
gcloud
Perintah
gcloud iam service-accounts add-iam-policy-binding
memberikan peran pada akun layanan.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token dibuat. -
CALLER_SA
: Alamat email akun layanan yang mewakili aplikasi yang meminta token yang berlaku singkat.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Anda akan melihat respons seperti berikut:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }
REST
-
Baca kebijakan izin untuk
PRIV_SA
:Metode
serviceAccounts.getIamPolicy
mendapatkan kebijakan izin akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Meminta isi JSON:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Jika Anda belum memberikan peran apa pun ke akun layanan, respons hanya akan berisi nilai
etag
. Sertakan nilaietag
tersebut di langkah berikutnya. -
Ubah kebijakan izinkan untuk memberi
CALLER_SA
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
).Misalnya, untuk mengubah contoh respons dari langkah sebelumnya, tambahkan kode berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Tulis kebijakan izin yang telah diperbarui:
Metode
serviceAccounts.setIamPolicy
menetapkan kebijakan izin yang telah diperbarui untuk akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.-
POLICY
: Representasi JSON dari kebijakan yang ingin Anda tetapkan. Untuk informasi selengkapnya tentang format kebijakan, lihat Referensi kebijakan.Misalnya, untuk menetapkan kebijakan izinkan yang ditunjukkan pada langkah sebelumnya, ganti
POLICY
dengan kode berikut, denganCALLER_SA
adalah akun layanan yang membuat token yang berlaku singkat:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA
Meminta isi JSON:
{ "policy": POLICY }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Respons berisi kebijakan izin yang telah diperbarui.
Kredensial pengguna
Jika Anda ingin menggunakan Google Cloud CLI untuk membuat token yang berlaku singkat, atau Anda ingin membuat token yang berlaku singkat dari lingkungan pengembangan lokal, Anda dapat menggunakan akun pengguna untuk membuat token tersebut. Sering kali, Anda dapat menggunakan akun pengguna Anda sendiri.
Saat Anda menggunakan akun pengguna untuk membuat token yang berlaku singkat, identitas berikut akan dilibatkan:
Akun pemanggil (
CALLER_ACCOUNT
)Akun pengguna ini digunakan untuk membuat kredensial yang berlaku singkat untuk akun layanan yang memiliki hak istimewa.
Akun layanan yang memiliki hak istimewa (
PRIV_SA
)Akun layanan ini diberi peran IAM yang diperlukan untuk token yang berlaku singkat. Ini adalah akun layanan tempat token yang berlaku singkat dibuat.
Untuk memungkinkan
CALLER_ACCOUNT
dapat membuat kredensial yang berlaku singkat untukPRIV_SA
, Anda memberikanCALLER_ACCOUNT
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
) padaPRIV_SA
.Berikan peran yang diperlukan pada
PRIV_SA
:Konsol
-
Di konsol Google Cloud, buka halaman Akun Layanan.
- Pilih project.
-
Klik alamat email akun layanan yang memiliki hak istimewa,
PRIV_SA
. - Klik tab Izin.
- Pada Akun utama dengan akses ke akun layanan ini, klik Berikan Akses.
-
Masukkan ID utama akun pemanggil,
CALLER_ACCOUNT
.Misalnya,
my-user@example.com
. -
Pilih peran Pembuat Token Akun Layanan
(
roles/iam.serviceAccountTokenCreator
). - Klik Simpan untuk memberikan peran kepada akun pengguna.
gcloud
Perintah
gcloud iam service-accounts add-iam-policy-binding
memberikan peran pada akun layanan.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token dibuat. -
CALLER_ACCOUNT
: Alamat email akun pengguna yang digunakan untuk meminta token yang berlaku singkat.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Anda akan melihat respons seperti berikut:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "user:my-user@example.com" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }
REST
-
Baca kebijakan izin untuk
PRIV_SA
:Metode
serviceAccounts.getIamPolicy
mendapatkan kebijakan izin akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Meminta isi JSON:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Jika Anda belum memberikan peran apa pun ke akun layanan, respons hanya akan berisi nilai
etag
. Sertakan nilaietag
tersebut di langkah berikutnya. -
Ubah kebijakan izin untuk memberi
CALLER_ACCOUNT
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
).Misalnya, untuk mengubah contoh respons dari langkah sebelumnya, tambahkan kode berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "user:my-user@example.com" ] } ] }
-
Tulis kebijakan izin yang telah diperbarui:
Metode
serviceAccounts.setIamPolicy
menetapkan kebijakan izin yang telah diperbarui untuk akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.-
POLICY
: Representasi JSON dari kebijakan yang ingin Anda tetapkan. Untuk informasi selengkapnya tentang format kebijakan, lihat Referensi kebijakan.Misalnya, untuk menetapkan kebijakan izinkan yang ditunjukkan pada langkah sebelumnya, ganti
POLICY
dengan kode berikut, denganCALLER_ACCOUNT
adalah akun pengguna yang membuat token yang berlaku singkat:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA
Meminta isi JSON:
{ "policy": POLICY }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Respons berisi kebijakan izin yang telah diperbarui.
Membuat JWT
Buat JWT yang ditandatangani sendiri:
REST
Metode Service Account Credentials API
serviceAccounts.signJwt
menandatangani JWT menggunakan kunci pribadi yang dikelola sistem pada akun layanan.Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. -
JWT_PAYLOAD
: Payload JWT yang akan ditandatangani, yaitu objek JSON yang berisi Kumpulan Klaim JWT. Sertakan klaim yang diperlukan untuk kasus penggunaan yang Anda inginkan dan untuk memenuhi persyaratan validasi untuk layanan yang Anda panggil. Jika Anda memanggil Google API, lihat Panduan Autentikasi Google untuk mengetahui persyaratan klaimnya.Klaim
exp
(waktu habis masa berlaku) tidak boleh lebih dari 12 jam ke depan. Jika Anda memanggil Google API, klaimexp
harus ditetapkan tidak boleh lebih dari 1 jam ke depan.Contoh payload berikut berisi klaim untuk memanggil Google API, dengan
EXP
adalah stempel waktu bilangan bulat yang menunjukkan waktu habis masa berlaku:{ \"iss\": \"PRIV_SA\", \"sub\": \"PRIV_SA\", \"aud\": \"https://firestore.googleapis.com/\", \"iat\": 1529350000, \"exp\": EXP }
Metode HTTP dan URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:signJwt
Meminta isi JSON:
{ "payload": "JWT_PAYLOAD" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Jika permintaan
signJwt
berhasil, isi respons berisi JWT yang ditandatangani dan ID kunci penandatanganan yang digunakan untuk menandatangani JWT. Anda dapat menggunakan nilaisignedJwt
sebagai token pemilik untuk secara langsung mengautentikasi permintaan atas nama akun layanan. Token berlaku hingga waktu habis masa berlaku yang ditetapkan dalam permintaan:{ "keyId": "42ba1e...fc0a", "signedJwt": "eyJ0eXAi...NiJ9" }
Membuat objek biner yang ditandatangani sendiri (blob)
Objek biner yang ditandatangani sendiri, atau blob, digunakan untuk mengirimkan data biner sedemikian rupa sehingga pembuat data dapat diketahui (karena blob ditandatangani sendiri). Blob dapat digunakan untuk membuat tanda tangan, sebuah objek Cloud Storage yang diperlukan untuk berbagai alur autentikasi termasuk URL yang ditandatangani. Untuk mengetahui informasi tentang tanda tangan, lihat dokumentasi Cloud Storage.
Untuk membuat objek biner yang ditandatangani sendiri, selesaikan tugas berikut:
Memberikan izin yang diperlukan
Permintaan langsung melibatkan dua identitas: pemanggil yang meminta kredensial, dan akun layanan tempat kredensial tersebut dibuat. Cara Anda menyiapkan izin bergantung pada apakah pemanggil melakukan autentikasi sebagai akun layanan atau sebagai akun pengguna.
Jika Anda ingin menjalankan perintah REST atau gcloud CLI pada halaman ini dalam lingkungan pengembangan lokal, pemanggil dapat diwakili oleh kredensial pengguna. Untuk workload otomatis, seperti aplikasi yang berjalan di Compute Engine, pemanggil harus diwakili oleh akun layanan.
Akun layanan
Saat aplikasi panggilan menggunakan akun layanan sebagai identitasnya, entity utama berikut akan terlibat:
Akun layanan pemanggil (
CALLER_SA
)Akun layanan ini mewakili aplikasi panggilan, yang mengeluarkan permintaan untuk kredensial yang berlaku singkat.
-
Akun layanan yang memiliki hak istimewa (
PRIV_SA
)Akun layanan ini diberi peran IAM yang diperlukan untuk token yang berlaku singkat. Ini adalah akun layanan tempat token yang berlaku singkat dibuat.
Untuk memberi
CALLER_SA
izin untuk membuat kredensial yang berlaku singkat untukPRIV_SA
, Anda memberikanCALLER_SA
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
) padaPRIV_SA
.Berikan peran yang diperlukan pada
PRIV_SA
:Konsol
-
Di konsol Google Cloud, buka halaman Akun Layanan.
- Pilih project.
-
Klik alamat email akun layanan yang memiliki hak istimewa,
PRIV_SA
. - Klik tab Izin.
- Pada Akun utama dengan akses ke akun layanan ini, klik Berikan Akses.
-
Masukkan alamat email akun layanan pemanggil,
CALLER_SA
.Misalnya,
demo@my-project.iam.gserviceaccount.com
. -
Pilih peran Pembuat Token Akun Layanan
(
roles/iam.serviceAccountTokenCreator
). - Klik Simpan untuk memberikan peran ke akun layanan.
gcloud
Perintah
gcloud iam service-accounts add-iam-policy-binding
memberikan peran pada akun layanan.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token dibuat. -
CALLER_SA
: Alamat email akun layanan yang mewakili aplikasi yang meminta token yang berlaku singkat.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=serviceAccount:CALLER_SA --role=roles/iam.serviceAccountTokenCreator --format=json
Anda akan melihat respons seperti berikut:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "serviceAccount:CALLER_SA" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwXhCB4eyjY=", "version": 1 }
REST
-
Baca kebijakan izin untuk
PRIV_SA
:Metode
serviceAccounts.getIamPolicy
mendapatkan kebijakan izin akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Meminta isi JSON:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Jika Anda belum memberikan peran apa pun ke akun layanan, respons hanya akan berisi nilai
etag
. Sertakan nilaietag
tersebut di langkah berikutnya. -
Ubah kebijakan izinkan untuk memberi
CALLER_SA
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
).Misalnya, untuk mengubah contoh respons dari langkah sebelumnya, tambahkan kode berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
-
Tulis kebijakan izin yang telah diperbarui:
Metode
serviceAccounts.setIamPolicy
menetapkan kebijakan izin yang telah diperbarui untuk akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.-
POLICY
: Representasi JSON dari kebijakan yang ingin Anda tetapkan. Untuk informasi selengkapnya tentang format kebijakan, lihat Referensi kebijakan.Misalnya, untuk menetapkan kebijakan izinkan yang ditunjukkan pada langkah sebelumnya, ganti
POLICY
dengan kode berikut, denganCALLER_SA
adalah akun layanan yang membuat token yang berlaku singkat:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "serviceAccount:CALLER_SA" ] } ] }
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA
Meminta isi JSON:
{ "policy": POLICY }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Respons berisi kebijakan izin yang telah diperbarui.
Kredensial pengguna
Jika Anda ingin menggunakan Google Cloud CLI untuk membuat token yang berlaku singkat, atau Anda ingin membuat token yang berlaku singkat dari lingkungan pengembangan lokal, Anda dapat menggunakan akun pengguna untuk membuat token tersebut. Sering kali, Anda dapat menggunakan akun pengguna Anda sendiri.
Saat Anda menggunakan akun pengguna untuk membuat token yang berlaku singkat, identitas berikut akan dilibatkan:
Akun pemanggil (
CALLER_ACCOUNT
)Akun pengguna ini digunakan untuk membuat kredensial yang berlaku singkat untuk akun layanan yang memiliki hak istimewa.
Akun layanan yang memiliki hak istimewa (
PRIV_SA
)Akun layanan ini diberi peran IAM yang diperlukan untuk token yang berlaku singkat. Ini adalah akun layanan tempat token yang berlaku singkat dibuat.
Untuk memungkinkan
CALLER_ACCOUNT
dapat membuat kredensial yang berlaku singkat untukPRIV_SA
, Anda memberikanCALLER_ACCOUNT
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
) padaPRIV_SA
.Berikan peran yang diperlukan pada
PRIV_SA
:Konsol
-
Di konsol Google Cloud, buka halaman Akun Layanan.
- Pilih project.
-
Klik alamat email akun layanan yang memiliki hak istimewa,
PRIV_SA
. - Klik tab Izin.
- Pada Akun utama dengan akses ke akun layanan ini, klik Berikan Akses.
-
Masukkan ID utama akun pemanggil,
CALLER_ACCOUNT
.Misalnya,
my-user@example.com
. -
Pilih peran Pembuat Token Akun Layanan
(
roles/iam.serviceAccountTokenCreator
). - Klik Simpan untuk memberikan peran kepada akun pengguna.
gcloud
Perintah
gcloud iam service-accounts add-iam-policy-binding
memberikan peran pada akun layanan.Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token dibuat. -
CALLER_ACCOUNT
: Alamat email akun pengguna yang digunakan untuk meminta token yang berlaku singkat.
Jalankan perintah berikut:
Linux, macOS, atau Cloud Shell
gcloud iam service-accounts add-iam-policy-binding PRIV_SA \ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (PowerShell)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ` --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Windows (cmd.exe)
gcloud iam service-accounts add-iam-policy-binding PRIV_SA ^ --member=user:CALLER_ACCOUNT --role=roles/iam.serviceAccountTokenCreator --format=json
Anda akan melihat respons seperti berikut:
Updated IAM policy for serviceAccount [PRIV_SA]. { "bindings": [ { "members": [ "user:my-user@example.com" ], "role": "roles/iam.serviceAccountTokenCreator" } ], "etag": "BwX1ZbefjXU=", "version": 1 }
REST
-
Baca kebijakan izin untuk
PRIV_SA
:Metode
serviceAccounts.getIamPolicy
mendapatkan kebijakan izin akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA:getIamPolicy
Meminta isi JSON:
{ "options": { "requestedPolicyVersion": POLICY_VERSION } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] } ] }
Jika Anda belum memberikan peran apa pun ke akun layanan, respons hanya akan berisi nilai
etag
. Sertakan nilaietag
tersebut di langkah berikutnya. -
Ubah kebijakan izin untuk memberi
CALLER_ACCOUNT
peran Pembuat Token Akun Layanan (roles/iam.serviceAccountTokenCreator
).Misalnya, untuk mengubah contoh respons dari langkah sebelumnya, tambahkan kode berikut:
{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "user:my-user@example.com" ] } ] }
-
Tulis kebijakan izin yang telah diperbarui:
Metode
serviceAccounts.setIamPolicy
menetapkan kebijakan izin yang telah diperbarui untuk akun layanan.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID
: Project ID Google Cloud Anda ID project adalah string alfanumerik, sepertimy-project
.-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. POLICY_VERSION
: Versi kebijakan yang akan ditampilkan. Permintaan harus menentukan versi kebijakan terbaru, yaitu kebijakan versi 3. Lihat Menentukan versi kebijakan saat mendapatkan kebijakan untuk detailnya.-
POLICY
: Representasi JSON dari kebijakan yang ingin Anda tetapkan. Untuk informasi selengkapnya tentang format kebijakan, lihat Referensi kebijakan.Misalnya, untuk menetapkan kebijakan izinkan yang ditunjukkan pada langkah sebelumnya, ganti
POLICY
dengan kode berikut, denganCALLER_ACCOUNT
adalah akun pengguna yang membuat token yang berlaku singkat:{ "version": 1, "etag": "BwWKmjvelug=", "bindings": [ { "role": "roles/serviceAccountAdmin", "members": [ "user:my-user@example.com" ] }, { "role": "roles/iam.serviceAccountTokenCreator", "members": [ "CALLER_ACCOUNT" ] } ] }
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/PRIV_SA
Meminta isi JSON:
{ "policy": POLICY }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Respons berisi kebijakan izin yang telah diperbarui.
Membuat blob yang ditandatangani sendiri
Buat blob yang ditandatangani sendiri untuk akun layanan:
REST
Metode Service Account Credentials API
serviceAccounts.signBlob
menandatangani blob menggunakan kunci pribadi yang dikelola sistem pada akun layanan.Sebelum menggunakan salah satu dari data permintaan, lakukan penggantian berikut:
-
PRIV_SA
: Alamat email akun layanan yang memiliki hak istimewa tempat token yang berlaku singkat dibuat. -
BLOB_PAYLOAD
: String byte berenkode base64. Misalnya,VGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cu
.
Metode HTTP dan URL:
POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/PRIV_SA:signBlob
Meminta isi JSON:
{ "payload": "BLOB_PAYLOAD" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Jika permintaan
signBlob
berhasil, isi respons akan memuat blob yang ditandatangani dan ID kunci penandatanganan yang digunakan untuk menandatangani blob. Anda dapat menggunakan nilaisignedBlob
sebagai token pemilik untuk secara langsung mengautentikasi permintaan atas nama akun layanan. Token berlaku hingga masa berlaku kunci pribadi yang dikelola sistem pada akun layanan berakhir. ID kunci ini adalah nilai kolomkeyId
dalam respons.{ "keyId": "42ba1e...fc0a", "signedBlob": "eyJ0eXAi...NiJ9" }
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2024-12-22 UTC.