Object Storage Service (OSS) は、データに対してサーバ側暗号化機能を提供します。データをアップロードすると、OSS はデータを暗号化してからストレージに保存します。データをダウンロードする際は、OSS が自動的にデータを復号し、生データを返します。データがサーバー側で暗号化されたことは、HTTP 応答ヘッダーで示されます。
バケットの暗号化設定
以下のコードを使用して、バケットのデフォルトの暗号化方式を設定します。この設定が完了すると、暗号化方式を指定せずにバケットにアップロードされたオブジェクトは、すべてバケットのデフォルト方式で暗号化されます。
const OSS = require("ali-oss");
const client = new OSS({
// region をバケットが配置されているリージョンに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、region を oss-cn-hangzhou に設定します。
region: 'yourregion',
// 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// bucket をご利用のバケット名に設定します。
bucket: 'yourbucketname'
});
async function putBucketEncryption() {
try {
// バケットの暗号化方式を設定します。
const result = await client.putBucketEncryption("bucket-name", {
SSEAlgorithm: "AES256", // この例では、AES256 暗号化を設定する方法を示します。KMS 暗号化を使用する場合は、KMSMasterKeyID プロパティを追加する必要があります。
// KMSMasterKeyID: "yourKMSMasterKeyId"。KMS キー ID を設定します。このパラメーターは、暗号化方式が KMS の場合に設定できます。SSEAlgorithm の値が KMS で、指定したキーを使用して暗号化する場合、キー ID を入力する必要があります。それ以外の場合、このパラメーターは空にする必要があります。
});
console.log(result);
} catch (e) {
console.log(e);
}
}
putBucketEncryption();バケットの暗号化設定の取得
以下のコードは、バケットの暗号化設定を取得します。
const OSS = require("ali-oss");
const client = new OSS({
// region をバケットが配置されているリージョンに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、region を oss-cn-hangzhou に設定します。
region: 'yourregion',
// 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// bucket をご利用のバケット名に設定します。
bucket: 'yourbucketname'
});
async function getBucketEncryption() {
try {
const result = await client.getBucketEncryption("bucket-name");
console.log(result);
} catch (e) {
console.log(e);
}
}
getBucketEncryption();バケットの暗号化設定の削除
以下のコードは、バケットの暗号化設定を削除します。
const OSS = require("ali-oss");
const client = new OSS({
// region をバケットが配置されているリージョンに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、region を oss-cn-hangzhou に設定します。
region: 'yourregion',
// 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// bucket をご利用のバケット名に設定します。
bucket: 'yourbucketname'
});
async function deleteBucketEncryption() {
try {
// バケットの暗号化設定を削除します。
const result = await client.deleteBucketEncryption("bucket-name");
console.log(result);
} catch (e) {
console.log(e);
}
}
deleteBucketEncryption();関連ドキュメント
サーバ側暗号化の完全なサンプルコードについては、「GitHub の例」をご参照ください。
サーバ側暗号化を設定するために使用される API 操作の詳細については、「PutBucketEncryption」をご参照ください。
サーバ側暗号化設定を取得するために使用される API 操作の詳細については、「GetBucketEncryption」をご参照ください。
サーバ側暗号化設定を削除するために使用される API 操作の詳細については、「DeleteBucketEncryption」をご参照ください。