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

Object Storage Service:データレプリケーションに必要な権限

最終更新日:Mar 20, 2026

OSS は、バケット間でデータをレプリケーションするために、リソースアクセス管理 (RAM) ロールを偽装します。このロールにアタッチする権限は、ソースバケットおよび送信先バケットが同じ Alibaba Cloud アカウントに属しているか、異なるアカウントに属しているかによって異なります。

前提条件

開始する前に、以下を確認してください。

  • OSS (oss.aliyuncs.com) を信頼できるエンティティとする RAM ロール

  • ソースバケットと送信先バケットの両方のアカウントへのアクセス (クロスアカウントレプリケーションの場合は、アカウント A とアカウント B の両方へのアクセス)

仕組み

各レプリケーションタスクでは、OSS がお客様が作成した RAM ロールを偽装する必要があります。このロールには、2 種類のポリシーを付与する必要があります。

  • 信頼ポリシー — OSS がロールを偽装することを承認します

  • 権限ポリシー — ソースバケットと送信先バケットに対する最小限必要な操作を付与します

RAM ポリシーの Resource フィールドは、同一の Alibaba Cloud アカウント内のリソースのみを参照できるため、ポリシーの構造は、同一アカウントレプリケーションとクロスアカウントレプリケーションで異なります。

シナリオソース側の設定送信先側の設定
同一アカウントロール上の RAM ポリシー (両方のバケットを対象)
クロスアカウントアカウント A のロール上の RAM ポリシー (ソースバケットのみ)アカウント B の送信先バケット上のバケットポリシー

同一アカウントレプリケーションの権限設定

信頼ポリシー

次の信頼ポリシーを RAM ロールにアタッチします。これにより、OSS がロールを偽装することを承認します。

{
  "Statement": [
    {
      "Action": "sts:AssumeRole",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "oss.aliyuncs.com"
        ]
      }
    }
  ],
  "Version": "1"
}

権限ポリシー

次の RAM ポリシーをロールにアタッチします。これにより、ソースバケットと送信先バケットの両方に対する最小限の操作が付与されます。

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:ReplicateList",
        "oss:ReplicateGet"
      ],
      "Resource": [
        "acs:oss:*:*:src-bucket",
        "acs:oss:*:*:src-bucket/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "oss:ReplicateList",
        "oss:ReplicateGet",
        "oss:ReplicatePut",
        "oss:ReplicateDelete"
      ],
      "Resource": [
        "acs:oss:*:*:dest-bucket",
        "acs:oss:*:*:dest-bucket/*"
      ]
    }
  ]
}

src-bucketdest-bucket を実際のバケット名に置き換えてください。

操作リファレンス

操作範囲説明
oss:ReplicateListソースバケットと送信先バケットソースバケット内の履歴オブジェクトをリストし、OSS がそれらを送信先にレプリケートできるようにします
oss:ReplicateGetソースバケットと送信先バケットオブジェクト、パート、マルチパートアップロードタスク、およびオブジェクトのメタデータを読み取ります
oss:ReplicatePut送信先バケットオブジェクト、パート、マルチパートアップロードタスク、シンボリックリンク、およびオブジェクトのメタデータを送信先に書き込みます
oss:ReplicateDelete送信先バケット送信先で DeleteObject、AbortMultipartUpload、および DeleteMarker 操作を実行します
重要

oss:ReplicateDelete は、[レプリケーションポリシー][追加/削除/変更] に設定した場合にのみ必要です。

クロスアカウントレプリケーションの権限設定

クロスアカウントレプリケーションは、アカウント A (ソースバケット) とアカウント B (送信先バケット) を使用します。設定は同一アカウントレプリケーションと類似していますが、2 つの違いがあります。

  • アカウント A の RAM ポリシーは、ソースバケットのみを対象とし、送信先バケットは対象としません。

  • アカウント B は、アカウント A の RAM ロールに送信先バケットへのアクセスを付与するバケットポリシーを追加する必要があります。

ステップ 1: アカウント A の RAM ロールへのポリシーのアタッチ

信頼ポリシー — 同一アカウントの信頼ポリシーと同一です。アカウント A の RAM ロールにアタッチします。

権限ポリシー — アカウント A のロールにソースバケットに対する最小限の権限のみを付与します。

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:ReplicateList",
        "oss:ReplicateGet"
      ],
      "Resource": [
        "acs:oss:*:*:src-bucket",
        "acs:oss:*:*:src-bucket/*"
      ]
    }
  ]
}

src-bucket を実際のソースバケット名に置き換えてください。

ステップ 2: アカウント B の送信先バケットへのバケットポリシーの追加

アカウント B で、次のバケットポリシーを送信先バケットに追加します。これにより、アカウント A の RAM ロールにレプリケートされたデータを書き込むために必要な権限が付与されます。

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "oss:ReplicateList",
        "oss:ReplicateGet",
        "oss:ReplicatePut",
        "oss:ReplicateDelete"
      ],
      "Principal": [
        "arn:sts::src-uid:assumed-role/role-name/*"
      ],
      "Resource": [
        "acs:oss:*:dest-uid:dest-bucket",
        "acs:oss:*:dest-uid:dest-bucket/*"
      ]
    }
  ]
}

プレースホルダーを、ご利用の環境の値に置き換えてください。

プレースホルダー説明
src-uidソースバケットが属する Alibaba Cloud アカウントの UID
role-nameアカウント A で作成された RAM ロールの名前
dest-uid送信先バケットが属する Alibaba Cloud アカウントの UID
dest-bucket送信先バケットの名前

操作の説明については、「操作リファレンス」をご参照ください。

次のステップ