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

Object Storage Service:クロスアカウント同一リージョンレプリケーション

最終更新日:Aug 28, 2026

Object Storage Service (OSS) のクロスアカウント同一リージョンレプリケーションは、ソースバケットから、同じリージョンにある別の Alibaba Cloud アカウントの送信先バケットに、オブジェクトを自動的かつ非同期 (ほぼリアルタイム) にコピーします。この機能は、ディザスタリカバリの実装、分離されたクロスアカウントバックアップの作成、またはデータレジデンシーに関するコンプライアンス要件を満たすために役立ちます。

クロスアカウント同一リージョンレプリケーションを設定するには、ソースアカウントと送信先アカウントの両方で操作を実行する必要があります。このプロセスには、主に 3 つのステップが含まれます。

  1. ソースアカウント: データレプリケーション専用の RAM ロールを作成し、ソースバケットからデータを読み取るために必要な最小限の権限を付与します。

  2. 送信先アカウント: 送信先バケットのバケットポリシーを変更し、ソースアカウントの RAM ロールに書き込み権限を付与します。

  3. ソースアカウント (再度): 同一リージョンレプリケーションルールを作成してソースバケットと送信先バケットをリンクし、レプリケーションタスクを開始します。

ステップ1:RAM ロールの作成と権限付与

  1. RAM ロールの作成: RAM ロールを作成 ページで、信頼プリンシパルタイプ に クラウドサービス を選択し、信頼プリンシパル名 に オブジェクトストレージ を選択します。

  2. RAM ロールにソースバケットへのアクセス権限を付与します。ソースバケットからデータを読み取り、レプリケーションタスクを開始するために必要な権限のみを含むカスタムポリシーを作成します。

    1. ポリシーの作成ページで、JSON タブをクリックします。ポリシーエディターに次のポリシーコンテンツを貼り付け、src-bucket を実際のソースバケット名に置き換えます。

      {
         "Version": "1",
         "Statement": [
            {
               "Effect": "Allow",
               "Action": [
                  "oss:ReplicateList",
                  "oss:ReplicateGet"
               ],
               "Resource": [
                  "acs:oss:*:*:src-bucket",
                  "acs:oss:*:*:src-bucket/*"
               ]
            }
         ]
      }
    2. ポリシーを作成した後、[ロール] ページに戻ります。対象のロールを見つけ、[権限の追加] をクリックし、表示されたパネルで [権限ポリシー] に先ほど作成したカスタムポリシーを選択して [OK] をクリックします。プリンシパルは自動的に選択されます。

  3. KMS で暗号化されたデータをレプリケートする場合、RAM ロールに KMS へのアクセス権限も付与する必要があります。

    1. 「ロール」ページで、作成したロールを見つけて [権限を追加] をクリックします。

    2. パネルで、[権限ポリシー]に AliyunKMSCryptoUserAccess を選択し、[OK] をクリックします。プリンシパルは自動的に選択されます。

  4. 後で使用するためにロール ARN を記録します。「ロール」ページで、作成した RAM ロールを見つけ、その [基本情報] ページに移動します。フォーマットは acs:ram::{Source-Account-ID}:role/{Role-Name} です。

ステップ2:権限の付与とリソースの準備

  1. RAM ロールに送信先バケットへの書き込み権限を付与します。送信先アカウントで、送信先バケットのバケットポリシーを変更し、ソースアカウントの RAM ロールに書き込み権限を付与します。

    1. 送信先アカウントでログインして、「バケットリスト」ページに移動し、送信先バケットをクリックします。

    2. 左側のナビゲーションペインで、[権限] > [バケットポリシー] を選択します。

    3. [ビジュアルエディター] タブをクリックし、次に [レプリケートされたオブジェクトの受信を承認] をクリックします。

    4. 表示されるパネルで、次のパラメーターを設定します。

      • UID と RAM ロールの取得方法: [ソースのRAMロールARNから取得] を選択します。

      • ソースの RAM ロール ARN: ステップ 1 で記録したソースアカウントの RAM ロール ARN を入力します。

      • 承認の目的: [クロスアカウント同一リージョンレプリケーション] を選択します。

    5. [ポリシーを生成] をクリックし、次に [保存] をクリックします。

  2. (オプション) 送信先アカウントで KMS キーを設定します。KMS で暗号化されたオブジェクトをレプリケートする場合は、まず送信先アカウントで KMS キーを設定する必要があります。

    1. KMS コンソールの [インスタンス管理] ページにログインし、ソースアカウントのバケットと同じリージョンで KMS インスタンスを購入して有効化します。KMS インスタンスを購入する際は、[アクセス管理クォータ] を 2 以上に設定し、その他のパラメーターはデフォルト設定のままにします。

      説明

      KMS で暗号化されたオブジェクトのクロスアカウントレプリケーションは KMS に依存します。サポートされているリージョンは KMS の可用性によって制限されます。サポートされているリージョンの詳細については、「ソフトウェアキー管理がサポートされているリージョンとエンドポイント」をご参照ください。

    2. KMS インスタンスで、ソフトウェアキーを作成します。キータイプは、デフォルト以外のキー (ソフトウェアキーを推奨) にする必要があります。キーの作成後、後でレプリケーションルールを作成する際に使用するため、基本情報 セクションから Key ARN を記録します。

    3. 作成したキーにキーポリシーを設定します。キーポリシーで、ソースアカウントで作成された RAM ロール ARN を その他のアカウントユーザー として追加します。これは、前の手順で作成したロール ARN です。詳細については、「キーポリシーを設定する」をご参照ください。

      デフォルトでは、この操作により、復号 (kms:Decrypt) や GenerateDataKey (kms:GenerateDataKey) などの必要な権限がロールに付与され、ロールがこのキーを使用して送信先バケットに暗号化されたオブジェクトを作成できるようになります。コンソールウィザードには必要な権限がデフォルトで含まれていますが、OpenAPI を使用してカスタムキーポリシーを設定する場合は、これらの権限が正しく追加されていることを手動で確認する必要があります。

ステップ3:同一リージョンレプリケーションルールの作成

必要な権限を付与した後、ソースアカウントのコンソールに戻り、レプリケーションルールを作成してタスクを開始します。

  1. ソースアカウントでログインして、「バケットリスト」ページに移動し、ソースバケットをクリックします。

  2. 左側のナビゲーションペインで、[データ管理] > [SRR] を選択します。

  3. [SRR] をクリックします。表示されるダイアログボックスで、次のパラメーターを設定します。

    1. 送信先バケットの設定: [別のアカウントのバケットを指定] を選択し、送信先バケットのリージョンを選択して、バケット名を入力します。

      • レプリケーションの対象: すべてのファイルの同期 または プレフィックスを指定する を選択します。 ソースバケット内の指定されたプレフィックスを持つオブジェクトは、宛先バケットにレプリケートされます。 デフォルトでは、最大 10 個のプレフィックスを追加できます。 プレフィックスの数を増やすには、にお問い合わせください。 上限は最大 100 まで引き上げることができます。

      • [オブジェクトのタグ付け]

        説明

        このパラメーターを設定するには、次の条件を満たす必要があります。

        • オブジェクトタグを設定していること。

        • [削除マーカーのレプリケーション] および [特定バージョンの削除のレプリケーション] オプションを選択していないこと。

        ルールの設定 チェックボックスをオンにすると、指定したタグを持つオブジェクトを宛先バケットにコピーできます。最大 10 個のタグ (キーと値のペア) を追加できます。タグを追加した後、次のタグフィルタリングポリシーを選択できます:

        • [すべてのタグを含む]: オブジェクトのすべてのタグがフィルターで指定されたタグセットに含まれている場合に、オブジェクトがレプリケートされます。

        • [いずれかのタグを含む]: オブジェクトのいずれかのタグがフィルターで指定されたタグセットに含まれている場合に、オブジェクトがレプリケートされます。

      • KMS で暗号化されたオブジェクトのレプリケーション: ソースオブジェクトが KMS で暗号化されており、レプリケートされたオブジェクトも暗号化されたままにしたい場合は、[レプリケート] を選択し、ステップ 2 で送信先アカウントに設定した KMS キーを指定します。[レプリケートしない] を選択した場合、OSS は KMS で暗号化されたファイルをレプリケートしません。

        説明

        HeadObject および GetBucketEncryption API を使用して、それぞれソースオブジェクトと送信先バケットの暗号化ステータスを確認できます。

      • 承認のためのロール: ドロップダウンリストから、ステップ1でソースアカウントに作成した RAM ロールを選択します。

    2. レプリケーションポリシーの設定

      • 削除操作のレプリケーション (このオプションは、ソースバケットでバージョニングが無効になっている場合に表示されます): ソースバケットから送信先バケットへの削除操作を同期するかどうかを選択します。

        • はい: 作成、更新、削除の操作をレプリケートして、送信先バケットをソースバケットと一致させます。これは、複数のユーザーまたはアプリケーションが同じデータセットを共有し、アクセスする必要がある環境に適しています。ただし、この設定では、ソースバケットからオブジェクトが手動またはライフサイクルルールによって削除されると、OSS は送信先バケット内の対応するオブジェクトも削除し、復元できなくなります。

        • いいえ: 新規作成または更新されたオブジェクトのみをレプリケートします。ソースバケットからオブジェクトを削除しても、送信先バケットには影響しません。ディザスタリカバリシナリオでは、[いいえ] を選択すると、ソースバケットからの偶発的な削除がレプリケートされるのを防ぎ、データセキュリティが強化されます。

      • 履歴データのレプリケーション: レプリケーションルールを作成する前にソースバケットに存在していたオブジェクトをレプリケートするかどうかを選択します。この操作は、送信先バケット内の同じ名前のオブジェクトを上書きします。データ損失を防ぐために、ソースバケットと送信先バケットの両方でバージョニングを有効にすることを推奨します。

      • 削除マーカーのレプリケーション (このオプションは、ソースバケットでバージョニングが有効になっている場合に表示されます): ソースバケットから送信先バケットに削除マーカーをレプリケートするかどうかを選択します。

        • レプリケート: バージョン ID を指定せずにソースバケットからオブジェクトが削除されると、OSS はソースバケットに作成される削除マーカーを送信先バケットにレプリケートします。これは、同じデータセットを共有およびアクセスし、ソースバケットと送信先バケット間のデータ状態の一貫性を確保する必要があるシナリオに適しています。

          重要

          このポリシーを設定すると、ソースバケットからオブジェクトが手動またはライフサイクルルールによって削除された場合、OSS は送信先バケットにも削除マーカーを作成し、送信先バケットのデータにアクセスできなくなります。

        • レプリケートしない (ディザスタリカバリシナリオで推奨): OSS は、ソースバケットで作成された削除マーカーを送信先バケットにレプリケートしません。これにより、ソースバケットでの偶発的な削除やライフサイクルルールによる自動削除による送信先バケットでのデータ損失を効果的に防ぎます。

      • 特定バージョンの削除のレプリケーション (このオプションは、ソースバケットでバージョニングが有効になっている場合に表示されます): ソースバケットから特定のオブジェクトバージョンを完全に削除した場合、その操作を送信先バケットにレプリケートするかどうかを選択します。

        • レプリケート: 現在および以前のバージョンを含む、ソースオブジェクトの特定のバージョンが完全に削除されると、OSS は送信先バケットの対応するバージョンも完全に削除します。これは、ソースデータと送信先データが完全に同一である必要があるシナリオに適しています。

          重要

          この設定では、ソースバケットから完全に削除されたオブジェクトバージョンを送信先バケットから復元することはできません。このオプションは注意して使用してください。

        • レプリケートしない (ディザスタリカバリシナリオで推奨): ソースオブジェクトの特定のバージョンが完全に削除されても、OSS は送信先バケットの対応するバージョンを削除しません。これにより、ソースバケットでの完全な削除操作が送信先バケットのデータセキュリティに影響を与えるのを防ぎます。

        オブジェクトがマルチパートアップロードを使用してソースバケットにアップロードされた場合、OSS は各パートのアップロード操作を送信先バケットにレプリケートします。OSS は、CompleteMultipartUpload 操作の後に生成された最終的なオブジェクトもレプリケートします。バージョニングが有効な場合のレプリケーション動作の詳細については、「バージョニングを使用した同一リージョンレプリケーション」をご参照ください。

    説明

    一度作成された同一リージョンレプリケーションルールは、変更または削除できません。[OK] をクリックする前に、すべての設定を慎重に確認してください。レプリケーションを停止したい場合は、レプリケーションタスクを無効化できます。

  4. すべての設定が正しいことを確認した後、[OK] をクリックし、次に [有効化を確認] をクリックします。

    同一リージョンレプリケーションルールが設定されてから 3~5 分後にレプリケーションタスクが開始されます。 ソースバケットの 同一リージョン内のレプリケーション タブでレプリケーションの進捗状況を表示できます。 バケット間の同一リージョンレプリケーションは非同期 (ほぼリアルタイム) のプロセスであるため、宛先バケットにデータをレプリケートするために必要な時間はデータのサイズによって異なり、通常は数分から数時間かかります。

よくある質問

バケットの権限に JSON ポリシーを使用できますか?

はい。[構文でポリシーを追加] を選択すると、より柔軟な設定が可能です。JSON ポリシーを使用する際は、次の点に注意してください。

  • 新しいポリシーは、既存のバケットポリシーを上書きします。新しいポリシーに必要なすべての承認ルールが含まれていることを確認してください。

  • ポリシーの Principal フィールドを、ソースアカウントの RAM ロール ARN に設定します。

  • ロール名に大文字が含まれている場合は、ポリシー内で小文字に変換する必要があります。たとえば、AliyunOssDrsRole という名前のロールは、ポリシー内では aliyunossdrsrole と記述する必要があります。

  • ソースアカウントと送信先アカウントの UID、および送信先バケットの名前を正確に指定する必要があります。

以下はポリシーの例です。

{
    "Version":"1",
    "Statement":[
        {
            "Effect":"Allow",
            "Action":[
                "oss:ReplicatePut",
                "oss:ReplicateDelete"
            ],
            "Principal": {
                "RAM": [
                    "acs:ram::{Source-Account-ID}:role/{role-name}"
                ]
            },
            "Resource":[
                "acs:oss:*:{Destination-Account-ID}:{Destination-Bucket-Name}",
                "acs:oss:*:{Destination-Account-ID}:{Destination-Bucket-Name}/*"
            ]
        }
    ]
}

関連ドキュメント