Halaman ini menjelaskan cara mengupload kunci publik untuk akun layanan. Setelah mengupload kunci publik, Anda dapat menggunakan kunci pribadi dari pasangan kunci untuk mengautentikasi sebagai akun layanan.
Sebelum memulai
Aktifkan IAM API.
Memahami kredensial akun layanan.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mengupload 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.
Upload kunci publik untuk akun layanan
Anda dapat mengupload bagian kunci publik dari pasangan kunci yang dikelola pengguna untuk mengaitkannya dengan akun layanan. Setelah mengupload kunci publik, Anda dapat menggunakan kunci pribadi dari pasangan kunci sebagai kunci akun layanan.
Kunci yang Anda upload harus berupa kunci publik RSA yang disertakan dalam sertifikat X.509 v3 dan dienkode dalam base64. Anda dapat menggunakan alat seperti OpenSSL untuk membuat kunci dan sertifikat dalam format ini.
Jangan sertakan informasi pribadi apa pun dalam sertifikat X.509. Secara khusus, gunakan subjek umum, dan jangan menambahkan atribut opsional apa pun. Sertifikat dapat dilihat oleh publik; informasi pribadi apa pun dalam sertifikat dapat dilihat oleh siapa pun yang mengambil sertifikat tersebut. Untuk mengetahui informasi selengkapnya, lihat Menghindari pengungkapan informasi rahasia dalam sertifikat X.509 yang diupload.
Misalnya, perintah berikut akan menghasilkan pasangan kunci RSA 2048-bit dan menggabungkan kunci publik dalam sertifikat yang ditandatangani sendiri yang berlaku selama 365 hari:
openssl req -x509 -nodes -newkey rsa:2048 -days 365 \
-keyout /path/to/private_key.pem \
-out /path/to/public_key.pem \
-subj "/CN=unused"
Selanjutnya, Anda dapat mengupload file public_key.pem
sebagai kunci publik untuk akun
layanan.
Konsol
- Di Konsol Google Cloud, buka halaman Service accounts.
Langkah-langkah selanjutnya akan muncul secara otomatis di konsol Google Cloud.
- Pilih project.
- Pada halaman Service accounts, klik alamat email akun layanan yang ingin Anda upload kuncinya.
- Klik tab Kunci.
- Klik menu drop-down Tambahkan kunci, lalu pilih Upload kunci yang ada.
- Klik Cari, lalu cari dan pilih file kunci publik Anda. Anda juga dapat menyalin dan menempelkan konten file kunci publik Anda ke kotak Tempel kunci yang ada.
- Klik Upload.
gcloud
Jalankan perintah
gcloud iam service-accounts keys upload
guna mengupload kunci publik untuk menandatangani kunci akun layanan.
Ganti nilai berikut:
KEY_FILE
: Jalur ke file yang berisi data kunci yang akan diupload—misalnya,./public_key.pem
.SA_NAME
: Nama akun layanan yang akan digunakan untuk mengupload kunci.PROJECT_ID
: Project ID Google Cloud Anda.
gcloud iam service-accounts keys upload KEY_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Outputnya berisi ID unik untuk kunci yang diupload:
Name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0
Untuk menentukan apakah perintah berhasil, jalankan perintah:
gcloud iam service-accounts keys list
gcloud iam service-accounts keys list \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
Output akan berisi ID unik yang sama dengan yang ditampilkan setelah kunci dibuat:
KEY_ID | CREATED_AT | EXPIRES_AT | DISABLED |
c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0 | 2019-06-26T21:01:42Z | 9999-12-31T23:59:59Z |
REST
Metode
projects.serviceAccounts.keys.upload
mengupload kunci publik dari pasangan kunci yang dikelola pengguna, dan menambahkan kunci ini ke
akun layanan.
Sebelum menggunakan salah satu dari 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 akan dikaitkan dengan kunci.PUBLIC_KEY_DATA
: Data kunci publik untuk pasangan kunci. Harus berupa kunci publik RSA yang disertakan dalam sertifikat X.509 v3. Enkodekan data kunci publik dalam base64, termasuk baris pertama,-----BEGIN CERTIFICATE-----
, dan baris terakhir,-----END CERTIFICATE-----
.
Metode HTTP dan URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys:upload
Meminta isi JSON:
{ "publicKeyData": "PUBLIC_KEY_DATA" }
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/c7b74879da78e4cdcbe7e1bf5e129375c0bfa8d0", "validAfterTime": "2020-05-17T19:31:19Z", "validBeforeTime": "2021-05-17T19:31:19Z", "keyAlgorithm": "KEY_ALG_RSA_2048", "keyOrigin": "USER_PROVIDED", "keyType": "USER_MANAGED" }
Menonaktifkan upload kunci publik
Untuk menonaktifkan kemampuan mengupload kunci untuk project Anda, lihat Membatasi upload kunci akun layanan.
Langkah selanjutnya
- Pelajari cara membuat dan menghapus kunci akun layanan.
- Pelajari cara mencantumkan dan mendapatkan 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