Upload kunci akun layanan

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

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

  1. Di Konsol Google Cloud, buka halaman Service accounts.

    Buka halaman Service accounts

    Langkah-langkah selanjutnya akan muncul secara otomatis di konsol Google Cloud.

  2. Pilih project.
  3. Pada halaman Service accounts, klik alamat email akun layanan yang ingin Anda upload kuncinya.
  4. Klik tab Kunci.
  5. Klik menu drop-down Tambahkan kunci, lalu pilih Upload kunci yang ada.
  6. 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.
  7. 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, seperti my-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

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