Layanan Penyimpanan Objek (OSS) menyediakan enkripsi sisi server untuk data Anda. Saat mengunggah data, OSS mengenkripsinya sebelum menyimpannya. Saat mengunduh data, OSS secara otomatis mendekripsinya dan mengembalikan data mentah. Header respons HTTP menunjukkan bahwa data tersebut telah dienkripsi di sisi server.
Catatan penggunaan
Sebelum mengonfigurasi enkripsi sisi server, pastikan Anda memahami fitur ini. Untuk informasi selengkapnya, lihat Server-side encryption.
Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Jika Anda mengakses OSS dari layanan Alibaba Cloud lain yang berada di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir OSS, lihat Regions and endpoints.
Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Create an OssClient instance.
Untuk mengonfigurasi enkripsi bucket, Anda harus memiliki izin
oss:PutBucketEncryption. Untuk mengambil konfigurasi enkripsi bucket, Anda harus memiliki izinoss:GetBucketEncryption. Untuk menghapus konfigurasi enkripsi bucket, Anda harus memiliki izinoss:DeleteBucketEncryption. Untuk informasi selengkapnya, lihat Grant custom access policies to RAM users.
Konfigurasi enkripsi bucket
Kode berikut menunjukkan cara mengatur metode enkripsi default untuk sebuah bucket. Setelah dikonfigurasi, semua objek yang diunggah ke bucket tanpa metode enkripsi yang ditentukan akan dienkripsi menggunakan metode enkripsi default bucket tersebut:
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* Inisialisasi informasi akun OSS. */
/* Tetapkan yourEndpoint ke titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. */
std::string Endpoint = "yourEndpoint";
/* Tetapkan yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah ke cn-hangzhou. */
std::string Region = "yourRegion";
/* Tetapkan nama bucket. Contoh: examplebucket. */
std::string BucketName = "examplebucket";
/* Inisialisasi jaringan dan sumber daya lainnya. */
InitializeSdk();
ClientConfiguration conf;
conf.signatureVersion = SignatureVersionType::V4;
/* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur. */
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClient client(Endpoint, credentialsProvider, conf);
client.SetRegion(Region);
SetBucketEncryptionRequest setrequest(BucketName);
setrequest.setSSEAlgorithm(SSEAlgorithm::KMS);
/* Atur enkripsi sisi server menggunakan KMS. */
auto outcome = client.SetBucketEncryption(setrequest);
if (!outcome.isSuccess()) {
/* Tangani pengecualian. */
std::cout << "SetBucketEncryption fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
return -1;
}
/* Lepaskan jaringan dan sumber daya lainnya. */
ShutdownSdk();
return 0;
}Dapatkan konfigurasi enkripsi bucket
Kode berikut menunjukkan cara mengambil konfigurasi enkripsi bucket:
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* Inisialisasi informasi akun OSS. */
/* Tetapkan yourEndpoint ke titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. */
std::string Endpoint = "yourEndpoint";
/* Tetapkan yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah ke cn-hangzhou. */
std::string Region = "yourRegion";
/* Tetapkan nama bucket. Contoh: examplebucket. */
std::string BucketName = "examplebucket";
/* Inisialisasi jaringan dan sumber daya lainnya. */
InitializeSdk();
ClientConfiguration conf;
conf.signatureVersion = SignatureVersionType::V4;
/* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur. */
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClient client(Endpoint, credentialsProvider, conf);
client.SetRegion(Region);
/* Dapatkan konfigurasi enkripsi sisi server. */
GetBucketEncryptionRequest request(BucketName);
auto outcome = client.GetBucketEncryption(request);
if (!outcome.isSuccess()) {
/* Tangani pengecualian. */
std::cout << "GetBucketEncryption fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
return -1;
}
/* Lepaskan jaringan dan sumber daya lainnya. */
ShutdownSdk();
return 0;
}Hapus konfigurasi enkripsi bucket
Kode berikut menunjukkan cara menghapus konfigurasi enkripsi bucket:
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;
int main(void)
{
/* Inisialisasi informasi akun OSS. */
/* Tetapkan yourEndpoint ke titik akhir wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan titik akhir ke https://oss-cn-hangzhou.aliyuncs.com. */
std::string Endpoint = "yourEndpoint";
/* Tetapkan yourRegion ke wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan wilayah ke cn-hangzhou. */
std::string Region = "yourRegion";
/* Tetapkan nama bucket. Contoh: examplebucket. */
std::string BucketName = "examplebucket";
/* Inisialisasi jaringan dan sumber daya lainnya. */
InitializeSdk();
ClientConfiguration conf;
conf.signatureVersion = SignatureVersionType::V4;
/* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur. */
auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
OssClient client(Endpoint, credentialsProvider, conf);
client.SetRegion(Region);
/* Hapus konfigurasi enkripsi sisi server. */
DeleteBucketEncryptionRequest request(BucketName);
auto outcome = client.DeleteBucketEncryption(request);
if (!outcome.isSuccess()) {
/* Tangani pengecualian. */
std::cout << "DeleteBucketEncryption fail" <<
",code:" << outcome.error().Code() <<
",message:" << outcome.error().Message() <<
",requestId:" << outcome.error().RequestId() << std::endl;
return -1;
}
/* Lepaskan jaringan dan sumber daya lainnya. */
ShutdownSdk();
return 0;
}Referensi
Untuk informasi mengenai operasi API untuk mengatur enkripsi sisi server, lihat PutBucketEncryption.
Untuk informasi mengenai operasi API untuk mengambil konfigurasi enkripsi sisi server, lihat GetBucketEncryption.
Untuk informasi mengenai operasi API untuk menghapus konfigurasi enkripsi sisi server, lihat DeleteBucketEncryption.