すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:バケットレベルの保持ポリシー (BucketWorm)

最終更新日:Apr 21, 2026

OSS のバケットレベルの保持ポリシーは BucketWorm とも呼ばれ、Write Once, Read Many (WORM) モデルのデータストレージを提供します。このポリシーはオブジェクトを不変にし、バケットの所有者を含むいかなるユーザーによる指定期間内の削除や変更も防ぎます。保持期間中は、オブジェクトのアップロードと読み取りのみが可能です。オブジェクトの変更や削除は、保持期間が終了した後にのみ行えます。

利用シーン

OSS 保持ポリシーの WORM 機能は、米国証券取引委員会 (SEC) や金融業規制機構 (FINRA) などの事業体からの規制およびコンプライアンス要件を満たすのに役立ちます。この機能は、金融、保険、医療、証券などのセクターや、コンプライアンスアーカイブ、ログデータの監査などのシナリオに適しています。

説明

OSS は Cohasset Associates によって認定されており、SEC 規則 17a-4(f)、FINRA 規則 4511、および米国商品先物取引委員会 (CFTC) 規則 1.31 などの電子記録の保持に関する厳しい要件を満たしています。詳細については、「OSS Cohasset Assessment Report」をご参照ください。

前提条件

バケットのバージョン管理は、有効または無効である必要があり、一時停止状態であってはなりません。バージョン管理の詳細については、「バージョン管理」をご参照ください。

注意事項

  • 同じバケットに対して OSS-HDFS を有効にし、かつバケットレベルの保持ポリシーを設定することはできません。

  • 保持期間中にライフサイクルルールを設定して、オブジェクトを別のストレージクラスに移行させ、コンプライアンスを維持しながらストレージコストを削減できます。

  • バケットレベルの保持ポリシー (BucketWorm) とオブジェクトレベルの保持ポリシー (ObjectWorm) は相互排他的です。同じバケットに対して両方のタイプの保持ポリシーを有効にすることはできません。バケットレベルの保持ポリシーが有効になっているバケットでは、オブジェクトレベルの保持ポリシーを有効にすることはできず、その逆も同様です。

仕組み

  • 有効化ルール

    時間ベースの保持ポリシーを作成すると、24 時間 InProgress 状態になります。この期間中、バケットのリソースは保護されます。

    • 保持ポリシーを作成してから 24 時間以内

      • 保持ポリシーがロックされていない場合、バケットの所有者および許可されたユーザーはポリシーを削除できます。

      • 一度ロックされると、ポリシーは削除できず、保持期間を短縮することもできません。ただし、保持期間を延長することは可能です。バケット内のデータは保護されます。データの削除や変更を試みると、OSS は 409 FileImmutable エラーメッセージを返します。

    • 保持ポリシーを作成してから 24 時間以上経過後

      24 時間以内にロックされない場合、ポリシーは自動的に期限切れとなり、削除できます。

  • 削除ルール

    • 時間ベースの保持ポリシーはバケットのメタデータ属性です。バケットを削除すると、その保持ポリシーも削除されます。

    • 保持ポリシーが作成後 24 時間以内にロックされていない場合、バケットの所有者および許可されたユーザーはポリシーを削除できます。

    • バケットに保持期間内のオブジェクトが含まれている場合、保持ポリシーまたはバケットを削除することはできません。

  • たとえば、2022 年 6 月 1 日にバケットに対して 30 日間の保持ポリシーを作成してロックし、異なる時間に file1.txt、file2.txt、file3.txt の 3 つのオブジェクトをアップロードした場合、次の表にオブジェクトのアップロード日と有効期限を示します。

    オブジェクト名

    アップロード日時

    有効期限

    file1.txt

    2022 年 4 月 1 日

    2022 年 4 月 30 日

    file2.txt

    2022 年 6 月 1 日

    2022 年 6 月 30 日

    file3.txt

    2022 年 9 月 1 日

    2022 年 9 月 30 日

操作手順

OSS コンソール

  1. 保持ポリシーを作成します。

    1. OSS コンソールにログインします。

    2. 左側のナビゲーションウィンドウで、バケット をクリックします。[バケット] ページで、対象のバケット名をクリックします。

    3. 左側のナビゲーションウィンドウで、コンテンツセキュリティ > バケットレベルの保持ポリシー を選択します。

    4. 保持ポリシー ページで、ポリシーの作成 をクリックします。

    5. ポリシーの作成 ダイアログボックスで、保持期間 を指定します。

      説明

      保持期間は日数で測定されます。有効な値:1~25,550。

    6. OK をクリックします。

      説明

      ポリシーは 24 時間 InProgress 状態になり、その間バケットのリソースは保護されます。ポリシーを保持しない場合は、この期間内に削除できます。

  2. 保持ポリシーをロックします。

    1. ロック をクリックします。

    2. 表示されたダイアログボックスで、OK をクリックします。

      重要

      一度ロックされると、保持ポリシーは変更または削除できず、保持期間中にバケット内のデータを変更または削除することもできません。

  3. (任意) 保持期間を変更します。

    1. 編集 をクリックします。

    2. 表示されたダイアログボックスで、保持期間を変更します。

      重要

      保持期間は延長のみ可能で、短縮することはできません。

Alibaba Cloud SDK

次のサンプルコードは、一般的な SDK を使用して保持ポリシーを設定する方法を示しています。他の SDK の例については、「SDK の概要」をご参照ください。

Java

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

public class Demo {

    public static void main(String[] args) throws Exception {
        // この例では、中国 (杭州) リージョンのエンドポイントを使用します。実際のエンドポイントを指定してください。 
        String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
        // 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // バケットの名前を指定します。例:examplebucket。 
        String bucketName = "examplebucket";
        // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを cn-hangzhou に設定します。 
        String region = "cn-hangzhou";

        // OSSClient インスタンスを作成します。 
        // OSSClient が不要になったら、shutdown メソッドを呼び出してリソースを解放します。
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);        
        OSS ossClient = OSSClientBuilder.create()
        .endpoint(endpoint)
        .credentialsProvider(credentialsProvider)
        .clientConfiguration(clientBuilderConfiguration)
        .region(region)               
        .build();

        try {
            // InitiateBucketWormRequest オブジェクトを作成します。 
            InitiateBucketWormRequest initiateBucketWormRequest = new InitiateBucketWormRequest(bucketName);
            // 保持期間を 1 日に設定します。 
            initiateBucketWormRequest.setRetentionPeriodInDays(1);

            // 保持ポリシーを作成します。 
            InitiateBucketWormResult initiateBucketWormResult = ossClient.initiateBucketWorm(initiateBucketWormRequest);

            // 保持ポリシーの ID を表示します。 
            String wormId = initiateBucketWormResult.getWormId();
            System.out.println(wormId);
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
    }
}

PHP

<?php

// オートローダーファイルをインポートして依存関係をロードします。
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// コマンドライン引数の説明を定義します。
$optsdesc = [
    "region" => ['help' => 'The region in which the bucket is located', 'required' => True], // 必須。バケットが配置されているリージョン。
    "endpoint" => ['help' => 'The domain names that other services can use to access OSS', 'required' => False], // 任意。他のサービスが OSS にアクセスするために使用できるドメイン名。
    "bucket" => ['help' => 'The name of the bucket', 'required' => True], // 必須。バケットの名前。
];

// コマンドライン引数を解析するために長いオプションリストを生成します。
$longopts = \array_map(function ($key) {
    return "$key:"; // 各引数の後にコロンを追加して、値が必要であることを示します。
}, array_keys($optsdesc));

// コマンドライン引数を解析します。
$options = getopt("", $longopts); 

// 必須の引数が欠落していないか確認します。
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: the following arguments are required: --$key, $help"; // 必須の引数が欠落していることをユーザーに通知します。
        exit(1); 
    }
}

// コマンドライン引数の値を取得します。
$region = $options["region"]; // バケットが配置されているリージョン。
$bucket = $options["bucket"]; // バケットの名前。

// AccessKey ID や AccessKey Secret などの認証情報を環境変数からロードします。
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

// ソフトウェア開発キット (SDK) のデフォルト設定を使用します。
$cfg = Oss\Config::loadDefault();

// 認証情報プロバイダーを設定します。
$cfg->setCredentialsProvider($credentialsProvider);

// リージョンを設定します。
$cfg->setRegion($region);

// エンドポイントが指定されている場合は、エンドポイントを設定します。
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// OSS クライアントインスタンスを作成します。
$client = new Oss\Client($cfg);

// バケットの保持ポリシーを初期化するためのリクエストオブジェクトを作成します。保持期間を 3 日に設定します。
$request = new Oss\Models\InitiateBucketWormRequest(
    bucket: $bucket, 
    initiateWormConfiguration: new Oss\Models\InitiateWormConfiguration(
        retentionPeriodInDays: 3 // 保持期間 (日数)。
));

// initiateBucketWorm メソッドを呼び出して、バケットの保持ポリシーを初期化します。
$result = $client->initiateBucketWorm($request);

// 返された結果を出力します。
printf(
    'status code:' . $result->statusCode . PHP_EOL . // HTTP 応答のステータスコード。
    'request id:' . $result->requestId . PHP_EOL . // リクエストの一意の ID。
    'worm id:' . $result->wormId // 保持ポリシーの ID。
);

Node.js

const OSS = require('ali-oss');

const client = new OSS({
  // バケットが配置されているリージョンに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを 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 initiateBucketWorm() {
 // bucket をご利用のバケット名に設定します。
  const bucket = 'yourbucketname'
  // 保持期間を日数で指定します。
  const days = '<Retention Days>'
    const res = await client.initiateBucketWorm(bucket, days)
  console.log(res.wormId)
}

initiateBucketWorm()

Python

import argparse
import alibabacloud_oss_v2 as oss

# コマンドライン引数パーサーを作成し、スクリプトの目的を説明します:このサンプルは、OSS バケットの WORM 設定を初期化する方法を示します。
parser = argparse.ArgumentParser(description="initiate bucket worm sample")

# --region コマンドライン引数を追加します。これはバケットのリージョンを指定するもので、必須です。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# --bucket コマンドライン引数を追加します。これはバケット名を指定するもので、必須です。
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
# --endpoint コマンドライン引数を追加します。これは他のサービスが OSS にアクセスするために使用できるドメイン名を指定するもので、任意です。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
# --retention_period_in_days コマンドライン引数を追加します。これは保持期間を日数で指定するもので、必須です。
parser.add_argument('--retention_period_in_days', help='The number of days for which objects can be retained.', required=True)

def main():
    # コマンドライン引数を解析して、ユーザーが指定した値を取得します。
    args = parser.parse_args()

    # ID 検証のために、環境変数から OSS のアクセス認証情報をロードします。
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # SDK のデフォルト設定を使用して設定オブジェクトを作成し、認証情報プロバイダーを設定します。
    cfg = oss.config.load_default()
    cfg.credentials_provider = credentials_provider
    cfg.region = args.region

    # カスタムエンドポイントが指定されている場合は、設定オブジェクトのエンドポイントプロパティを更新します。
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 設定を使用して OSS クライアントを初期化し、OSS と対話します。
    client = oss.Client(cfg)

    # 指定されたバケットの WORM 設定を初期化するリクエストを送信します。
    result = client.initiate_bucket_worm(oss.InitiateBucketWormRequest(
        bucket=args.bucket,  # バケット名。
        initiate_worm_configuration=oss.InitiateWormConfiguration(
            retention_period_in_days=int(args.retention_period_in_days),  # 保持期間 (日数)、整数に変換。
        ),
    ))

    # 操作のステータスコード、リクエスト ID、WORM ID を出力して、リクエストの状態を確認します。
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' worm id: {result.worm_id}'
    )

# このスクリプトが直接実行された場合、main 関数を呼び出して処理ロジックを開始します。
if __name__ == "__main__":
    main()  # スクリプトのエントリポイント、ここからプログラムのフローが開始されます。

Go

package main

import (
	"log"

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

func main() {
	// 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
	provider, err := oss.NewEnvironmentVariableCredentialsProvider()
	if err != nil {
		log.Fatalf("Error creating credentials provider: %v", err)
	}

	// OSSClient インスタンスを作成します。
	// yourEndpoint をバケットのエンドポイントに設定します。たとえば、中国 (杭州) リージョンのバケットの場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。他のリージョンについては、実際のエンドポイントを使用してください。
	// yourRegion をバケットが配置されているリージョンに設定します。たとえば、中国 (杭州) リージョンのバケットの場合、リージョンを cn-hangzhou に設定します。他のリージョンについては、実際のリージョンを使用してください。
	clientOptions := []oss.ClientOption{oss.SetCredentialsProvider(&provider)}
	clientOptions = append(clientOptions, oss.Region("yourRegion"))
	// 署名バージョンを設定します。
	clientOptions = append(clientOptions, oss.AuthVersion(oss.AuthV4))
	client, err := oss.New("yourEndpoint", "", "", clientOptions...)
	if err != nil {
		log.Fatalf("Error creating OSS client: %v", err)
	}

	// 保持ポリシーを設定するバケットの名前を指定します。
	bucketName := "<yourBucketName>"

	// オブジェクトの保持期間を 60 日に設定します。
	result, err := client.InitiateBucketWorm(bucketName, 60)
	if err != nil {
		log.Fatalf("Error initiating bucket WORM: %v", err)
	}

	log.Println("WORM policy initiated successfully:", result)
}

C++

#include <alibabacloud/oss/OssClient.h>
using namespace AlibabaCloud::OSS;

int main(void)
{
    /* OSS アカウント情報を初期化します。 */
            
    /* Endpoint をバケットが配置されているリージョンのエンドポイントに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、Endpoint を https://oss-cn-hangzhou.aliyuncs.com に設定します。 */
    std::string Endpoint = "yourEndpoint";
    /* Region をバケットが配置されているリージョンに設定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を cn-hangzhou に設定します。 */
    std::string Region = "yourRegion";
    /* バケット名を入力します。例:examplebucket。 */
    std::string BucketName = "examplebucket";

      /* ネットワークなどのリソースを初期化します。 */
      InitializeSdk();

      ClientConfiguration conf;
      conf.signatureVersion = SignatureVersionType::V4;
      /* 環境変数からアクセス認証情報を取得します。このコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。 */
    auto credentialsProvider = std::make_shared<EnvironmentVariableCredentialsProvider>();
    OssClient client(Endpoint, credentialsProvider, conf);
    client.SetRegion(Region);
  
      /* データ保持ポリシーを作成し、オブジェクトの保護期間を 1 日に設定します。 */
      auto outcome = client.InitiateBucketWorm(InitiateBucketWormRequest(BucketName, 1));

      if (outcome.isSuccess()) {      
            std::cout << " InitiateBucketWorm success " << std::endl;
            std::cout << "WormId:" << outcome.result().WormId() << std::endl;
      }
      else {
        /* 例外を処理します。 */
        std::cout << "InitiateBucketWorm fail" <<
        ",code:" << outcome.error().Code() <<
        ",message:" << outcome.error().Message() <<
        ",requestId:" << outcome.error().RequestId() << std::endl;
        return -1;
      }

      /* ネットワークなどのリソースを解放します。 */
      ShutdownSdk();
      return 0;
}

ossutil

ossutil コマンドラインツールを使用して WORM ポリシーを作成できます。ossutil のインストール方法の詳細については、「ossutil のインストール」をご参照ください。

次のコマンドは、examplebucket バケットに新しい WORM ポリシーを作成し、WORM の保持期間を 365 日に設定します。

ossutil api initiate-bucket-worm --bucket examplebucket --initiate-worm-configuration "{\"RetentionPeriodInDays\":\"365\"}"

このコマンドの詳細については、「initiate-bucket-worm」をご参照ください。

API リファレンス

上記の手順は API オペレーションに基づいています。高度なカスタマイズを行うには、REST API リクエストを直接発行できますが、そのためには署名を手動で計算するコードを記述する必要があります。詳細については、「InitiateBucketWorm」をご参照ください。

バージョン管理との連携

Veeam などのシステムのデータバックアップの保護、資産の変更履歴の追跡、または財務コンプライアンス要件への対応などのユースケースでは、継続的なデータ更新を許可しつつ、すべての履歴バージョンが不変であり削除できないようにする必要があります。これを実現するには、同じバケットで保持ポリシーとバージョン管理の両方を有効にします。バージョン管理により、オブジェクトが上書きまたは削除された場合、その古いバージョンは完全に消去されるのではなく、履歴バージョンとして保持されます。その後、保持ポリシーがバケット内のすべてのオブジェクトバージョンに保持期間を適用し、この期間中は変更不可能かつ削除不可能にします。

バージョン管理と保持ポリシーを併用する場合、以下の原則が適用されます:

  • 機能の有効化順序:バージョン管理と保持ポリシーを有効にする順序に制約はありません。ビジネスニーズに応じて柔軟に設定できます。

  • 状態遷移の制約

    • 保持ポリシーを有効にした後、バージョン管理の状態を有効から一時停止に変更することはできません。

    • バージョン管理が一時停止されているバケットに対して保持ポリシーを有効にすることができます。ポリシーを有効にした後、バージョン管理の状態を有効に変更できます。

  • オブジェクトバージョンの保護

    • 保持ポリシーは、オブジェクトのすべてのバージョンを保護します。保持期間中は、どのバージョンも削除または変更できません。

    • 同じ名前のオブジェクトをアップロードして新しいバージョンを作成できます。新しいバージョンも保持ポリシーによって保護されます。

    • 保持ポリシーは削除マーカーを保護しないため、その削除はポリシーによって制限されません。

  • データレプリケーションの連携

    • ソースバケットと宛先バケットの両方で、バージョン管理と保持ポリシーの独立した設定がサポートされています。

    • バージョン情報はレプリケーション中に正常に送信されます。宛先バケットは、独自の設定に基づいてバージョンを管理します。

    • ソースバケットでのバージョンの削除は、保持ポリシーが有効になっている宛先バケットには同期されません。

よくある質問

バージョン管理が有効な場合のオブジェクト削除

保持ポリシーとバージョン管理の両方が有効な場合、オブジェクトを削除すると次の効果があります:

  • 削除操作は削除マーカーを作成しますが、オブジェクトの履歴バージョンを物理的に削除するわけではありません。

  • 保持ポリシーは削除マーカーを保護しないため、通常通り削除できます。

  • 削除マーカーが存在する場合でも、すべてのオブジェクトバージョンは保持期間中に削除できません。

  • ライフサイクル管理は孤立した削除マーカーをクリーンアップできますが、保持ポリシーによって保護されているオブジェクトバージョンは削除できません。

バージョン管理状態の変更

保持ポリシーを有効にした後、バージョン管理状態の変更には次の制約が適用されます:

  • 有効から一時停止へ:バージョン管理の状態が有効な場合、保持ポリシーがロックされた後に一時停止に変更することはできません。

  • 一時停止から有効へ:バージョン管理の状態が一時停止の場合でも、保持ポリシーを有効にした後に有効に変更することができます。

  • 無効から有効へ:バージョン管理が無効なバケットの場合、保持ポリシーを設定した後にバージョン管理を有効にすることができます。

ストレージコスト

はい。次の方法でストレージコストが増加します:

  • すべてのオブジェクトバージョンは保持期間中に保持され、ライフサイクルルールによって削除することはできません。

  • バージョンの蓄積により、特に頻繁に更新されるオブジェクトの場合、ストレージ使用量が大幅に増加する可能性があります。

  • コストを最適化するために、合理的な保持期間を設定し、ライフサイクルルールを使用してストレージクラスの移行を管理することを推奨します。

保持ポリシーのメリット

保持ポリシーは、コンプライアンスに準拠した不変のストレージを提供します。対照的に、RAM ポリシーやバケットポリシーのみで保護されたデータは、依然として変更または削除が可能です。

保持ポリシーを使用する状況

医療記録、技術文書、契約書など、変更不可能で重要なデータを長期間保存する必要がある場合は、保持ポリシーを有効にすることを推奨します。

保持ポリシーの削除

保持ポリシーを削除できるかどうかは、その状態によって異なります:

  • ロックされていない場合:バケットの所有者および許可されたユーザーはポリシーを削除できます。

  • ロック済みの場合:どのユーザーもポリシーを削除できません。

オブジェクトレベルのポリシー

このトピックで説明するバケットレベルの保持ポリシー (BucketWorm) は、バケットにのみ適用され、ディレクトリや個々のオブジェクトには適用されません。単一のオブジェクトに個別の保持ポリシーを設定する必要がある場合は、オブジェクトレベルの保持ポリシー (ObjectWorm) を使用してください。バケットレベルの保持ポリシーとオブジェクトレベルの保持ポリシーは相互排他的であり、同じバケットで有効にすることはできないことに注意してください。

保持期間の計算

オブジェクトの保持期間は、その最終変更時刻にポリシーの保持期間を加えたものから計算されます。たとえば、バケットに 10 日間の保持ポリシーがあり、バケット内のオブジェクトが 2022 年 2 月 15 日に最終変更された場合、そのオブジェクトは 2022 年 2 月 25 日まで保持されます。

保護されたバケットの削除

  • バケットにオブジェクトが含まれていない場合は、直接削除できます。

  • バケットに保持期間が満了したオブジェクトが含まれている場合は、バケットを削除する前にすべてのオブジェクトを削除する必要があります。

  • バケットにまだ保持期間内のオブジェクトが含まれている場合、バケットを削除することはできません。

料金滞納とデータ保持

重要:アカウントの料金滞納が発生した場合、保持ポリシーで保護されているオブジェクトであっても、サービス停止ルールに基づき、Alibaba Cloud によってデータが削除される可能性があります。

RAM ユーザーの権限付与

はい。この機能は RAM ポリシーによる権限付与をサポートしているため、権限を付与された RAM ユーザーは、OSS コンソール、API、または SDK を介して保持ポリシーを管理できます。