Halaman ini menjelaskan cara mencantumkan dan mendapatkan kunci akun layanan menggunakan Google Cloud Console, Google Cloud CLI, Identity and Access Management API, atau salah satu Library Klien Google Cloud.
Sebelum memulai
Aktifkan IAM API.
Siapkan autentikasi.
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.
gcloud
Anda dapat menggunakan sampel gcloud CLI di halaman ini dari salah satu lingkungan pengembangan berikut:
-
Cloud Shell: Untuk menggunakan terminal online dengan gcloud CLI yang sudah disiapkan, aktifkan Cloud Shell.
Di bagian bawah halaman ini, sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Perlu waktu beberapa detik hingga sesi dimulai.
-
Shell lokal: Untuk menggunakan gcloud CLI di lingkungan pengembangan lokal, instal dan initialize gcloud CLI.
C++
Untuk menggunakan contoh C++ di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
C#
Untuk menggunakan contoh .NET di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Go
Untuk menggunakan contoh Go di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Java
Untuk menggunakan contoh Java di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud.
Python
Untuk menggunakan contoh Python di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
- Menginstal Google Cloud CLI.
-
Untuk initialize gcloud CLI, jalankan perintah berikut:
gcloud init
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
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.
Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:
gcloud init
-
Memahami kredensial akun layanan.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mencantumkan dan mendapatkan kunci akun layanan,
minta administrator untuk memberi Anda
Lihat Akun Layanan (roles/iam.serviceAccountViewer
) peran IAM di project atau akun layanan yang kuncinya
ingin Anda kelola.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi selengkapnya, lihat peran Service Accounts.
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
Konsol Google Cloud, gcloud CLI, metode
serviceAccount.keys.list()
atau salah satu metode 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 Pasangan kunci yang dikelola Google.
Konsol
- Di Konsol Google Cloud, buka halaman Service accounts.
Langkah-langkah selanjutnya akan muncul secara otomatis 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
: ID project Google Cloud Anda.
gcloud iam service-accounts keys list \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Output:
KEY_ID | CREATED_AT | EXPIRES_AT | DINONAKTIFKAN |
8e6e3936d7024646f8ceb39792006c07f4a9760c | 2021-01-01T21:01:42Z | 9999-12-31T23:59:59Z | |
937c98f870f5c8db970af527aa3c12fd88b1c20a | 2021-01-01T20:55:40Z | 9999-12-31T23:59:59Z | Benar |
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, 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 } ] }
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.
Konsol
Untuk mendapatkan data kunci publik untuk kunci akun layanan:
Menggunakan gcloud CLI atau REST API. Opsi ini tidak tersedia di konsol Google Cloud.
Untuk mendapatkan metadata untuk kunci akun layanan:
- Di Konsol Google Cloud, buka halaman Service accounts.
Langkah-langkah selanjutnya akan muncul secara otomatis 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_FILE
untuk format PEM X.509 atauTYPE_RAW_PUBLIC_KEY
untuk 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, 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 kunci akun layanan untuk autentikasi.
- Pelajari cara menggunakan kunci akun layanan untuk melakukan autentikasi sebagai akun layanan.
- Pahami praktik terbaik untuk mengelola kunci akun layanan.
Cobalah sendiri
Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
Mulai secara gratis