Dokumen ini menjelaskan cara mengonfigurasi metode enkripsi yang diizinkan atau dibatasi untuk objek baru dalam bucket Cloud Storage. Anda dapat mengonfigurasi bucket untuk menerapkan atau membatasi penggunaan enkripsi standar (enkripsi default Google), kunci enkripsi yang dikelola pelanggan (CMEK), atau kunci enkripsi yang disediakan pelanggan (CSEK) untuk setiap objek baru yang dibuat dalam bucket.
Misalnya, untuk membantu melindungi dari serangan ransomware, Anda dapat mewajibkan semua objek baru dienkripsi dengan enkripsi standar atau CMEK, dan membatasi penggunaan kunci enkripsi yang disediakan pelanggan.
Untuk mengetahui informasi selengkapnya tentang metode enkripsi yang tersedia, lihat Opsi enkripsi data.
Cloud Storage menerapkan konfigurasi enkripsi untuk semua tindakan yang membuat objek baru, seperti mengupload objek, menyalin objek, menggabungkan objek, dan memulihkan objek yang dihapus sementara.
Sebelum memulai
Untuk mendapatkan izin yang
diperlukan guna mengonfigurasi penerapan enkripsi untuk bucket,
minta administrator Anda untuk memberi Anda peran IAM
Storage Admin (roles/storage.admin)
di bucket.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk mengonfigurasi penerapan enkripsi untuk bucket. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengonfigurasi penerapan enkripsi untuk bucket:
-
Tetapkan konfigurasi saat membuat bucket baru:
storage.buckets.create -
Perbarui konfigurasi untuk bucket yang ada:
storage.buckets.update
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Membuat bucket yang menerapkan jenis enkripsi
Anda dapat menentukan metode enkripsi yang diizinkan atau dibatasi untuk objek dalam bucket saat membuat bucket baru.
Jika Anda menetapkan kunci Cloud KMS default untuk bucket, Anda juga harus mengizinkan enkripsi menggunakan CMEK atau kunci enkripsi yang disediakan pelanggan.
gcloud
Buat file JSON yang berisi informasi berikut:
{ "gmekEnforcement": {"restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE"}, "cmekEnforcement": {"restrictionMode": "CMEK_RESTRICTION_MODE"}, "csekEnforcement": {"restrictionMode": "CSEK_RESTRICTION_MODE"} }
Ganti kode berikut:
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: Apakah enkripsi menggunakan enkripsi standar (enkripsi default Google) diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan enkripsi standar.FullyRestricted: objek baru tidak dapat menggunakan enkripsi standar.
-
CMEK_RESTRICTION_MODE: Apakah enkripsi menggunakan CMEK diizinkan saat membuat objek di bucket ini. Nilai berikut didukung:NotRestricted: objek baru dapat menggunakan CMEK.FullyRestricted: objek baru tidak dapat menggunakan CMEK.
-
CSEK_RESTRICTION_MODE: Apakah enkripsi menggunakan kunci enkripsi yang disediakan pelanggan diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan kunci enkripsi yang disediakan pelanggan.FullyRestricted: objek baru tidak dapat menggunakan kunci enkripsi yang disediakan pelanggan.
Anda harus mengizinkan setidaknya satu jenis enkripsi. Jika Anda menghilangkan konfigurasi penerapan untuk jenis enkripsi tertentu, jenis enkripsi tersebut akan diizinkan secara default.
-
Gunakan perintah
gcloud storage buckets createdengan flag--encryption-enforcement-file:gcloud storage buckets create gs://BUCKET_NAME \ --encryption-enforcement-file=ENCRYPTION_ENFORCEMENT_FILE
Ganti kode berikut:
BUCKET_NAME: nama bucket.ENCRYPTION_ENFORCEMENT_FILE: jalur ke file JSON yang Anda buat di langkah sebelumnya.
REST API
JSON API
Instal dan lakukan inisialisasigcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization.Buat file JSON yang berisi setelan untuk bucket. Untuk mengetahui daftar lengkap setelan, lihat dokumentasi Buckets: Insert. Setelan berikut hanya menentukan nama bucket dan enkripsi:
{ "name": "BUCKET_NAME", "encryption": { "googleManagedEncryptionEnforcementConfig": { "restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE" }, "customerManagedEncryptionEnforcementConfig": { "restrictionMode": "CMEK_RESTRICTION_MODE" }, "customerSuppliedEncryptionEnforcementConfig": { "restrictionMode": "CSEK_RESTRICTION_MODE" } } }
Ganti kode berikut:
BUCKET_NAME: Nama bucket.-
STANDARD_ENCRYPTION_RESTRICTION_MODE: Apakah enkripsi menggunakan enkripsi standar (enkripsi default Google) diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan enkripsi standar.FullyRestricted: objek baru tidak dapat menggunakan enkripsi standar.
-
CMEK_RESTRICTION_MODE: Apakah enkripsi menggunakan CMEK diizinkan saat membuat objek di bucket ini. Nilai berikut didukung:NotRestricted: objek baru dapat menggunakan CMEK.FullyRestricted: objek baru tidak dapat menggunakan CMEK.
-
CSEK_RESTRICTION_MODE: Apakah enkripsi menggunakan kunci enkripsi yang disediakan pelanggan diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan kunci enkripsi yang disediakan pelanggan.FullyRestricted: objek baru tidak dapat menggunakan kunci enkripsi yang disediakan pelanggan.
Anda harus mengizinkan setidaknya satu jenis enkripsi. Jika Anda menghilangkan konfigurasi penerapan untuk jenis enkripsi tertentu, jenis enkripsi tersebut akan diizinkan secara default.
Gunakan
cURLuntuk memanggil JSON API dengan permintaan BucketPOST:curl -X POST --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?project=PROJECT_ID"
Ganti kode berikut:
JSON_FILE_NAME: jalur ke file JSON yang Anda buat di langkah sebelumnya.PROJECT_ID: ID atau nomor project untuk bucket Anda.
XML API
Instal dan lakukan inisialisasigcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization.Buat file XML yang berisi setelan untuk bucket. Untuk mengetahui daftar lengkap setelan, lihat dokumentasi XML: Membuat bucket. Setelan berikut hanya menentukan penerapan enkripsi:
<CreateBucketConfiguration> <EncryptionConfiguration> <GoogleManagedEncryptionEnforcement> <RestrictionMode>STANDARD_ENCRYPTION_RESTRICTION_MODE</RestrictionMode> </GoogleManagedEncryptionEnforcement> <CustomerManagedEncryptionEnforcement> <RestrictionMode>CMEK_RESTRICTION_MODE</RestrictionMode> </CustomerManagedEncryptionEnforcement> <CustomerSuppliedEncryptionEnforcement> <RestrictionMode>CSEK_RESTRICTION_MODE</RestrictionMode> </CustomerSuppliedEncryptionEnforcement> </EncryptionConfiguration> </CreateBucketConfiguration>
Ganti kode berikut:
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: Apakah enkripsi menggunakan enkripsi standar (enkripsi default Google) diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan enkripsi standar.FullyRestricted: objek baru tidak dapat menggunakan enkripsi standar.
-
CMEK_RESTRICTION_MODE: Apakah enkripsi menggunakan CMEK diizinkan saat membuat objek di bucket ini. Nilai berikut didukung:NotRestricted: objek baru dapat menggunakan CMEK.FullyRestricted: objek baru tidak dapat menggunakan CMEK.
-
CSEK_RESTRICTION_MODE: Apakah enkripsi menggunakan kunci enkripsi yang disediakan pelanggan diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan kunci enkripsi yang disediakan pelanggan.FullyRestricted: objek baru tidak dapat menggunakan kunci enkripsi yang disediakan pelanggan.
Anda harus mengizinkan setidaknya satu jenis enkripsi. Jika Anda menghilangkan konfigurasi penerapan untuk jenis enkripsi tertentu, jenis enkripsi tersebut akan diizinkan secara default.
-
Gunakan
cURLuntuk memanggil XML API dengan permintaan BucketPUT:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-project-id: PROJECT_ID" \ "https://storage.googleapis.com/BUCKET_NAME"
Ganti kode berikut:
XML_FILE_NAME: jalur ke file XML yang Anda buat di langkah sebelumnya.PROJECT_ID: ID atau nomor project untuk bucket Anda.BUCKET_NAME: nama bucket.
Memperbarui jenis enkripsi yang diizinkan untuk bucket
Untuk memperbarui metode enkripsi yang diizinkan untuk objek baru di bucket yang ada, selesaikan langkah-langkah berikut.
Jika bucket memiliki setelan kunci KMS default, Anda tidak dapat membatasi kunci enkripsi yang disediakan pelanggan dan CMEK karena tindakan tersebut akan mencegah pembuatan objek baru. Izinkan CMEK atau CSEK di bucket tersebut, atau hapus kunci Cloud KMS default dari bucket.
gcloud
Buat file JSON yang berisi informasi berikut:
{ "gmekEnforcement": {"restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE"}, "cmekEnforcement": {"restrictionMode": "CMEK_RESTRICTION_MODE"}, "csekEnforcement": {"restrictionMode": "CSEK_RESTRICTION_MODE"} }
Ganti kode berikut:
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: Apakah enkripsi menggunakan enkripsi standar (enkripsi default Google) diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan enkripsi standar.FullyRestricted: objek baru tidak dapat menggunakan enkripsi standar.
-
CMEK_RESTRICTION_MODE: Apakah enkripsi menggunakan CMEK diizinkan saat membuat objek di bucket ini. Nilai berikut didukung:NotRestricted: objek baru dapat menggunakan CMEK.FullyRestricted: objek baru tidak dapat menggunakan CMEK.
-
CSEK_RESTRICTION_MODE: Apakah enkripsi menggunakan kunci enkripsi yang disediakan pelanggan diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan kunci enkripsi yang disediakan pelanggan.FullyRestricted: objek baru tidak dapat menggunakan kunci enkripsi yang disediakan pelanggan.
Anda harus mengizinkan setidaknya satu jenis enkripsi. Jika Anda tidak menentukan jenis enkripsi, konfigurasi yang ada akan dipertahankan.
-
Gunakan perintah
gcloud storage buckets updatedengan flag--encryption-enforcement-file:gcloud storage buckets update gs://BUCKET_NAME \ --encryption-enforcement-file=ENCRYPTION_ENFORCEMENT_FILE
Ganti kode berikut:
BUCKET_NAME: nama bucket.ENCRYPTION_ENFORCEMENT_FILE: jalur ke file JSON yang Anda buat di langkah sebelumnya.
Mungkin perlu waktu hingga dua menit agar konfigurasi yang diperbarui diterapkan.
REST API
JSON API
Instal dan lakukan inisialisasigcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization.Buat file JSON yang berisi informasi berikut:
{ "encryption": { "googleManagedEncryptionEnforcementConfig": { "restrictionMode": "STANDARD_ENCRYPTION_RESTRICTION_MODE" }, "customerManagedEncryptionEnforcementConfig": { "restrictionMode": "CMEK_RESTRICTION_MODE" }, "customerSuppliedEncryptionEnforcementConfig": { "restrictionMode": "CSEK_RESTRICTION_MODE" } } }
Ganti kode berikut:
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: Apakah enkripsi menggunakan enkripsi standar (enkripsi default Google) diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan enkripsi standar.FullyRestricted: objek baru tidak dapat menggunakan enkripsi standar.
-
CMEK_RESTRICTION_MODE: Apakah enkripsi menggunakan CMEK diizinkan saat membuat objek di bucket ini. Nilai berikut didukung:NotRestricted: objek baru dapat menggunakan CMEK.FullyRestricted: objek baru tidak dapat menggunakan CMEK.
-
CSEK_RESTRICTION_MODE: Apakah enkripsi menggunakan kunci enkripsi yang disediakan pelanggan diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan kunci enkripsi yang disediakan pelanggan.FullyRestricted: objek baru tidak dapat menggunakan kunci enkripsi yang disediakan pelanggan.
Anda harus mengizinkan setidaknya satu jenis enkripsi. Jika Anda tidak menentukan jenis enkripsi, konfigurasi yang ada akan dipertahankan.
-
Gunakan
cURLuntuk 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"
Ganti kode berikut:
JSON_FILE_NAME: jalur ke file JSON yang Anda buat di langkah sebelumnya.BUCKET_NAME: nama bucket.
Mungkin perlu waktu hingga dua menit agar konfigurasi yang diperbarui diterapkan.
XML API
Instal dan lakukan inisialisasigcloud CLI, yang memungkinkan Anda membuat token akses untuk header
Authorization.Buat file XML yang berisi setelan enkripsi untuk bucket. Setelan berikut hanya menentukan konfigurasi penerapan enkripsi.
<EncryptionConfiguration> <GoogleManagedEncryptionEnforcement> <RestrictionMode>STANDARD_ENCRYPTION_RESTRICTION_MODE</RestrictionMode> </GoogleManagedEncryptionEnforcement> <CustomerManagedEncryptionEnforcement> <RestrictionMode>CMEK_RESTRICTION_MODE</RestrictionMode> </CustomerManagedEncryptionEnforcement> <CustomerSuppliedEncryptionEnforcement> <RestrictionMode>CSEK_RESTRICTION_MODE</RestrictionMode> </CustomerSuppliedEncryptionEnforcement> </EncryptionConfiguration>
Ganti kode berikut:
-
STANDARD_ENCRYPTION_RESTRICTION_MODE: Apakah enkripsi menggunakan enkripsi standar (enkripsi default Google) diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan enkripsi standar.FullyRestricted: objek baru tidak dapat menggunakan enkripsi standar.
-
CMEK_RESTRICTION_MODE: Apakah enkripsi menggunakan CMEK diizinkan saat membuat objek di bucket ini. Nilai berikut didukung:NotRestricted: objek baru dapat menggunakan CMEK.FullyRestricted: objek baru tidak dapat menggunakan CMEK.
-
CSEK_RESTRICTION_MODE: Apakah enkripsi menggunakan kunci enkripsi yang disediakan pelanggan diizinkan saat membuat objek di bucket ini. Nilai berikut ini didukung:NotRestricted: objek baru dapat menggunakan kunci enkripsi yang disediakan pelanggan.FullyRestricted: objek baru tidak dapat menggunakan kunci enkripsi yang disediakan pelanggan.
Anda harus mengizinkan setidaknya satu jenis enkripsi.
-
Gunakan
cURLuntuk memanggil XML API dengan permintaan BucketPUTyang dicakup ke?encryptionConfig:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?encryptionConfig"
Ganti kode berikut:
XML_FILE_NAME: jalur ke file XML yang Anda buat di langkah sebelumnya.BUCKET_NAME: nama bucket.
Mungkin perlu waktu hingga dua menit agar konfigurasi yang diperbarui diterapkan.
Melihat setelan enkripsi untuk bucket
Untuk mengetahui langkah-langkah melihat metode enkripsi yang diizinkan untuk bucket, lihat Mendapatkan metadata bucket.
Langkah berikutnya
- Tetapkan kunci Cloud KMS default pada bucket.
- Pelajari cara menggunakan batasan kustom untuk menerapkan jenis enkripsi.