Saat Anda mengunggah objek ke bucket dengan enkripsi sisi server diaktifkan, Layanan Penyimpanan Objek (OSS) mengenkripsi objek tersebut sebelum menyimpannya. Saat memanggil operasi GetObject untuk mengunduh objek, OSS secara otomatis mendekripsi objek dan mengembalikannya. Tanggapan mencakup header x-oss-server-side-encryption untuk menunjukkan bahwa objek telah dienkripsi di sisi server.
Untuk informasi lebih lanjut tentang header tanggapan x-oss-server-side-encryption, lihat Header tanggapan.
Skenario
OSS menggunakan enkripsi sisi server untuk melindungi data saat diam. Fitur ini cocok untuk skenario dengan persyaratan keamanan atau kepatuhan tinggi untuk penyimpanan data, seperti file sampel pembelajaran mendalam dan dokumen kolaboratif online.
Metode enkripsi
OSS menyediakan dua metode enkripsi sisi server untuk berbagai skenario. Anda dapat memilih metode sesuai kebutuhan Anda.
Metode enkripsi | Deskripsi | Skenario | Catatan | Penagihan |
Enkripsi sisi server dengan kunci yang dikelola oleh Key Management Service (SSE-KMS) | Menggunakan kunci master pelanggan default (CMK) yang dikelola oleh Key Management Service (KMS) atau CMK tertentu untuk mengenkripsi dan mendekripsi data. Data dienkripsi dan didekripsi tanpa dikirim melalui jaringan ke server KMS. | Metode ini cocok jika Anda perlu menggunakan kunci yang dikelola sendiri atau kunci yang ditentukan pengguna untuk memenuhi persyaratan keamanan dan kepatuhan. |
| Anda akan dikenakan biaya saat memanggil operasi API untuk mengenkripsi atau mendekripsi data menggunakan CMK yang disimpan di KMS. Untuk informasi lebih lanjut, lihat Penagihan KMS. |
Enkripsi sisi server dengan kunci yang dikelola OSS (SSE-OSS) | Menggunakan kunci yang sepenuhnya dikelola oleh OSS untuk mengenkripsi setiap objek. Untuk keamanan tambahan, OSS juga menggunakan kunci utama untuk mengenkripsi kunci enkripsi data itu sendiri. | Metode ini cocok jika hanya kemampuan enkripsi dasar yang diperlukan dan Anda tidak perlu mengelola kunci. | Tidak ada. | Gratis. |
Catatan
Untuk mengunggah, mengunduh, atau mengakses objek dalam bucket yang dienkripsi menggunakan SSE-KMS, Anda harus memiliki izin untuk menggunakan ID CMK yang ditentukan, dan permintaan tersebut tidak boleh anonim. Jika tidak, permintaan gagal dan kesalahan
Permintaan ini dilarang oleh kmsdikembalikan.Objek dalam bucket yang diambil menggunakan aturan back-to-origin berbasis mirroring tidak dienkripsi secara default.
Mengaktifkan atau mengubah metode enkripsi untuk bucket tidak memengaruhi konfigurasi enkripsi objek yang sudah ada di bucket.
Sebuah objek hanya dapat dienkripsi oleh satu metode enkripsi sisi server pada satu waktu.
Jika Anda mengonfigurasi enkripsi untuk bucket, Anda masih dapat mengonfigurasi metode enkripsi terpisah untuk objek saat mengunggah atau menyalinnya. Metode enkripsi yang dikonfigurasikan untuk objek tersebut akan diutamakan. Untuk informasi lebih lanjut, lihat PutObject.
Izin
Daftar berikut menjelaskan izin yang dibutuhkan Pengguna Resource Access Management (RAM) untuk menggunakan enkripsi sisi server dalam skenario berbeda.
Untuk informasi lebih lanjut, lihat Berikan izin kustom kepada pengguna RAM.
Setel metode enkripsi untuk bucket
Izin untuk mengelola bucket target.
Izin
PutBucketEncryptiondanGetBucketEncryption.Jika Anda menetapkan metode enkripsi ke SSE-KMS dan menentukan ID CMK, Anda juga memerlukan izin
ListKeys,Listalias,ListAliasesByKeyId, danDescribeKey. Berikut adalah contoh kebijakan RAM:{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:DescribeKey" ], "Resource": [ "acs:kms:*:141661496593****:*" // Mengizinkan penggunaan semua kunci KMS di bawah ID akun Alibaba Cloud ini. Untuk mengizinkan hanya CMK tertentu, masukkan ID CMK-nya. ] } ] }
Unggah objek ke bucket terenkripsi
Izin untuk mengunggah objek ke bucket target.
Jika Anda menetapkan metode enkripsi ke KMS dan menentukan ID CMK, Anda juga memerlukan izin
ListKeys,ListAliases,ListAliasesByKeyId,DescribeKey,GenerateDataKey, danDecrypt. Berikut adalah contoh kebijakan RAM:{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:List*", "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "acs:kms:*:141661496593****:*"// Mengizinkan penggunaan semua kunci KMS di bawah ID akun Alibaba Cloud ini. Untuk mengizinkan hanya CMK tertentu, masukkan ID CMK-nya. ] } ] }
Unduh objek dari bucket terenkripsi
Izin untuk mengakses objek di bucket target.
Jika metode enkripsi adalah KMS dan ID CMK ditentukan, Anda juga memerlukan izin
Decrypt. Berikut adalah contoh kebijakan RAM:{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "acs:kms:*:141661496593****:*"// Memberikan izin dekripsi untuk semua kunci KMS di bawah ID akun Alibaba Cloud ini. Untuk memberikan izin dekripsi untuk kunci KMS tertentu, masukkan ID CMK-nya. ] } ] }
Metode
Jika Anda membeli layanan nilai tambah rotasi kunci KMS, enkripsi sisi server mendukung rotasi kunci untuk kunci KMS. Setelah Anda mengaktifkan rotasi kunci, kunci baru hanya digunakan untuk mengenkripsi objek baru. Kunci enkripsi untuk objek yang sudah ada tetap tidak berubah.
Jika Anda memperbarui kunci enkripsi KMS melalui OSS, kunci baru hanya berlaku untuk objek yang ditulis setelah pembaruan. Objek yang sudah ada yang ditulis sebelum pembaruan kunci masih dienkripsi dengan kunci lama. Oleh karena itu, jangan hapus kunci lama setelah pembaruan. Jika tidak, Anda tidak dapat mengakses objek yang sudah ada.
Gunakan Konsol OSS
Gunakan SDK Alibaba Cloud
Gunakan alat baris perintah ossutil
Gunakan kunci yang dikelola KMS untuk enkripsi dan dekripsi
Anda dapat menggunakan CMK yang dikelola KMS untuk menghasilkan kunci enkripsi data untuk mengenkripsi data. Mekanisme enkripsi amplop lebih lanjut mencegah akses data yang tidak sah. Dengan KMS, Anda dapat fokus pada fungsi bisnis seperti enkripsi data, dekripsi, dan verifikasi tanda tangan digital tanpa biaya tinggi untuk memastikan kerahasiaan, integritas, dan ketersediaan kunci Anda.
Gambar berikut menunjukkan logika metode enkripsi SSE-KMS.
Saat Anda menggunakan metode enkripsi SSE-KMS, Anda dapat menggunakan kunci berikut:
Gunakan kunci KMS default yang dikelola OSS
OSS menggunakan CMK default yang dikelola KMS untuk menghasilkan kunci berbeda untuk mengenkripsi objek berbeda dan secara otomatis mendekripsi objek saat diunduh. Saat Anda menggunakan metode ini untuk pertama kali, OSS membuat CMK yang dikelola OSS di platform KMS.
Metode konfigurasi:
Konfigurasikan metode enkripsi bucket
Tetapkan metode enkripsi bucket ke KMS tetapi jangan tentukan ID CMK. Kemudian, semua objek yang diunggah ke bucket ini dienkripsi.
Anda dapat mengonfigurasi metode enkripsi untuk objek target.
Saat Anda mengunggah objek atau memodifikasi metadata-nya, sertakan parameter
x-oss-server-side-encryptiondalam permintaan dan atur nilainya keKMS. OSS kemudian menggunakan CMK default yang dikelola KMS dan algoritma enkripsi AES256 untuk mengenkripsi objek. Untuk informasi lebih lanjut, lihat PutObject.
Gunakan Bring-Your-Own-Key (BYOK)
Setelah Anda menggunakan materi BYOK untuk menghasilkan CMK di konsol KMS, OSS dapat menggunakan KMS CMK tertentu untuk menghasilkan kunci berbeda untuk mengenkripsi objek berbeda. ID CMK dari objek terenkripsi dicatat dalam metadata objek. Hanya pengguna dengan izin dekripsi yang dapat mendekripsi objek saat mereka mengunduhnya.
Ada dua sumber materi BYOK:
Materi BYOK yang disediakan oleh Alibaba Cloud: Saat Anda membuat kunci di platform KMS, pilih Alibaba Cloud KMS sebagai sumber materi kunci.
Materi BYOK Anda sendiri: Saat Anda membuat kunci di platform KMS, pilih External sebagai sumber materi kunci dan impor materi kunci eksternal sesuai kebutuhan. Untuk informasi lebih lanjut, lihat Impor materi kunci.
Metode konfigurasi:
Konfigurasikan metode enkripsi bucket
Tetapkan metode enkripsi bucket ke KMS dan tentukan ID CMK. Kemudian, semua objek yang diunggah ke bucket ini dienkripsi.
Anda dapat mengonfigurasi metode enkripsi untuk objek target.
Saat Anda mengunggah objek atau memodifikasi metadata-nya, atur parameter
x-oss-server-side-encryptionkeKMSdan parameterx-oss-server-side-encryption-key-idke ID CMK tertentu. Dalam hal ini, OSS menggunakan KMS CMK tertentu dan algoritma enkripsi AES256 untuk mengenkripsi objek. Untuk informasi lebih lanjut, lihat PutObject.
Gunakan kunci yang dikelola OSS untuk enkripsi dan dekripsi
OSS menghasilkan dan mengelola kunci enkripsi data dan menggunakan langkah-langkah keamanan multi-faktor berkekuatan tinggi untuk perlindungan. Data dienkripsi menggunakan Standar Enkripsi Lanjutan (AES-256) 256-bit standar industri.
Metode konfigurasi:
Konfigurasikan metode enkripsi bucket
Tetapkan metode enkripsi bucket ke yang dikelola OSS dan tentukan algoritma enkripsi sebagai AES256. Kemudian, semua objek yang diunggah ke bucket ini dienkripsi secara default.
Konfigurasikan metode enkripsi objek target
Untuk mengaktifkan enkripsi sisi server menggunakan kunci yang dikelola OSS, sertakan parameter
x-oss-server-side-encryptiondalam permintaan Anda saat Anda mengunggah objek atau memodifikasi metadata-nya. Atur nilai parameter ini keAES256. Untuk informasi lebih lanjut, lihat PutObject.
Operasi API terkait
Operasi sebelumnya didasarkan pada pemanggilan API. Jika aplikasi Anda memiliki persyaratan penyesuaian tinggi, Anda dapat langsung memanggil operasi API REST. Untuk memanggil operasi API REST, Anda harus menulis kode secara manual untuk menghitung tanda tangan. Untuk informasi lebih lanjut, lihat PutBucketEncryption.
FAQ
Setelah saya mengonfigurasi metode enkripsi untuk bucket, apakah OSS mengenkripsi objek yang sudah ada?
OSS hanya mengenkripsi objek yang diunggah setelah konfigurasi enkripsi sisi server berlaku. Objek yang sudah ada tidak dienkripsi. Untuk mengenkripsi objek yang sudah ada, Anda dapat menggunakan operasi CopyObject untuk menimpanya.