Halaman ini menjelaskan cara mencantumkan dan mendapatkan kunci akun layanan menggunakan Google Cloud konsol, Google Cloud CLI, Identity and Access Management API, atau salah satu Library Klien Google Cloud.
Sebelum memulai
Aktifkan IAM API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran.Menyiapkan autentikasi.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan konsol Google Cloud untuk mengakses layanan Google Cloud dan API, Anda tidak perlu menyiapkan autentikasi.
gcloud
Di konsol Google Cloud , aktifkan Cloud Shell.
Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi pada sesi.
C#
Untuk menggunakan contoh .NET di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .
C++
Untuk menggunakan contoh C++ di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .
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.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC 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.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC 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.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC 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.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
-
Memahami kredensial akun layanan.
Peran yang diperlukan
Untuk mendapatkan izin yang
diperlukan untuk mencantumkan dan mendapatkan kunci akun layanan,
minta administrator untuk memberi Anda
peran IAM Lihat Akun Layanan (roles/iam.serviceAccountViewer)
di project atau akun layanan yang kuncinya ingin Anda
kelola.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Peran dasar IAM juga berisi izin untuk mengelola kunci akun layanan. Anda tidak boleh memberikan peran dasar dalam lingkungan produksi, tetapi Anda dapat memberikannya dalam lingkungan pengembangan atau pengujian.
Mencantumkan kunci akun layanan
Anda dapat mencantumkan kunci akun layanan untuk akun layanan menggunakan
konsolGoogle Cloud , gcloud CLI, metode
serviceAccount.keys.list()
atau salah satu library klien.
Metode serviceAccount.keys.list() biasanya digunakan untuk mengaudit akun
dan kunci layanan, atau untuk membuat alat kustom guna mengelola akun layanan.
Untuk mengetahui project milik kunci Anda, Anda dapat mendownload kunci tersebut sebagai file JSON dan melihat file tersebut.
Anda mungkin melihat daftar kunci yang tidak Anda buat. Ini adalah kunci yang dibuat oleh Google dan digunakan oleh Service Account Credentials API. Untuk mempelajari lebih lanjut, lihat pasanganGoogle-owned and managed key .
Konsol
- Di konsol Google Cloud , buka halaman Service accounts.
Langkah-langkah selanjutnya akan muncul di konsol Google Cloud .
- Pilih project.
- Di halaman Akun layanan, klik alamat email akun layanan yang kuncinya ingin Anda cantumkan.
- Klik Kunci. Konsol Google Cloud menampilkan daftar kunci untuk akun layanan.
gcloud
Jalankan perintah gcloud iam service-accounts keys list
untuk mencantumkan kunci akun layanan.
Ganti nilai berikut:
SA_NAME: Nama akun layanan yang akan dicantumkan kunci.PROJECT_ID: Project ID Google Cloud Anda.
gcloud iam service-accounts keys list \
--iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Output:
| ID_KUNCI | DIBUAT_PADA | BERLAKU_SAMPAI | DINONAKTIFKAN | DISABLE_REASON | EXTENDED_STATUS |
| 8e6e3936d7024646f8ceb39792006c07f4a9760c | 2021-01-01T21:01:42Z | 9999-12-31T23:59:59Z | |||
| 937c98f870f5c8db970af527aa3c12fd88b1c20a | 2021-01-01T20:55:40Z | 9999-12-31T23:59:59Z | Benar | DIMULAI PENGGUNA | |
| 937c98f870f5c8db970af527aa3c12fd88b1c20a | 2021-01-01T20:55:40Z | 9999-12-31T23:59:59Z | Benar | TEREKSPOS | ['key':'SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED' 'value':'{exposure URL}'] |
C++
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API C++ IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API C# IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Go IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Java IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk IAM, lihat library klien IAM. Untuk informasi selengkapnya, lihat dokumentasi referensi API Python IAM.
Untuk melakukan autentikasi ke IAM, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Sebelum memulai.
REST
Metode
projects.serviceAccounts.keys.list
mencantumkan semua kunci akun layanan untuk akun layanan.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID: Project ID Google Cloud Anda. Project ID adalah string alfanumerik, sepertimy-project.SA_NAME: Nama akun layanan yang kuncinya ingin Anda cantumkan.KEY_TYPES: Opsional. Daftar yang dipisahkan koma untuk jenis kunci yang ingin Anda sertakan dalam respons. Jenis kunci menunjukkan apakah kunci dikelola oleh pengguna (USER_MANAGED) atau dikelola sistem (SYSTEM_MANAGED). Jika dibiarkan kosong, semua kunci akan ditampilkan.
Metode HTTP dan URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"keys": [
{
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/90c48f61c65cd56224a12ab18e6ee9ca9c3aee7c",
"validAfterTime": "2020-03-04T17:39:47Z",
"validBeforeTime": "9999-12-31T23:59:59Z",
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED"
},
{
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/e5e3800831ac1adc8a5849da7d827b4724b1fce8",
"validAfterTime": "2020-03-31T23:50:09Z",
"validBeforeTime": "9999-12-31T23:59:59Z",
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED"
},
{
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/b97699f042b8eee6a846f4f96259fbcd13e2682e",
"validAfterTime": "2020-05-17T18:58:13Z",
"validBeforeTime": "9999-12-31T23:59:59Z",
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED",
"disabled": true
"disable_reason": "SERVICE_ACCOUNT_KEY_DISABLE_REASON_EXPOSED"
"extended_status": "SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED"
"extended_status_message": "exposed at: https://www.github.com/SomePublicRepo"
}
]
}
Dapatkan kunci akun layanan
Anda dapat menggunakan gcloud CLI atau REST API untuk mendapatkan data kunci publik untuk kunci akun layanan. Selain itu, Anda dapat menggunakan konsol Google Cloud , gcloud CLI, atau REST API untuk mendapatkan metadata kunci, seperti algoritma yang digunakan kunci dan apakah kunci tersebut dikelola oleh Anda atau oleh Google.
Beberapa aplikasi atau alat mungkin memerlukan akses ke data atau metadata kunci publik untuk kunci akun layanan untuk hal-hal seperti audit dan interoperabilitas dengan sistem eksternal. Misalnya, Terraform mungkin perlu memverifikasi bahwa status kunci akun layanan di Google Cloudsama dengan yang ditentukan dalam file konfigurasi Terraform.
Konsol
Untuk mendapatkan data kunci publik untuk kunci akun layanan:
Menggunakan gcloud CLI atau REST API. Data ini tidak tersedia di konsolGoogle Cloud .
Untuk mendapatkan metadata untuk kunci akun layanan:
- Di konsol Google Cloud , buka halaman Service accounts.
Langkah-langkah selanjutnya akan muncul di konsol Google Cloud .
- Pilih project.
- Di halaman Akun layanan, klik alamat email akun layanan yang kuncinya ingin Anda cantumkan.
- Klik Kunci. Konsol Google Cloud menampilkan daftar kunci untuk akun layanan, termasuk metadata untuk setiap kunci.
gcloud
Untuk mendapatkan data kunci publik untuk kunci akun layanan:
Jalankan perintah
gcloud beta iam service-accounts keys get-public-key
:
gcloud beta iam service-accounts keys get-public-key KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --output-file=FILENAME
Berikan nilai berikut:
KEY_ID: ID kunci publik yang ingin Anda dapatkan. Untuk menemukan ID kunci, cantumkan semua kunci untuk akun layanan, identifikasi kunci yang ingin Anda dapatkan, lalu salin ID-nya.SA_NAME: Nama akun layanan yang kunci publiknya ingin Anda dapatkan.PROJECT_ID: Google Cloud Project ID Anda.FILENAME: File tempat menyimpan data kunci publik.
Secara default, data kunci publik disimpan dalam format X.509 PEM. Untuk mendapatkan kunci
publik mentah, jalankan perintah dengan flag tambahan --type=raw.
Misalnya, perintah berikut mendapatkan data kunci publik untuk kunci
c97cc34494c07c9b483701f28368f20145b9ef97, yang dimiliki oleh akun layanan
my-service-account@my-project.iam.gserviceaccount.com, lalu menyimpan data kunci
publik tersebut ke file public_key.pem:
gcloud beta iam service-accounts keys get-public-key \
c97cc34494c07c9b483701f28368f20145b9ef97 \
--iam-account=my-service-account@my-project.iam.gserviceaccount.com \
--output-file=public_key.pem
Untuk mendapatkan metadata untuk kunci akun layanan:
Jalankan perintah gcloud iam service-accounts keys list:
gcloud iam service-accounts keys list --iam-account=SA_NAME \ --filter="name~KEY_ID" --format=json
Berikan nilai berikut:
SA_NAME: Nama akun layanan yang metadata kuncinya Anda inginkan.KEY_ID: ID kunci yang Anda inginkan metadata-nya.
Misalnya, perintah berikut mendapatkan metadata untuk kunci
c97cc34494c07c9b483701f28368f20145b9ef97, yang dimiliki oleh akun layanan
my-service-account@my-project.iam.gserviceaccount.com:
gcloud iam service-accounts keys list \
--iam-account=my-service-account@my-project.iam.gserviceaccount.com \
--filter="name~c97cc34494c07c9b483701f28368f20145b9ef97" --format=json
REST
Metode
projects.serviceAccounts.keys.get
menampilkan informasi tentang kunci publik untuk akun layanan.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
PROJECT_ID: Project ID Google Cloud Anda. Project ID adalah string alfanumerik, sepertimy-project.SA_NAME: Nama akun layanan yang kunci publiknya ingin Anda dapatkan.-
KEY_ID: ID kunci publik yang ingin Anda dapatkan. Untuk menemukan ID kunci tersebut, cantumkan semua kunci untuk akun layanan, identifikasi kunci yang ingin Anda dapatkan, lalu salin ID-nya pada akhir kolomname. ID kunci adalah segala sesuatu setelahkeys/. KEY_TYPE: Format yang digunakan untuk menampilkan kunci publik. GunakanTYPE_X509_PEM_FILEuntuk format PEM X.509 atauTYPE_RAW_PUBLIC_KEYuntuk kunci publik mentah. Jika Anda menghilangkan parameter kueri ini, metode akan mengembalikan metadata untuk kunci, namun tidak akan mengembalikan data kunci publik.
Metode HTTP dan URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID?publicKeyType=KEY_TYPE
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/f4a83933ac07cf52bb74e0e66d99662a09f51a36",
"validAfterTime": "2021-12-10T17:32:06Z",
"validBeforeTime": "9999-12-31T23:59:59Z",
"publicKeyData": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvRENDQWVTZ0F3SUJBZ0lJT2lCdm9hR09nV0F3RFFZSktvWklodmNOQVFFRkJRQXdJREVlTUJ3R0ExVUUKQXhNVk1UQXhNVGsxTlRFMk5UWXlPRGszTmpFek1qQXpNQ0FYRFRJeE1USXhNREUzTXpJd05sb1lEems1T1RreApNak14TWpNMU9UVTVXakFnTVI0d0hBWURWUVFERXhVeE1ERXhPVFUxTVRZMU5qSTRPVGMyTVRNeU1ETXdnZ0VpCk1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQzdzeDBFcXVUMGNwSXhlczl1SW0yRy9DS3EKdnc4YTl2a2JkaWZZbDZHSDh1ZUxEWDhGNHVUeEVQMkNzU3JLTHZtOFo2My9IVUxnWjBtQXByb0JlM08vaVR1ZwpmYVZ0NVNtakhvWm9YQ1lpbjR0MS93SkpvdDhrRFdPeDZhOEdieUdqZ215ak8yYk1XdEtaQ2dqeGZ3cUV0MmN3CklnajA5VzJKYTlHTWRsdVA0VGVubTRKSkJoaFpFbTJ1bVAwYVZZdkRnUWF5d0RCYnJuNG8yY0EzSWplRDZGM1gKK0VHRDNKU0s4VW02Sk5sM21adGp6VWNZSHBrYkF0U1A2ZDI5d1RmZkdIRFY0THJRWlM3bG15d3hsb3p5WnpaawpCOFpHckMzSkF1MVNVRTdQOTN6bWtFb1B6MlRUNWhaYXZMWFQ5TGM2SExiRklRVHFnVEJVWHlNMkpIcGZBZ01CCkFBR2pPREEyTUF3R0ExVWRFd0VCL3dRQ01BQXdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1CWUdBMVVkSlFFQi93UU0KTUFvR0NDc0dBUVVGQndNQ01BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQkhPNXlpUDY3NkE4UEN2RjdRSzdFMApYZVljbzdsSStFZkowaGJrWVlmdUtnSENPcXcvd3FBbCtOSithanljT2FPWDFPMlRZN3ZOc05pR2t3eWc2QXdqCklhL1NHVjd3NkxpS2JldFRuSVp4UlhRY25lcnVvZEwycUR5eWphMDJJSXJVTmVKY1o0MVJBNXRTL3NkcTFGNm4KM0NjSXFoZTI1OTA4TUNna3cwaFB1K0VLbFF6R1B5T3pVRHBLdXg0cnRBaHJTYTBUVW1wbEMxdTJnUk1YRkF6aApWUjU0V2dNa2tabURyalBNeWdBS3JmNkd0bHo2VHRTYTVLb1BWdGpsWExUQkxaSnlhdk4zc1F2dFlBK1NFQWpWCnA1N1ZabFBYZmR0dWN4ekJaOC9zS25SOHNyYU5hVWFjamg1NEE1Nm1URTE3b0IyUWkrTHBJUTYvNnVqVnNXaUYKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=",
"keyAlgorithm": "KEY_ALG_RSA_2048",
"keyOrigin": "GOOGLE_PROVIDED",
"keyType": "USER_MANAGED"
}
Langkah selanjutnya
- Pelajari cara membuat dan menghapus kunci akun layanan.
- Pelajari cara menonaktifkan dan mengaktifkan kunci akun layanan.
- Pelajari alternatif untuk kunci akun layanan bagi autentikasi.
- Pelajari cara menggunakan kunci akun layanan untuk melakukan autentikasi sebagai akun layanan.
- Pahami praktik terbaik untuk mengelola kunci akun layanan.
Coba sendiri
Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
Mulai secara gratis