全部产品
Search
文档中心

Object Storage Service:Enkripsi sisi server

更新时间:Oct 11, 2025

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.

Catatan

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.

  • Kunci yang digunakan untuk mengenkripsi objek juga dienkripsi dan ditulis ke metadata objek.

  • Enkripsi sisi server dengan kunci yang dikelola KMS hanya mengenkripsi data objek, bukan metadata objek.

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 kms dikembalikan.

  • 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.

Catatan

Untuk informasi lebih lanjut, lihat Berikan izin kustom kepada pengguna RAM.

  • Setel metode enkripsi untuk bucket

    • Izin untuk mengelola bucket target.

    • Izin PutBucketEncryption dan GetBucketEncryption.

    • Jika Anda menetapkan metode enkripsi ke SSE-KMS dan menentukan ID CMK, Anda juga memerlukan izin ListKeys, Listalias, ListAliasesByKeyId, dan DescribeKey. 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, dan Decrypt. 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

Penting
  • 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

Metode 1: Aktifkan enkripsi sisi server untuk bucket

Aktifkan enkripsi sisi server saat Anda membuat bucket

  1. Masuk ke Konsol OSS.

  2. Klik Buckets, lalu klik Create Bucket.

  3. Di panel Create Bucket, konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut.

    Tabel berikut menjelaskan parameter dalam bagian Enkripsi Sisi Server.

    Parameter

    Deskripsi

    Encryption Method

    Pilih metode enkripsi untuk objek. Nilai valid:

    • None: Enkripsi sisi server dinonaktifkan.

    • OSS-Managed: Gunakan kunci yang dikelola OSS untuk enkripsi. OSS menggunakan kunci berbeda untuk mengenkripsi setiap objek. Untuk perlindungan tambahan, OSS menggunakan kunci utama untuk mengenkripsi kunci enkripsi data.

    • KMS: Gunakan CMK default yang dikelola KMS atau ID CMK tertentu untuk enkripsi dan dekripsi.

      Sebelum menggunakan metode enkripsi KMS, Anda harus mengaktifkan KMS. Untuk informasi lebih lanjut, lihat Aktifkan KMS.

    Encryption Algorithm

    Hanya algoritma enkripsi AES256 yang didukung.

    Encryption Key

    Parameter ini diperlukan hanya saat Anda menetapkan Metode Enkripsi ke KMS.

    Pilih kunci enkripsi. Kunci tersebut dalam format <alias>(ID CMK). Dalam format ini, <alias> adalah alias CMK dan ID CMK adalah ID CMK. Nilai valid:

    • alias/acs/oss(CMK ID): Jika Anda memilih opsi ini, OSS menggunakan kunci layanan default untuk mengenkripsi data di bucket dan secara otomatis mendekripsi objek saat diunduh.

    • alias/<cmkname>(CMK ID): Jika Anda memilih opsi ini, OSS menggunakan kunci layanan yang ditentukan untuk mengenkripsi data di bucket. ID CMK dari objek terenkripsi dicatat dalam metadata objek. Pengguna dengan izin dekripsi dapat secara otomatis mendekripsi objek saat mengunduhnya. Dalam format ini, <cmkname> adalah pengenal opsional untuk CMK yang Anda konfigurasikan saat membuat kunci.

      Sebelum menggunakan ID CMK tertentu, Anda harus membuat kunci normal atau eksternal di wilayah yang sama dengan bucket di konsol KMS. Untuk informasi lebih lanjut, lihat Buat kunci.

    Untuk informasi lebih lanjut, lihat Buat bucket.

  4. Klik OK.

Aktifkan enkripsi sisi server untuk bucket yang sudah ada

  1. Masuk ke Konsol OSS.

  2. Di panel navigasi di sebelah kiri, klik Buckets. Di halaman Bucket, temukan dan klik bucket yang diinginkan.

  3. Di panel navigasi di sebelah kiri, pilih Data Security > Server-side Encryption.

  4. Di halaman Server-side Encryption, klik Settings dan konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut.

    Parameter

    Deskripsi

    Encryption Method

    Pilih metode enkripsi untuk objek. Nilai valid:

    • None: Enkripsi sisi server dinonaktifkan.

    • OSS-Managed: Gunakan kunci yang dikelola OSS untuk enkripsi. OSS menggunakan kunci berbeda untuk mengenkripsi setiap objek. Untuk perlindungan tambahan, OSS menggunakan kunci utama untuk mengenkripsi kunci enkripsi data.

    • KMS: Gunakan CMK default yang dikelola KMS atau ID CMK tertentu untuk enkripsi dan dekripsi.

      Sebelum menggunakan metode enkripsi KMS, Anda harus mengaktifkan KMS. Untuk informasi lebih lanjut, lihat Aktifkan KMS.

    Encryption Algorithm

    Hanya algoritma enkripsi AES256 yang didukung.

    Encryption Key

    Parameter ini diperlukan hanya saat Anda menetapkan Encryption Method ke KMS.

    Pilih kunci enkripsi. Kunci tersebut dalam format <alias>(ID CMK). Dalam format ini, <alias> adalah alias CMK dan ID CMK adalah ID CMK. Nilai valid:

    • OSS membuat kunci layanan untuk Anda secara default: Jika Anda memilih opsi ini, OSS menghasilkan kunci layanan default untuk mengenkripsi data di bucket ini. Saat Anda mengunduh objek dari bucket, OSS secara otomatis mendekripsi objek tersebut. Kunci layanan default yang dibuat oleh OSS dalam format alias/acs/oss (ID CMK). Anda dapat melihat kunci layanan ini di konsol KMS.

      Catatan

      Sebelum Anda dapat melihat kunci layanan ini di konsol KMS, Anda harus mengunggah setidaknya satu file ke bucket target. Ini memastikan bahwa kunci enkripsi dibuat dan dikaitkan dengan layanan OSS Anda.

    • alias/<cmkname>(CMK ID): Jika Anda memilih opsi ini, OSS menggunakan kunci layanan yang ditentukan untuk mengenkripsi data di bucket. ID CMK dari objek terenkripsi dicatat dalam metadata objek. Pengguna dengan izin dekripsi dapat secara otomatis mendekripsi objek saat mengunduhnya. Dalam format ini, <cmkname> adalah pengenal opsional untuk CMK yang Anda konfigurasikan saat membuat kunci.

      Sebelum menggunakan ID CMK tertentu, Anda harus membuat kunci normal atau eksternal di wilayah yang sama dengan bucket di konsol KMS. Untuk informasi lebih lanjut, lihat Buat kunci.

  5. Klik Save.

Metode 2: Tetapkan enkripsi sisi server saat Anda mengunggah file

Untuk informasi lebih lanjut, lihat Unggah sederhana.

Gunakan SDK Alibaba Cloud

Metode 1: Aktifkan enkripsi sisi server untuk bucket

Anda dapat menggunakan SDK untuk mengaktifkan enkripsi sisi server untuk bucket yang sudah ada. Anda tidak dapat mengaktifkan enkripsi sisi server saat membuat bucket. Kode berikut memberikan contoh cara mengaktifkan enkripsi sisi server untuk bucket yang sudah ada menggunakan SDK umum. Untuk informasi lebih lanjut tentang cara mengaktifkan enkripsi sisi server untuk bucket yang sudah ada menggunakan SDK lainnya, lihat Ikhtisar SDK.

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.*;

public class Demo {
    public static void main(String[] args) throws Throwable {
        // Tentukan endpoint wilayah. Dalam contoh ini, endpoint wilayah Tiongkok (Hangzhou) digunakan. Tentukan endpoint sebenarnya Anda.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Tentukan nama bucket. Contoh: examplebucket.
        String bucketName = "examplebucket";
        // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), atur wilayah ke cn-hangzhou.
        String region = "cn-hangzhou";

        // Buat instance OSSClient.
        // Panggil metode shutdown untuk melepaskan sumber daya saat OSSClient tidak lagi digunakan.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);        
        OSS ossClient = OSSClientBuilder.create()
        .endpoint(endpoint)
        .credentialsProvider(credentialsProvider)
        .clientConfiguration(clientBuilderConfiguration)
        .region(region)               
        .build();

        try {
            // Tetapkan algoritma enkripsi ke SM4 untuk bucket. Jika AES-256 digunakan, ganti SSEAlgorithm.SM4 dengan SSEAlgorithm.AES256.
            ServerSideEncryptionByDefault applyServerSideEncryptionByDefault = new ServerSideEncryptionByDefault(SSEAlgorithm.SM4);
            ServerSideEncryptionConfiguration sseConfig = new ServerSideEncryptionConfiguration();
            sseConfig.setApplyServerSideEncryptionByDefault(applyServerSideEncryptionByDefault);
            SetBucketEncryptionRequest request = new SetBucketEncryptionRequest(bucketName, sseConfig);
            ossClient.setBucketEncryption(request);
        } catch (OSSException oe) {
            System.out.println("Tangkap OSSException, yang berarti permintaan Anda sampai ke OSS, "
                    + "tetapi ditolak dengan respons kesalahan karena suatu alasan.");
            System.out.println("Pesan Kesalahan:" + oe.getErrorMessage());
            System.out.println("Kode Kesalahan:" + oe.getErrorCode());
            System.out.println("ID Permintaan:" + oe.getRequestId());
            System.out.println("ID Host:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Tangkap ClientException, yang berarti klien mengalami "
                    + "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
                    + "seperti tidak dapat mengakses jaringan.");
            System.out.println("Pesan Kesalahan:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}
<?php

// Masukkan file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // (Opsional) Tentukan endpoint yang dapat digunakan layanan lain untuk mengakses OSS.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Tentukan nama bucket.
];

// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah.
$longopts = \array_map(function ($key) {
    return "$key:"; // Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));

// Menguraikan parameter baris perintah.
$options = getopt("", $longopts); 

// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: argumen berikut diperlukan: --$key, $help"; // Tentukan bahwa parameter yang diperlukan belum dikonfigurasikan.
        exit(1); 
    }
}

// Dapatkan nilai parameter baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.

// Gunakan variabel lingkungan untuk memuat ID AccessKey dan Rahasia AccessKey.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// Gunakan konfigurasi default SDK.
$cfg = Oss\Config::loadDefault();

// Tentukan penyedia kredensial.
$cfg->setCredentialsProvider($credentialsProvider);

// Tentukan wilayah.
$cfg->setRegion($region);

// Tentukan endpoint jika endpoint disediakan.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Buat instance OSSClient.
$client = new Oss\Client($cfg);

// Buat objek PutBucketEncryptionRequest, gunakan metode enkripsi Key Management Service (KMS), dan tetapkan algoritma enkripsi ke SM4.
$request = new Oss\Models\PutBucketEncryptionRequest(
    bucket: $bucket, 
    serverSideEncryptionRule: new Oss\Models\ServerSideEncryptionRule(
        applyServerSideEncryptionByDefault: new Oss\Models\ApplyServerSideEncryptionByDefault(
            sseAlgorithm: 'KMS', //Gunakan metode enkripsi KMS.
            kmsDataEncryption: 'SM4' // Tetapkan algoritma enkripsi ke SM4.
    ))
);

// Gunakan metode putBucketEncryption untuk mengonfigurasi pengaturan enkripsi sisi server untuk bucket.
$result = $client->putBucketEncryption($request);

// Tampilkan hasil yang dikembalikan.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP yang dikembalikan.
    'request id:' . $result->requestId // ID permintaan permintaan, yang merupakan pengenal unik permintaan.
);
const OSS = require("ali-oss");

const client = new OSS({
  // Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), atur wilayah ke oss-cn-hangzhou.
  region: 'yourregion',
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan Anda telah mengonfigurasi variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Tentukan nama bucket.
  bucket: 'yourbucketname'
});

async function putBucketEncryption() {
  try {
    // Konfigurasikan metode enkripsi untuk bucket.

    const result = await client.putBucketEncryption("bucket-name", {
      SSEAlgorithm: "AES256", // Dalam contoh ini, algoritma enkripsi AES-256 digunakan. Untuk menggunakan KMS untuk enkripsi, Anda harus menentukan KMSMasterKeyID.
      // KMSMasterKeyID: "yourKMSMasterKeyId". Tentukan ID CMK. Parameter ini tersedia dan diperlukan saat SSEAlgorithm diatur ke KMS dan CMK tertentu digunakan untuk enkripsi. Dalam kasus lain, biarkan parameter ini kosong.
    });
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

putBucketEncryption();
import argparse
import alibabacloud_oss_v2 as oss

# Buat pengurai argumen baris perintah untuk menerima parameter yang dimasukkan pengguna.
parser = argparse.ArgumentParser(description="contoh enkripsi bucket")

# Tambahkan argumen baris perintah --region, yang menentukan wilayah tempat bucket berada. Argumen ini diperlukan.
parser.add_argument('--region', help='Wilayah tempat bucket berada.', required=True)

# Tambahkan argumen baris perintah --bucket, yang menentukan nama bucket. Argumen ini diperlukan.
parser.add_argument('--bucket', help='Nama bucket.', required=True)

# Tambahkan argumen baris perintah --endpoint, yang menentukan nama domain yang digunakan layanan lain untuk mengakses OSS. Argumen ini opsional.
parser.add_argument('--endpoint', help='Nama domain yang dapat digunakan layanan lain untuk mengakses OSS')

# Tambahkan argumen baris perintah --sse_algorithm, yang menentukan metode enkripsi sisi server default. Nilai default adalah 'KMS'.
# Nilai valid: KMS (enkripsi menggunakan KMS), AES256 (enkripsi menggunakan AES-256), dan SM4 (enkripsi menggunakan algoritma kriptografi Tiongkok SM4).
parser.add_argument('--sse_algorithm', help='Metode enkripsi sisi server default. Nilai valid: KMS, AES256, dan SM4.', default='KMS')

# Tambahkan argumen baris perintah --kms_master_key_id, yang menentukan ID kunci utama saat SSEAlgorithm diatur ke KMS dan CMK tertentu digunakan.
# Jika Anda tidak menggunakan CMK tertentu, biarkan parameter ini kosong.
parser.add_argument('--kms_master_key_id', help='ID kunci utama yang ditentukan saat SSEAlgorithm diatur ke KMS dan CMK tertentu digunakan untuk enkripsi. Dalam kasus lain, biarkan parameter ini kosong.', default='')

# Tambahkan argumen baris perintah --kms_data_encryption, yang menentukan algoritma yang digunakan untuk enkripsi objek.
# Nilai default adalah 'SM4'. Parameter ini hanya valid saat SSEAlgorithm diatur ke KMS.
parser.add_argument('--kms_data_encryption', help='Algoritma yang digunakan untuk mengenkripsi objek. Jika parameter ini tidak ditentukan, objek dienkripsi menggunakan AES256. Parameter ini hanya valid saat SSEAlgorithm diatur ke KMS. Nilai valid: SM4', default='SM4')

def main():
    # Menguraikan argumen baris perintah.
    args = parser.parse_args()

    # Muat kredensial (AccessKeyId dan AccessKeySecret) dari variabel lingkungan.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # Muat konfigurasi default SDK.
    cfg = oss.config.load_default()

    # Tetapkan penyedia kredensial.
    cfg.credentials_provider = credentials_provider

    # Tetapkan wilayah tempat bucket berada.
    cfg.region = args.region

    # Jika pengguna memberikan endpoint kustom, tetapkan dalam konfigurasi.
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # Inisialisasi klien OSS menggunakan objek konfigurasi.
    client = oss.Client(cfg)

    # Panggil metode put_bucket_encryption untuk menetapkan konfigurasi enkripsi untuk bucket.
    result = client.put_bucket_encryption(
        oss.PutBucketEncryptionRequest(
            bucket=args.bucket,  # Tentukan nama bucket tujuan.
            server_side_encryption_rule=oss.ServerSideEncryptionRule(
                apply_server_side_encryption_by_default=oss.ApplyServerSideEncryptionByDefault(
                    kms_master_key_id=args.kms_master_key_id,  # ID kunci utama. Parameter ini hanya valid saat SSEAlgorithm diatur ke KMS.
                    kms_data_encryption=args.kms_data_encryption,  # Algoritma enkripsi objek. Parameter ini hanya valid saat SSEAlgorithm diatur ke KMS.
                    sse_algorithm=args.sse_algorithm,  # Algoritma enkripsi sisi server, seperti KMS, AES256, atau SM4.
                ),
            ),
        )
    )

    # Cetak kode status dan ID permintaan hasil operasi.
    print(f'kode status: {result.status_code}, '  # Kode status HTTP, yang menunjukkan apakah permintaan berhasil.
          f'ID permintaan: {result.request_id}')     # ID permintaan, yang digunakan untuk melacak log permintaan dan untuk debugging.


if __name__ == "__main__":
    # Titik masuk program. Panggil fungsi utama untuk menjalankan logika.
    main()
using Aliyun.OSS;
using Aliyun.OSS.Common;
// Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
var endpoint = "yourEndpoint";
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
var accessKeyId = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_ID");
var accessKeySecret = Environment.GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET");
// Tentukan nama bucket. Contoh: examplebucket.
var bucketName = "examplebucket";
// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), atur wilayah ke cn-hangzhou.
const string region = "cn-hangzhou";
            
// Buat instance ClientConfiguration dan ubah parameter sesuai kebutuhan.
var conf = new ClientConfiguration();
            
// Gunakan algoritma tanda tangan V4.
 conf.SignatureVersion = SignatureVersion.V4;
            
// Buat instance OSSClient.
var client = new OssClient(endpoint, accessKeyId, accessKeySecret, conf);
client.SetRegion(region);
try
{
    // Konfigurasikan enkripsi sisi server untuk bucket.
    var request = new SetBucketEncryptionRequest(bucketName, "KMS", null);
    client.SetBucketEncryption(request);
    Console.WriteLine("Set bucket:{0} Encryption succeeded ", bucketName);
}
catch (OssException ex)
{
    Console.WriteLine("Gagal dengan kode kesalahan: {0}; Info kesalahan: {1}. \nRequestID:{2}\tHostID:{3}",
        ex.ErrorCode, ex.Message, ex.RequestId, ex.HostId);
}
catch (Exception ex)
{
    Console.WriteLine("Gagal dengan info kesalahan: {0}", ex.Message);
}
package main

import (
	"log"

	"github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
	// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Error creating credentials provider: %v", err)
	}

	// Buat instance OSSClient.
	// Tentukan endpoint wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com. Tentukan endpoint sebenarnya Anda.
	// Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), atur wilayah ke cn-hangzhou. Tentukan wilayah sebenarnya.
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// Tentukan versi algoritma tanda tangan.
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		log.Fatalf("Error creating OSS client: %v", err)
	}

	// Inisialisasi aturan enkripsi. Dalam contoh ini, algoritma enkripsi AES-256 digunakan.
	config := oss.ServerEncryptionRule{
		SSEDefault: oss.SSEDefaultRule{
			SSEAlgorithm: "AES256",
		},
	}

	// Mengonfigurasi aturan enkripsi untuk bucket OSS.
	err = client.SetBucketEncryption("yourBucketName", config)
	if err != nil {
		log.Fatalf("Error setting bucket encryption: %v", err)
	}

	log.Println("Bucket encryption set successfully")
}
#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* Inisialisasi informasi akun yang digunakan untuk mengakses OSS. */
            
    /* Tentukan endpoint wilayah tempat bucket berada. Tentukan endpoint wilayah tempat bucket berada. */
    std::string Endpoint = "yourEndpoint";
    /* Tentukan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), atur wilayah ke cn-hangzhou.*/
    std::string Region = "yourRegion";
    /* Tentukan nama bucket. Contoh: examplebucket. */
    std::string BucketName = "examplebucket";

    /* Inisialisasi sumber daya, seperti sumber daya jaringan. */
    InitializeSdk();

    ClientConfiguration conf;
    conf.signatureVersion = SignatureVersionType::V4;
    /* Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode sampel, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi. */
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);

    SetBucketEncryptionRequest setrequest(BucketName);
    setrequest.setSSEAlgorithm(SSEAlgorithm::KMS);
    /* Konfigurasikan enkripsi sisi server berdasarkan KMS. */
    auto outcome = client.SetBucketEncryption(setrequest);

    if (!outcome.isSuccess()) {
        /* Tangani pengecualian. */
        std::cout << "SetBucketEncryption gagal" <<
        ",kode:" << outcome.error().Code() <<
        ",pesan:" << outcome.error().Message() <<
        ",ID permintaan:" << outcome.error().RequestId() << std::endl;
        return -1;
    }

    /* Lepaskan sumber daya, seperti sumber daya jaringan. */
    ShutdownSdk();
    return 0;
}

Metode 2: Tetapkan enkripsi sisi server saat Anda mengunggah file

Kode berikut memberikan contoh cara menetapkan enkripsi sisi server saat Anda mengunggah objek menggunakan SDK umum. Untuk informasi lebih lanjut tentang cara menetapkan enkripsi sisi server saat Anda mengunggah objek menggunakan SDK lainnya, lihat Ikhtisar SDK.

Java

import com.aliyun.oss.*;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.internal.OSSHeaders;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import com.aliyun.oss.model.ObjectMetadata;
import java.io.File;

public class Put {
    public static void main(String[] args) throws Exception {
        // Endpoint diatur ke Tiongkok (Hangzhou) dalam contoh ini. Atur ke wilayah sebenarnya Anda.
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // Tentukan wilayah yang sesuai dengan endpoint, misalnya, cn-hangzhou.
        String region = "cn-hangzhou";
        // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Tentukan nama bucket, misalnya, examplebucket.
        String bucketName = "examplebucket";
        // Tentukan jalur lengkap objek. Jalur lengkap tidak boleh berisi nama bucket. Contoh: exampledir/exampleobject.txt.
        String objectName = "exampledir/exampleobject.txt";
        // Tentukan jalur lengkap file lokal, misalnya, D:\\localpath\\examplefile.txt.
        // Jika Anda tidak menentukan jalur lokal, file akan diunggah dari jalur lokal yang sesuai dengan proyek tempat program sampel milik.
        String filePath= "D:\\localpath\\examplefile.txt";
        
        // Buat instance OSSClient.
        // Saat instance OSSClient tidak lagi digunakan, panggil metode shutdown untuk melepaskan sumber daya.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        // Secara eksplisit nyatakan penggunaan algoritma tanda tangan V4.
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
        OSS ossClient = OSSClientBuilder.create()
                .endpoint(endpoint)
                .credentialsProvider(credentialsProvider)
                .clientConfiguration(clientBuilderConfiguration)
                .region(region)
                .build();
                
        try {
            // Buat objek ObjectMetadata dan tetapkan metode enkripsi sisi server ke AES256.
            ObjectMetadata metadata = new ObjectMetadata();
            metadata.setHeader(OSSHeaders.OSS_SERVER_SIDE_ENCRYPTION, "AES256");

            // Buat objek PutObjectRequest.
            PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(filePath));
            putObjectRequest.setMetadata(metadata); 

            // Unggah file.
            PutObjectResult result = ossClient.putObject(putObjectRequest);
        } catch (OSSException oe) {
            System.out.println("Tangkap OSSException, yang berarti permintaan Anda sampai ke OSS, "
                    + "tetapi ditolak dengan respons kesalahan karena suatu alasan.");
            System.out.println("Pesan Kesalahan:" + oe.getErrorMessage());
            System.out.println("Kode Kesalahan:" + oe.getErrorCode());
            System.out.println("ID Permintaan:" + oe.getRequestId());
            System.out.println("ID Host:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Tangkap ClientException, yang berarti klien mengalami "
                    + "masalah internal serius saat mencoba berkomunikasi dengan OSS, "
                    + "seperti tidak dapat mengakses jaringan.");
            System.out.println("Pesan Kesalahan:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

PHP

<?php
if (is_file(__DIR__ . '/../autoload.php')) {
    require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
    require_once __DIR__ . '/../vendor/autoload.php';
}

use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\Core\OssException;


// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
$provider = new EnvironmentVariableCredentialsProvider();
// Atur yourEndpoint ke endpoint wilayah tempat bucket berada. Misalnya, untuk Tiongkok (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Tentukan nama bucket, misalnya, examplebucket.
$bucket= "examplebucket";
// Tentukan jalur lengkap objek, misalnya, exampledir/exampleobject.txt. Jalur lengkap tidak boleh berisi nama bucket.
$object = "exampledir/exampleobject.txt";
// Tentukan jalur lengkap file lokal, misalnya, D:\\localpath\\examplefile.txt. Jika Anda tidak menentukan jalur lokal, file akan diunggah dari jalur lokal yang sesuai dengan proyek tempat program sampel milik.
$filePath = "D:\\localpath\\examplefile.txt";

try{
    $config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
    );
    $ossClient = new OssClient($config);

    $options[OssClient::OSS_HEADERS] = array(
         // Tetapkan metode enkripsi sisi server ke AES256.
        "x-oss-server-side-encryption"=>"AES256",
    );
    // Panggil metode uploadFile untuk mengunggah file dan teruskan objek UploadOptions.
    $ossClient->uploadFile($bucket, $object, $filePath, $options);
} catch(OssException $e) {
    printf(__FUNCTION__ . ": GAGAL\n");
    printf($e->getMessage() . "\n");
    return;
}
print(__FUNCTION__ . "OK" . "\n");

Node.js

const OSS = require("ali-oss");
const path = require("path");

const client = new OSS({
  // Atur yourregion ke wilayah tempat bucket berada. Misalnya, untuk Tiongkok (Hangzhou), atur wilayah ke oss-cn-hangzhou.
  region: "oss-cn-hangzhou",
  // Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  // Tentukan nama bucket.
  bucket: "examplebucket",
});

const headers = {
  // Tetapkan metode enkripsi sisi server ke AES256.
  "x-oss-server-side-encryption": "AES256",
};

async function put() {
  try {
    const result = await client.put(
      // Tentukan jalur lengkap objek, misalnya, exampledir/exampleobject.txt. Jalur lengkap tidak boleh berisi nama bucket.
      "exampledir/exampleobject.txt",
      // Tentukan jalur lengkap file lokal, misalnya, D:\\localpath\\examplefile.txt. Jika Anda tidak menentukan jalur lokal, file akan diunggah dari jalur lokal yang sesuai dengan proyek tempat program sampel milik.
      path.normalize("D:\\examplefile.jpg"),
      { headers }
    );
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

put();

Python

# -*- coding: utf-8 -*-
import oss2
import os
from oss2.credentials import EnvironmentVariableCredentialsProvider

# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())

# Atur yourEndpoint ke endpoint wilayah tempat bucket berada. Misalnya, untuk Tiongkok (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'

# Tentukan nama bucket.
bucket_name = 'examplebucket0703'
bucket = oss2.Bucket(auth, endpoint, bucket_name)

# Anda harus membuka file dalam mode biner.
# Tentukan jalur lengkap file lokal. Jika Anda tidak menentukan jalur lokal, file akan diunggah dari jalur lokal yang sesuai dengan proyek tempat program sampel milik.
local_file_path = 'D:\\examplefile.jpg'
with open(local_file_path, 'rb') as fileobj:
    # Metode seek menentukan bahwa operasi baca dan tulis dimulai dari byte ke-1.000. Pengunggahan dimulai dari byte ke-1.000 yang Anda tentukan dan berlanjut hingga akhir file.
    fileobj.seek(1000, os.SEEK_SET)
    # Metode tell mengembalikan posisi saat ini.
    current = fileobj.tell()

    # Tetapkan metode enkripsi sisi server ke AES256.
    headers = {
        'x-oss-server-side-encryption': 'AES256',
    }

    # Tentukan jalur lengkap objek. Jalur lengkap tidak boleh berisi nama bucket.
    object_key = 'exampledir/object1.jpg'
    bucket.put_object(object_key, fileobj, headers=headers)

Go

package main

import (
	"fmt"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
	"os"
)

func main() {
	// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah diatur.
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// Buat instance OSSClient.
	// Atur yourEndpoint ke endpoint bucket. Misalnya, untuk Tiongkok (Hangzhou), atur endpoint ke https://oss-cn-hangzhou.aliyuncs.com. Atur ke wilayah sebenarnya Anda.
	client, err := oss.New("https://oss-cn-hangzhou.aliyuncs.com", "", "", oss.SetCredentialsProvider(&provider))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}

	// Tentukan nama bucket, misalnya, examplebucket.
	bucket, err := client.Bucket("examplebucket")
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
  // Tentukan jalur lengkap objek, misalnya, exampledir/exampleobject.txt. Jalur lengkap tidak boleh berisi nama bucket.
  // Tentukan jalur lengkap file lokal, misalnya, D:\\localpath\\examplefile.txt. Jika Anda tidak menentukan jalur lokal, file akan diunggah dari jalur lokal yang sesuai dengan proyek tempat program sampel milik.
  // Tetapkan metode enkripsi sisi server ke AES256.
	err = bucket.PutObjectFromFile("D:\\localpath\\examplefile.txt", "D:\\examplefile.jpg", oss.ServerSideEncryption("AES256"))
	if err != nil {
		fmt.Println("Error:", err)
		os.Exit(-1)
	}
}

Gunakan alat baris perintah ossutil

Metode 1: Aktifkan enkripsi sisi server untuk bucket

Anda dapat menggunakan alat baris perintah ossutil untuk mengaktifkan enkripsi sisi server untuk bucket. Untuk menginstal ossutil, lihat Instal ossutil.

Perintah berikut menetapkan metode enkripsi sisi server ke AES256 untuk bucket yang sudah ada bernama examplebucket.

ossutil api put-bucket-encryption --bucket examplebucket --server-side-encryption-rule "{\"ApplyServerSideEncryptionByDefault\":{\"SSEAlgorithm\":\"AES256\"}}"

Untuk informasi lebih lanjut, lihat put-bucket-encryption.

Metode 2: Tetapkan enkripsi sisi server saat Anda mengunggah file

ossutil memungkinkan Anda menentukan metode enkripsi sisi server untuk objek saat Anda mengunggahnya. Untuk menginstal ossutil, lihat Instal ossutil. Perintah berikut menetapkan metode enkripsi sisi server ke AES256 saat Anda mengunggah objek.

ossutil cp examplefile.txt oss://examplebucket --metadata=x-oss-server-side-encryption:AES256

Untuk informasi lebih lanjut, lihat cp (unggah file).

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-encryption dalam permintaan dan atur nilainya ke KMS. 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-encryption ke KMS dan parameter x-oss-server-side-encryption-key-id ke 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-encryption dalam permintaan Anda saat Anda mengunggah objek atau memodifikasi metadata-nya. Atur nilai parameter ini ke AES256. 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.