Halaman ini menjelaskan cara membuat dan menghapus kunci akun layanan menggunakan Google Cloud Console, Google Cloud CLI, Identity and Access Management API, atau salah satu dari 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 membuat dan menghapus kunci akun layanan,
minta administrator untuk memberi Anda
Admin Kunci Akun Layanan (roles/iam.serviceAccountKeyAdmin
) peran IAM pada 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.
Membuat kunci akun layanan
Untuk menggunakan akun layanan dari luar Google Cloud, seperti di platform lain atau di infrastruktur lokal, Anda harus membuat identitas akun layanan terlebih dahulu. Pasangan kunci publik/pribadi menyediakan cara yang aman untuk mencapai tujuan ini. Saat Anda membuat kunci akun layanan, bagian publik akan disimpan di Google Cloud, sedangkan bagian pribadi hanya tersedia untuk Anda. Untuk mengetahui informasi selengkapnya tentang pasangan kunci publik/pribadi, lihat Kunci akun layanan.
Anda dapat membuat kunci akun layanan
menggunakan Google Cloud Console, gcloud CLI, metode
serviceAccounts.keys.create()
atau salah satu dari library klien.
Akun layanan dapat memiliki hingga 10 kunci.
Secara default, masa berlaku kunci akun layanan tidak pernah berakhir. Anda dapat menggunakan batasan kebijakan organisasi untuk menentukan jangka waktu berlakunya kunci akun layanan. Untuk mengetahui detailnya, lihat Waktu habis masa berlaku untuk kunci yang dikelola pengguna.
Contoh di bawah ini, SA_NAME
adalah nama
akun layanan Anda, dan PROJECT_ID
adalah ID
project Google Cloud Anda. Anda dapat mengambil string
SA_NAME@PROJECT_ID.iam.gserviceaccount.com
dari halaman Akun Layanan
di Google Cloud Console.
Konsol
- Di Konsol Google Cloud, buka halaman Service accounts.
Langkah-langkah selanjutnya akan muncul secara otomatis di konsol Google Cloud.
- Pilih project.
- Klik alamat email akun layanan yang ingin Anda buatkan kunci.
- Klik tab
Kunci - Klik menu drop-down Kunci, lalu pilih Buat kunci baru.
- Pilih JSON sebagai jenis kunci dan klik Create.
Mengklik Buat akan mendownload file kunci akun layanan. Setelah mendownload file kunci, Anda tidak dapat mendownloadnya lagi.
Kunci yang didownload memiliki format berikut, dengan
PRIVATE_KEY
adalah bagian pribadi dari pasangan kunci
publik/pribadi:
{
"type": "service_account",
"project_id": "PROJECT_ID",
"private_key_id": "KEY_ID",
"private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n",
"client_email": "SERVICE_ACCOUNT_EMAIL",
"client_id": "CLIENT_ID",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL"
}
Pastikan Anda menyimpan file kunci dengan aman, karena file tersebut dapat digunakan untuk melakukan autentikasi sebagai akun layanan Anda. Anda dapat memindahkan dan mengganti nama file ini sesuai keinginan.
Anda dapat menggunakan file kunci akun layanan untuk mengautentikasi aplikasi sebagai akun layanan
gcloud
Jalankan perintah gcloud iam service-accounts keys create
untuk membuat kunci akun layanan.
Ganti nilai berikut:
KEY_FILE
: Jalur ke file output baru untuk kunci pribadi—misalnya,~/sa-private-key.json
.SA_NAME
: Nama akun layanan yang akan dibuatkan kunci.PROJECT_ID
: ID project Google Cloud Anda
gcloud iam service-accounts keys create KEY_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Output:
created key [e44da1202f82f8f4bdd9d92bc412d1d8a837fa83] of type [json] as [/usr/home/username/KEY_FILE] for [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
File kunci akun layanan sekarang sudah didownload ke komputer Anda. Setelah Anda mendownload file kunci, Anda tidak dapat mendownloadnya lagi.
Kunci yang didownload memiliki format berikut, dengan
PRIVATE_KEY
adalah bagian pribadi dari pasangan kunci
publik/pribadi:
{ "type": "service_account", "project_id": "PROJECT_ID", "private_key_id": "KEY_ID", "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n", "client_email": "SERVICE_ACCOUNT_EMAIL", "client_id": "CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL" }
Pastikan Anda menyimpan file kunci dengan aman, karena file tersebut dapat digunakan untuk melakukan autentikasi sebagai akun layanan Anda. Anda dapat memindahkan dan mengganti nama file ini sesuai keinginan.
Anda dapat menggunakan file kunci akun layanan untuk mengautentikasi aplikasi sebagai akun layanan.
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.create
membuat kunci 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
.SA_NAME
: Nama akun layanan yang ingin Anda buatkan kunci.KEY_ALGORITHM
: Opsional. Algoritma kunci yang akan digunakan untuk kunci. Kunci default, yang dapat berubah, adalah kunci RSA 2,048 bit. Untuk daftar semua nilai yang memungkinkan, lihatServiceAccountKeyAlgorithm
referensi.
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys
Meminta isi JSON:
{ "keyAlgorithm": "KEY_ALGORITHM" }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Respons berisi kunci untuk akun layanan Anda. Kunci yang ditampilkan memiliki format berikut,
dengan ENCODED_PRIVATE_KEY
adalah bagian pribadi dari pasangan kunci
publik/pribadi, yang dienkode dalam base64.
{ "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID", "privateKeyType": "TYPE_GOOGLE_CREDENTIALS_FILE", "privateKeyData": "ENCODED_PRIVATE_KEY", "validAfterTime": "DATE", "validBeforeTime": "DATE", "keyAlgorithm": "KEY_ALG_RSA_2048" }
Untuk membuat file kunci yang dapat Anda gunakan untuk mengautentikasi sebagai akun layanan, dekodekan data kunci pribadi dan simpan dalam file:
Linux
Jalankan perintah berikut:
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Ganti PATH
dengan jalur file tempat Anda ingin
menyimpan kunci. Gunakan ekstensi file .json
.
macOS
Jalankan perintah berikut:
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
Ganti PATH
dengan jalur file tempat Anda ingin
menyimpan kunci. Gunakan ekstensi file .json
.
PowerShell
Simpan data kunci pribadi yang dienkode (
ENCODED_PRIVATE_KEY
) ke dalam file.Gunakan
certutil
untuk mendekode file:certutil -decode ENCODED_FILE DECODED_FILE
Ganti nilai berikut:
ENCODED_FILE
: jalur ke file yang berisi data kunci pribadi yang dienkode.DECODED_FILE
: jalur file tempat Anda ingin menyimpan kunci. Gunakan ekstensi file.json
.
Pastikan Anda menyimpan file kunci dengan aman, karena file tersebut dapat digunakan untuk melakukan autentikasi sebagai akun layanan Anda.
Anda dapat menggunakan file kunci akun layanan untuk mengautentikasi aplikasi sebagai akun layanan.
Menghapus kunci akun layanan
ika kunci akun layanan dihapus, Anda tidak dapat menggunakan kunci tersebut untuk melakukan autentikasi dengan Google API secara permanen.
Anda tidak dapat membatalkan penghapusan kunci yang dihapus. Sebelum menghapus kunci, sebaiknya Anda menonaktifkan kunci, lalu tunggu hingga Anda yakin bahwa kunci tersebut tidak diperlukan lagi. Kemudian, Anda dapat menghapus kunci tersebut.
Sebagai praktik terbaik, rotasikan kunci akun layanan Anda secara rutin. Untuk mempelajari lebih lanjut cara merotasi kunci akun layanan, lihat Rotasi kunci akun layanan.
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 dihapus.
- Klik tab Kunci.
- Dari daftar kunci, klik Hapus untuk setiap kunci yang ingin dihapus.
gcloud
Jalankan perintah gcloud iam service-accounts keys delete
untuk menghapus kunci akun layanan.
Ganti nilai berikut:
KEY_ID
: ID kunci yang akan dihapus. Untuk menemukan ID kunci tersebut, cantumkan semua kunci untuk akun layanan, identifikasi kunci yang ingin dihapus, lalu salin ID-nya.SA_NAME
: Nama akun layanan yang memiliki kunci tersebut.PROJECT_ID
: Project ID Google Cloud Anda
gcloud iam service-accounts keys delete KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Output:
Deleted key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
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.delete
menghapus kunci 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
.SA_NAME
: Nama akun layanan yang kuncinya ingin Anda hapus.KEY_ID
: ID langganan yang ingin Anda hapus. Untuk menemukan ID kunci, cantumkan semua kunci untuk akun layanan, identifikasi kunci yang ingin dihapus, lalu salin ID-nya dari akhirname
. ID kunci adalah segala sesuatu setelahkeys/
.
Metode HTTP dan URL:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima respons JSON seperti berikut:
{ }
Langkah selanjutnya
- Pelajari cara mencantumkan dan mendapatkan kunci akun layanan.
- Pelajari cara mengupload kunci akun layanan publik Anda sendiri.
- Pahami praktik terbaik untuk mengelola kunci akun layanan.
- Pelajari alternatif kunci akun layanan untuk autentikasi.
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