Halaman ini menjelaskan cara menggunakan kunci enkripsi Cloud Key Management Service yang dibuat secara manual dengan Cloud Storage, termasuk menyetel kunci default pada bucket dan menambahkan kunci ke setiap objek. Kunci enkripsi Cloud KMS adalah kunci enkripsi yang dikelola pelanggan (CMEK). Kunci tersebut dibuat dan dikelola melalui Cloud KMS dan disimpan sebagai kunci software, dalam cluster HSM, atau secara eksternal.
Jika Anda ingin menggunakan fitur Autokey Cloud KMS untuk membuat ring kunci dan kunci on demand yang melindungi bucket Cloud Storage dan objek di dalamnya, lihat Menggunakan Autokey dengan resource Cloud Storage. Untuk menentukan jenis kunci yang tepat bagi Anda saat membandingkan CMEK dengan Cloud KMS dengan Autokey dan enkripsi default Google, lihat Perbandingan CMEK dan kunci milik serta dikelola Google.
Sebelum memulai
Sebelum menggunakan fitur ini di Cloud Storage, Anda harus:
Aktifkan Cloud KMS API untuk project yang akan menyimpan kunci enkripsi Anda.
Dapatkan izin yang memadai untuk project yang akan menyimpan kunci enkripsi Anda:
Jika Anda memiliki project yang akan menyimpan kunci, kemungkinan besar Anda memiliki izin yang diperlukan.
Jika berencana membuat kunci dan key ring enkripsi baru, Anda harus memiliki izin
cloudkms.keyRings.create
dancloudkms.cryptoKeys.create
.Baik menggunakan key ring dan kunci baru atau yang sudah ada, Anda harus memiliki izin
cloudkms.cryptoKeys.setIamPolicy
untuk kunci yang akan digunakan untuk enkripsi.Izin ini dapat Anda gunakan untuk memberi agen layanan Cloud Storage akses ke kunci Cloud KMS.
Izin di atas terdapat dalam peran Admin Cloud KMS.
Baca artikel Menggunakan IAM dengan Cloud KMS untuk mendapatkan petunjuk tentang cara mendapatkan peran ini atau peran Cloud KMS lainnya.
Memiliki key ring Cloud KMS dan memiliki minimal satu kunci di dalam key ring.
Key ring harus berada di lokasi yang sama dengan data yang ingin Anda enkripsi, tetapi dapat berada di project yang berbeda. Untuk mengetahui lokasi Cloud KMS yang tersedia, lihat lokasi Cloud KMS.
Memiliki izin yang memadai untuk menangani objek di bucket Cloud Storage:
Jika Anda memiliki project yang berisi bucket, kemungkinan besar Anda memiliki izin yang diperlukan.
Jika menggunakan IAM, Anda harus memiliki izin
storage.objects.create
untuk menulis objek ke bucket dan izinstorage.objects.get
untuk membaca objek dari bucket. Lihat Menggunakan Izin IAM untuk mengetahui petunjuk cara mendapatkan peran, seperti Storage Object Admin yang memiliki izin ini.Jika menggunakan ACL, Anda harus memiliki izin
WRITER
cakupan bucket untuk menulis objek ke bucket dan izinREADER
cakupan objek untuk membaca objek dari bucket singkat ini. Lihat Menetapkan ACL untuk petunjuk tentang cara melakukannya.
-
Dapatkan alamat email agen layanan yang terkait dengan project yang berisi bucket Cloud Storage Anda. Dengan melakukan langkah ini, Anda secara otomatis akan membuat agen layanan jika saat ini belum ada.
Menetapkan kunci Cloud KMS ke agen layanan
Agar dapat menggunakan CMEK, berikan izin kepada agen layanan Cloud Storage yang terkait dengan bucket Anda untuk menggunakan kunci Cloud KMS Anda dalam proses enkripsi dan dekripsi:
Konsol
- Buka browser Cloud Key Management Service Keys di Konsol Google Cloud.
Buka browser Kunci Cloud KMS Klik nama key ring yang berisi kunci yang ingin Anda gunakan.
Centang kotak untuk kunci yang diinginkan.
Tab Izin di panel jendela kanan akan tersedia.
Pada dialog Add principals, tentukan alamat email agen layanan Cloud Storage yang Anda berikan akses.
Di menu drop-down Select a role, pilih Cloud KMS CryptoKey Encrypter/Decrypte.
Klik Tambahkan.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di konsol Google Cloud, lihat Pemecahan masalah.
Command line
Gunakan perintah gcloud storage service-agent
dengan flag --authorize-cmek
untuk memberikan izin kepada agen layanan yang terkait dengan bucket Anda guna mengenkripsi dan mendekripsi objek menggunakan kunci Cloud KMS Anda .
gcloud storage service-agent --project=PROJECT_STORING_OBJECTS --authorize-cmek=KEY_RESOURCE
Dengan keterangan:
PROJECT_STORING_OBJECTS
adalah ID atau nomor untuk project yang berisi objek yang ingin Anda enkripsi atau dekripsi. Contoh,my-pet-project
.KEY_RESOURCE
adalah resource kunci Cloud KMS Anda.
Library klien
C#
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Go
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Java
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
PHP
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Ruby
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi informasi berikut:
{ "policy": { "bindings": { "role": "roles/cloudkms.cryptoKeyEncrypterDecrypter", "members": "serviceAccount:SERVICE_AGENT_EMAIL_ADDRESS" }, } }
Dengan
SERVICE_AGENT_EMAIL_ADDRESS
adalah alamat email yang terkait dengan agen layanan Anda. Contohnya,service-7550275089395@gs-project-accounts.iam.gserviceaccount.com
.Gunakan
cURL
untuk memanggil Cloud KMS API dengan permintaanPOST setIamPolicy
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://cloudkms.googleapis.com/v1/KEY_RESOURCE:setIamPolicy"
Dengan keterangan:
JSON_FILE_NAME
adalah jalur untuk file JSON yang Anda buat di Langkah 2.KEY_RESOURCE
adalah resource kunci Cloud KMS Anda.
XML API
API XML tidak dapat digunakan untuk menetapkan Cloud KMS ke agen layanan. Gunakan salah satu alat Cloud Storage lain, seperti gcloud CLI.
Gunakan kunci enkripsi default
Menetapkan kunci default untuk bucket
Untuk menambahkan, mengubah, atau menghapus kunci Cloud KMS yang digunakan secara default saat objek ditulis ke bucket:
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang diinginkan.
Di halaman Detail bucket, klik tab Konfigurasi.
Klik Ikon pensil yang terkait dengan entri Jenis enkripsi.
Tetapkan atau hapus kunci Cloud KMS default untuk bucket.
Jika bucket saat ini tidak menggunakan kunci Cloud KMS, pilih tombol pilihan Customer-managed key, lalu pilih salah satu kunci yang tersedia di menu drop-down terkait.
Jika bucket saat ini menggunakan kunci Cloud KMS, ubah kunci Cloud KMS di menu drop-down, atau hapus kunci Cloud KMS dengan memilih tombol radio Kunci yang dikelola Google.
Klik Simpan.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di Konsol Google Cloud, lihat Pemecahan masalah.
Command line
Gunakan perintah gcloud storage buckets update
dengan flag yang sesuai:
gcloud storage buckets update gs://BUCKET_NAME FLAG
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang relevan. Contohnya,my-bucket
FLAG
adalah setelan yang diinginkan untuk kunci default di bucket. Gunakan salah satu format berikut:--default-encryption-key=
dan resource kunci Cloud KMS, jika Anda ingin menambahkan atau mengubah kunci default.--clear-default-encryption-key
, jika ingin menghapus kunci default pada bucket.
Jika berhasil, responsnya akan terlihat seperti ini:
Updating gs://my-bucket/... Completed 1
Library klien
C++
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menetapkan kunci enkripsi default yang dikelola pelanggan pada bucket:
Contoh berikut menghapus kunci enkripsi default yang dikelola pelanggan dari bucket:
C#
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menetapkan kunci enkripsi default yang dikelola pelanggan pada bucket:
Contoh berikut menghapus kunci enkripsi default yang dikelola pelanggan dari bucket:
Go
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menetapkan kunci enkripsi default yang dikelola pelanggan pada bucket:
Contoh berikut menghapus kunci enkripsi default yang dikelola pelanggan dari bucket:
Java
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menetapkan kunci enkripsi default yang dikelola pelanggan pada bucket:
Contoh berikut menghapus kunci enkripsi default yang dikelola pelanggan dari bucket:
Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menetapkan kunci enkripsi default yang dikelola pelanggan pada bucket:
Contoh berikut menghapus kunci enkripsi default yang dikelola pelanggan dari bucket:
PHP
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menetapkan kunci enkripsi default yang dikelola pelanggan pada bucket:
Contoh berikut menghapus kunci enkripsi default yang dikelola pelanggan dari bucket:
Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menetapkan kunci enkripsi default yang dikelola pelanggan pada bucket:
Contoh berikut menghapus kunci enkripsi default yang dikelola pelanggan dari bucket:
Ruby
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut menetapkan kunci enkripsi default yang dikelola pelanggan pada bucket:
Contoh berikut menghapus kunci enkripsi default yang dikelola pelanggan dari bucket:
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file JSON yang berisi informasi berikut:
{ "encryption": { "defaultKmsKeyName": "KEY_RESOURCE" } }
Dengan
KEY_RESOURCE
adalah resource kunci Cloud KMS Anda.Untuk menghapus kunci Cloud KMS default dari bucket, gunakan berikut ini di file JSON:
{ "encryption": { "defaultKmsKeyName": null } }
Gunakan
cURL
untuk memanggil JSON API dengan permintaan BucketPATCH
:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
Dengan keterangan:
JSON_FILE_NAME
adalah jalur untuk file JSON yang Anda buat di Langkah 2.BUCKET_NAME
adalah nama bucket yang relevan. Contoh,my-bucket
.
XML API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Buat file XML yang berisi informasi berikut:
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Dengan
KEY_RESOURCE
adalah resource kunci Cloud KMS Anda.Untuk menghapus kunci Cloud KMS default dari bucket, gunakan hal berikut di file XML:
<EncryptionConfiguration></EncryptionConfiguration>
Gunakan
cURL
untuk memanggil XML API dengan permintaan BucketPUT
dan parameter string kueriencryptionConfig
:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Dengan keterangan:
XML_FILE_NAME
adalah jalur untuk file XML yang Anda buat pada Langkah 2.BUCKET_NAME
adalah nama bucket yang relevan. Contohnya,my-bucket
Melihat kunci default untuk bucket
Untuk melihat kunci Cloud KMS yang saat ini ditetapkan sebagai default untuk bucket Anda:
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang diinginkan.
Di halaman Detail bucket, klik tab Konfigurasi.
Kunci default saat ini untuk bucket Anda akan muncul di kolom Kunci enkripsi.
Untuk mempelajari cara mendapatkan informasi error mendetail tentang operasi Cloud Storage yang gagal di konsol Google Cloud, lihat Pemecahan masalah.
Command line
Gunakan perintah gcloud storage buckets describe
dengan
flag --format
:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(default_kms_key)"
Dengan BUCKET_NAME
adalah nama bucket
yang kuncinya ingin Anda lihat. Contohnya, my-bucket
Jika berhasil, responsnya akan terlihat seperti ini:
default_kms_key: KEY_RESOURCE
Library klien
C++
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
C#
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS default, ikuti petunjuk untuk menampilkan metadata bucket dan cari kolom kunci KMS default dalam respons.Go
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS default, ikuti petunjuk untuk menampilkan metadata bucket dan cari kolom kunci KMS default dalam respons.Java
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS default, ikuti petunjuk untuk menampilkan metadata bucket dan cari kolom kunci KMS default dalam respons.Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS default, ikuti petunjuk untuk menampilkan metadata bucket dan cari kolom kunci KMS default dalam respons.PHP
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS default, ikuti petunjuk untuk menampilkan metadata bucket dan cari kolom kunci KMS default dalam respons.Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS default, ikuti petunjuk untuk menampilkan metadata bucket dan cari kolom kunci KMS default dalam respons.Ruby
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS default, ikuti petunjuk untuk menampilkan metadata bucket dan cari kolom kunci KMS default dalam respons.REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan
cURL
untuk memanggil JSON API dengan permintaan BucketGET
yang menyertakanfields
yang diinginkan:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=encryption"
Dengan
BUCKET_NAME
adalah nama bucket yang kuncinya ingin Anda lihat. Contoh,my-bucket
.Responsnya akan terlihat seperti contoh berikut:
{ "encryption" : { "defaultKmsKeyName": "KEY_RESOURCE" }, }
XML API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan
cURL
untuk memanggil XML API dengan permintaan BucketGET
yang menyertakan parameter kueriencryption
:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Dengan
BUCKET_NAME
adalah nama bucket yang kuncinya ingin Anda lihat. Contoh,my-bucket
.Responsnya akan terlihat seperti contoh berikut:
<EncryptionConfiguration> <DefaultKmsKeyName>KEY_RESOURCE</DefaultKmsKeyName> </EncryptionConfiguration>
Mengenkripsi objek dengan kunci Cloud KMS
Anda dapat mengenkripsi masing-masing objek dengan kunci Cloud KMS. Hal ini berguna jika Anda ingin menggunakan kunci yang berbeda dari kunci default yang ditetapkan pada bucket, atau jika Anda belum memiliki kunci default yang ditetapkan pada bucket. Nama resource kunci yang digunakan untuk mengenkripsi objek disimpan dalam metadata objek.
Konsol
Konsol Google Cloud tidak dapat digunakan untuk menentukan kunci Cloud KMS per objek. Gunakan gcloud CLI atau library klien.
Command line
Gunakan perintah gcloud storage cp
dengan flag --encryption-key
:
gcloud storage cp SOURCE_DATA gs://BUCKET_NAME/OBJECT_NAME --encryption-key=KEY_RESOURCE
Dengan keterangan:
SOURCE_DATA
adalah lokasi sumber dari data yang Anda enkripsi. Lokasi ini dapat berupa lokasi sumber mana pun yang didukung oleh perintahcp
. Contohnya,gs://my-bucket/pets/old-dog.png
.BUCKET_NAME
adalah nama bucket tujuan untuk perintah salin ini. Contohnya,my-bucket
.OBJECT_NAME
adalah nama objek terenkripsi akhir. Contoh,pets/new-dog.png
.KEY_RESOURCE
adalah resource kunci Cloud KMS yang ingin Anda gunakan untuk mengenkripsi objek.
Library klien
C++
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
C#
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Go
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Java
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
PHP
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Ruby
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Tambahkan data objek ke isi permintaan.
Gunakan
cURL
untuk memanggil JSON API dengan permintaan ObjekPOST
:curl -X POST --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME&kmsKeyName=KEY_RESOURCE"
Dengan keterangan:
OBJECT
adalah jalur ke objek yang Anda upload. Contoh,Desktop/dog.png
.OBJECT_CONTENT_TYPE
adalah jenis konten objek. Contohnya,image/png
BUCKET_NAME
adalah nama bucket tempat Anda mengupload objek. Contohnya,my-bucket
OBJECT_NAME
adalah nama objek yang dienkode ke URL yang Anda upload. Misalnya,pets/dog.png
, dienkode URL sebagaipets%2Fdog.png
.KEY_RESOURCE
adalah resource kunci Cloud KMS.
XML API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Tambahkan data objek ke isi permintaan.
Gunakan
cURL
untuk memanggil XML API dengan permintaan ObjekPUT
:curl -X PUT --data-binary @OBJECT \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-encryption-kms-key-name: KEY_RESOURCE" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
Dengan keterangan:
OBJECT
adalah jalur ke objek yang Anda upload. Contoh,Desktop/dog.png
.OBJECT_CONTENT_TYPE
adalah jenis konten objek. Contohnya,image/png
BUCKET_NAME
adalah nama bucket tempat Anda mengupload objek. Contohnya,my-bucket
OBJECT_NAME
adalah nama objek yang dienkode ke URL yang Anda upload. Misalnya,pets/dog.png
, dienkode URL sebagaipets%2Fdog.png
.KEY_RESOURCE
adalah resource kunci Cloud KMS Anda.
Merotasi dari kunci yang disediakan pelanggan ke kunci Cloud KMS
Jika objek Anda dienkripsi dengan kunci enkripsi yang disediakan pelanggan, Anda dapat merotasi objek tersebut untuk menggunakan kunci Cloud KMS dengan menulis ulang objek:
Konsol
Konsol Google Cloud tidak dapat digunakan untuk mengubah kunci enkripsi per objek. Gunakan gcloud CLI atau library klien.
Command line
Gunakan perintah gcloud storage objects update
dengan
flag yang sesuai:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --encryption-key=KMS_KEY --decryption-keys=CSEK_KEY
Dengan keterangan:
BUCKET_NAME
adalah nama bucket tempat objek yang kuncinya Anda ganti. Contohnya,my-bucket
.OBJECT_NAME
adalah nama objek yang kuncinya Anda diganti. Contohnya,pets/dog.png
KMS_KEY
adalah resource kunci Cloud KMS yang ingin Anda gunakan untuk mengenkripsi objek.CSEK_KEY
adalah kunci enkripsi yang disediakan pelanggan saat ini yang digunakan pada objek.
Library klien
C++
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
C#
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Go
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Java
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
PHP
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Ruby
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan
cURL
untuk memanggil JSON API dengan permintaan ObjekPOST
:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Length: 0" \ -H "x-goog-copy-source-encryption-algorithm: AES256" \ -H "x-goog-copy-source-encryption-key: OLD_ENCRYPTION_KEY" \ -H "x-goog-copy-source-encryption-key-sha256: HASH_OF_OLD_KEY" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME?kmsKeyName=KEY_RESOURCE"
Dengan keterangan:
OLD_ENCRYPTION_KEY
adalah kunci AES-256 lama yang digunakan untuk mengenkripsi objek Anda.HASH_OF_OLD_KEY
adalah hash SHA-256 lama untuk kunci AES-256 Anda.BUCKET_NAME
adalah nama bucket tempat objek yang relevan berada. Contohnya,my-bucket
OBJECT_NAME
adalah nama objek yang dienkode ke URL yang kuncinya Anda putar. Misalnya,pets/dog.png
, dienkode URL sebagaipets%2Fdog.png
.KEY_RESOURCE
adalah resource kunci Cloud KMS.
XML API
API XML tidak mendukung rotasi dari kunci enkripsi yang disediakan pelanggan ke kunci Cloud KMS melalui penulisan ulang objek. Untuk melakukan rotasi tersebut menggunakan XML API, Anda harus:
.
Mengidentifikasi kunci yang digunakan untuk mengenkripsi objek
Untuk menemukan kunci Cloud KMS yang digunakan untuk mengenkripsi objek:
Konsol
- Di Konsol Google Cloud, buka halaman Bucket Cloud Storage.
Dalam daftar bucket, klik nama bucket yang berisi objek yang diinginkan.
Halaman Detail bucket akan terbuka, dan tab Objects akan dipilih.
Buka objek, yang mungkin terletak dalam folder.
Di kolom Enkripsi, arahkan kursor ke entri untuk objek yang diinginkan.
Nama dan versi kunci ditampilkan dalam format:
LOCATION/KEY_RING_NAME/KEY_NAME/KEY_VERSION
Command line
Gunakan perintah gcloud storage objects describe
dengan flag --format
:
gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME --format="default(kms_key)"
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang berisi objek terenkripsi. Contohnya,my-bucket
OBJECT_NAME
adalah nama objek yang dienkripsi. Contohnya,pets/dog.png
Jika berhasil, responsnya akan terlihat seperti ini:
kms_key: projects/my-pet-project/locations/LOCATION_NAME/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME/cryptoKeyVersions/VERSION_NUMBER
Library klien
C++
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C++ API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
C#
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage C# API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS yang terkait dengan objek, ikuti petunjuk untuk menampilkan metadata objek dan cari kolom nama kunci KMS dalam respons.Go
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Go API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS yang terkait dengan objek, ikuti petunjuk untuk menampilkan metadata objek dan cari kolom nama kunci KMS dalam respons.Java
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Java API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS yang terkait dengan objek, ikuti petunjuk untuk menampilkan metadata objek dan cari kolom nama kunci KMS dalam respons.Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS yang terkait dengan objek, ikuti petunjuk untuk menampilkan metadata objek dan cari kolom nama kunci KMS dalam respons.PHP
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage PHP API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS yang terkait dengan objek, ikuti petunjuk untuk menampilkan metadata objek dan cari kolom nama kunci KMS dalam respons.Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Ruby
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Ruby API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk melihat kunci KMS yang terkait dengan objek, ikuti petunjuk untuk menampilkan metadata objek dan cari kolom nama kunci KMS dalam respons.REST API
JSON API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan
cURL
untuk memanggil JSON API dengan permintaan ObjekGET
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME?fields=kmsKeyName"
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang berisi objek terenkripsi. Contohnya,my-bucket
OBJECT_NAME
adalah nama objek terenkripsi yang dienkode URL. Misalnya,pets/dog.png
, dienkode URL sebagaipets%2Fdog.png
.
XML API
Menginstal dan melakukan inisialisasi gcloud CLI , yang memungkinkan Anda membuat token akses untuk header
Authorization
.Gunakan
cURL
untuk memanggil XML API dengan permintaan ObjekGET
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?encryption"
Dengan keterangan:
BUCKET_NAME
adalah nama bucket yang berisi objek terenkripsi. Contohnya,my-bucket
OBJECT_NAME
adalah nama objek terenkripsi yang dienkode URL. Misalnya,pets/dog.png
, dienkode URL sebagaipets%2Fdog.png
.
Mendekripsi objek
Mendekripsi objek yang dienkripsi dengan kunci Cloud KMS dilakukan secara otomatis selama agen layanan yang relevan memiliki akses ke kunci tersebut. Untuk mengetahui informasi selengkapnya, lihat Agen layanan dengan CMEK.
Langkah selanjutnya
- Pelajari CMEK di Cloud Storage lebih lanjut.
- Pelajari opsi enkripsi lain yang tersedia di Cloud Storage.
- Rotasi kunci Cloud KMS Anda.
- Pelajari produk lain yang dapat berfungsi dengan Cloud KMS.
- Pelajari batasan kebijakan organisasi
restrictNonCmekServices
danrestrictCmekCryptoKeyProjects
untuk memiliki lebih banyak kontrol atas penggunaan kunci Cloud KMS.