全部产品
Search
文档中心

Object Storage Service:Enkripsi sisi server (PHP SDK V1)

更新时间:Nov 30, 2025

Layanan Penyimpanan Objek (OSS) mendukung enkripsi sisi server (SSE). Saat Anda mengunggah data, OSS mengenkripsi data tersebut sebelum menyimpannya. Saat Anda mengunduh data, OSS secara otomatis mendekripsi data yang tersimpan dan mengembalikan data mentahnya. Header respons HTTP menunjukkan bahwa data tersebut telah dienkripsi di sisi server.

Catatan

  • Sebelum mengonfigurasi enkripsi sisi server, pastikan Anda memahami fitur ini. Untuk informasi selengkapnya, lihat Server-side encryption.

  • Pada topik ini, titik akhir publik wilayah China (Hangzhou) digunakan. Untuk mengakses OSS dari layanan Alibaba Cloud lainnya dalam wilayah yang sama, gunakan titik akhir internal. Untuk detail wilayah dan titik akhir yang didukung, 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 Create an OssClient.

  • Untuk mengonfigurasi enkripsi bucket, Anda harus memiliki izin oss:PutBucketEncryption. Untuk mengambil konfigurasi enkripsi bucket, Anda harus memiliki izin oss:GetBucketEncryption. Untuk menghapus konfigurasi enkripsi bucket, Anda harus memiliki izin oss:DeleteBucketEncryption. Untuk informasi selengkapnya, lihat Grant custom access policies to a RAM user.

Konfigurasi enkripsi bucket

Setelah Anda menetapkan metode enkripsi default untuk sebuah bucket, semua objek yang diunggah ke bucket tersebut akan dienkripsi menggunakan metode ini, kecuali jika metode enkripsi lain ditentukan saat pengunggahan.

Kode berikut menunjukkan cara menetapkan metode enkripsi default untuk sebuah bucket:

<?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;
use OSS\Model\ServerSideEncryptionConfig;

// 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. 
$provider = new EnvironmentVariableCredentialsProvider();
// Titik akhir disetel ke China (Hangzhou) pada contoh ini. Tentukan titik akhir aktual untuk wilayah lainnya.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
$bucket= "<yourBucketName>";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);

try {
    // Tetapkan metode enkripsi sisi server default bucket ke SSE-OSS.
    $config = new ServerSideEncryptionConfig("AES256");
    $ossClient->putBucketEncryption($bucket, $config);

    // Tetapkan metode enkripsi sisi server default bucket ke KMS tanpa menentukan ID CMK.
    $config = new ServerSideEncryptionConfig("KMS");
    $ossClient->putBucketEncryption($bucket, $config);

    // Tetapkan metode enkripsi sisi server default bucket ke KMS dan tentukan ID CMK.
    $config = new ServerSideEncryptionConfig("KMS", "your kms id");
    $ossClient->putBucketEncryption($bucket, $config);
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}

print(__FUNCTION__ . ": OK" . "\n"); 

Untuk informasi selengkapnya, lihat PutBucketEncryption.

Ambil konfigurasi enkripsi bucket

Kode berikut menunjukkan cara mengambil konfigurasi enkripsi bucket:

<?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;
use OSS\Model\ServerSideEncryptionConfig;

// 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. 
$provider = new EnvironmentVariableCredentialsProvider();
// Titik akhir disetel ke China (Hangzhou) pada contoh ini. Tentukan titik akhir aktual untuk wilayah lainnya.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
$bucket= "<yourBucketName>";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);

try {
    // Ambil konfigurasi enkripsi bucket.
    $config = $ossClient->getBucketEncryption($bucket);

    // Cetak konfigurasi enkripsi bucket.
    print($config->getSSEAlgorithm());
    print($config->getKMSMasterKeyID());
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}

print(__FUNCTION__ . ": OK" . "\n");   

Untuk informasi selengkapnya, lihat GetBucketEncryption.

Hapus konfigurasi enkripsi bucket

Kode berikut menunjukkan cara menghapus konfigurasi enkripsi bucket:

<?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 contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah disetel. 
$provider = new EnvironmentVariableCredentialsProvider();
// Titik akhir disetel ke China (Hangzhou) pada contoh ini. Tentukan titik akhir aktual untuk wilayah lainnya.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
$bucket= "<yourBucketName>";

$config = array(
        "provider" => $provider,
        "endpoint" => $endpoint,
        "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
        "region"=> "cn-hangzhou"
    );
    $ossClient = new OssClient($config);

try {
    // Hapus konfigurasi enkripsi bucket.
    $ossClient->deleteBucketEncryption($bucket);
} catch (OssException $e) {
    printf(__FUNCTION__ . ": FAILED\n");
    printf($e->getMessage() . "\n");
    return;
}

print(__FUNCTION__ . ": OK" . "\n");   

Untuk informasi selengkapnya, lihat DeleteBucketEncryption.