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.
Topik ini menggunakan 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 instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Initialization.
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
Anda dapat menggunakan kode berikut untuk mengatur metode enkripsi default untuk sebuah bucket. Setelah dikonfigurasi, setiap objek yang diunggah ke bucket tanpa metode enkripsi yang ditentukan akan dienkripsi menggunakan metode default bucket tersebut:
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Ganti yourEndpoint dengan Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket. Misalnya, examplebucket.
var bucketName = "examplebucket";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
const string region = "cn-hangzhou";
// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();
// Atur versi signature ke V4.
conf.SignatureVersion = SignatureVersion.V4;
// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// Konfigurasikan enkripsi bucket.
var request = new SetBucketEncryptionRequest(bucketName, "KMS", null);
client.SetBucketEncryption(request);
Console.WriteLine("Set bucket:{0} Encryption succeeded ", bucketName);
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}Ambil konfigurasi enkripsi bucket
Kode berikut mengambil konfigurasi enkripsi sebuah bucket:
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Ganti yourEndpoint dengan Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket. Misalnya, examplebucket.
var bucketName = "examplebucket";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
const string region = "cn-hangzhou";
// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();
// Atur versi signature ke V4.
conf.SignatureVersion = SignatureVersion.V4;
// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// Ambil konfigurasi enkripsi bucket.
var result = client.GetBucketEncryption(bucketName);
Console.WriteLine("Get bucket:{0} Encryption succeeded ", bucketName);
Console.WriteLine("SSEAlgorithm: {0}", result.SSEAlgorithm);
Console.WriteLine("KMSMasterKeyID: {0}", result.KMSMasterKeyID);
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}Hapus konfigurasi enkripsi bucket
Kode berikut menghapus konfigurasi enkripsi sebuah bucket:
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Ganti yourEndpoint dengan Endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur Endpoint menjadi https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket. Misalnya, examplebucket.
var bucketName = "examplebucket";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), atur wilayah menjadi cn-hangzhou.
const string region = "cn-hangzhou";
// Buat instans ClientConfiguration dan ubah parameter default sesuai kebutuhan.
var conf = new ClientConfiguration();
// Atur versi signature ke V4.
conf.SignatureVersion = SignatureVersion.V4;
// Buat instans OssClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
// Hapus konfigurasi enkripsi bucket.
client.DeleteBucketEncryption(bucketName);
Console.WriteLine("Delete bucket:{0} Encryption succeeded ", bucketName);
}
catch (OssException ex)
{
Console.WriteLine("Failed with error code: {0}; Error info: {1}. \nRequestID:{2}\tHostID:{3}",
ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}Referensi
Untuk informasi selengkapnya mengenai operasi API untuk mengatur enkripsi sisi server, lihat PutBucketEncryption.
Untuk informasi selengkapnya mengenai operasi API untuk mengambil konfigurasi enkripsi sisi server, lihat GetBucketEncryption.
Untuk informasi selengkapnya mengenai operasi API untuk menghapus konfigurasi enkripsi sisi server, lihat DeleteBucketEncryption.