クロスアカウントクロスリージョンレプリケーション(CRR)を使用すると、Alibaba Cloud アカウント A 内のリージョンにあるバケットから Alibaba Cloud アカウント B 内の別のリージョンにある別のバケットに Object Storage Service (OSS) オブジェクトをレプリケートできます。
前提条件
CRR タスクのソースバケットとして機能するバケット A は、アカウント A 内のリージョンに作成されます。アカウント A の UID、バケット A の名前、およびバケット A が配置されているリージョンが記録されます。
アカウント A には、
oss:PutBucketReplication
、oss:GetBucketReplication
、oss:DeleteBucketReplication
、oss:GetBucketReplicationLocation、および oss:GetBucketReplicationProgress の権限が必要です。詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。CRR タスクのデスティネーションバケットとして機能するバケット B は、アカウント B 内の別のリージョンに作成されます。アカウント B の UID、バケット B の名前、およびバケット B が配置されているリージョンが記録されます。
ロールの承認
アカウントを跨いでのデータレプリケーションには、異なる Alibaba Cloud アカウントに属する 2 つのバケットが必要です。アカウントを跨いでのデータレプリケーションに必要な信頼ポリシーと最小権限について、以下に説明します。
アカウント A を使用して、次の操作を実行します。
通常のサービロールを作成します。
重要RAM ユーザーを使用して RAM ロールを作成できます。RAM ユーザーには、
ram:CreateRole
、ram:GetRole
、ram:ListRoles
、ram:ListPoliciesForRole
、ram:AttachPolicyToRole
の権限が必要です。ただし、RAM ユーザーにram:CreateRole
やram:GetRole
などの権限を付与すると、セキュリティリスクが発生する可能性があります。RAM ユーザーが関連付けられている Alibaba Cloud アカウントを使用して RAM ロールを作成し、必要な権限を RAM ロールに付与できます。その後、RAM ユーザーは Alibaba Cloud アカウントによって作成された RAM ロールを引き受けることができます。RAM ロールを作成する際は、[Alibaba Cloud サービス] に [標準サービスロール] を設定し、[OSS] を信頼できるサービスとして設定します。詳細については、「標準サービスロールを作成する」をご参照ください。
説明RAM ロールの作成後、後続の権限付与のために、[基本情報] セクションに RAM ロールの Alibaba Cloud Resource Name (ARN) を記録します。
ソースバケットで CRR を実行するための権限を RAM ロールに付与します。
次のいずれかの方法を使用して、RAM ロールに権限を付与できます。
必要なシステムポリシーを RAM ロールにアタッチする
警告AliyunOSSFullAccess
システムポリシーを RAM ロールにアタッチします。AliyunOSSFullAccess
システムポリシーがアタッチされている RAM ロールには、現在の Alibaba Cloud アカウント内のすべてのバケットに対するすべての操作を実行するための権限があります。システムポリシーを RAM ロールにアタッチする際は注意してください。カスタムポリシーを RAM ロールにアタッチする
RAM ポリシーを使用して、ソースバケットで CRR を実行するために必要な最小限の権限を RAM ロールに付与できます。
説明ビジネス要件に基づいて、src-bucket をソースバケットの名前に置き換えます。
{ "Version":"1", "Statement":[ { "Effect":"Allow", "Action":[ "oss:ReplicateList", "oss:ReplicateGet" ], "Resource":[ "acs:oss:*:*:src-bucket", "acs:oss:*:*:src-bucket/*" ] } ] }
Key Management Service (KMS) によって暗号化されたオブジェクトをデスティネーションバケットにレプリケートする場合、
AliyunKMSFullAccess
システムポリシーを RAM ロールにアタッチする必要があります。システムポリシーを RAM ロールにアタッチする方法の詳細については、「RAM ロールに権限を付与する」をご参照ください。
アカウント B を使用して、デスティネーションバケットにレプリケートするオブジェクトを受信するための権限を RAM ロールに付与します。
方法 1: (推奨)GUI で追加する
OSS コンソール にログオンします。
左側のナビゲーションウィンドウで、バケットリスト をクリックします。[バケット] ページで、
dest-bucket
という名前のバケットを見つけ、バケット名をクリックします。左側のナビゲーションツリーで、
を選択します。バケット承認ポリシー タブで、GUI で追加 をクリックし、レプリケーションオブジェクトの受信 をクリックします。
レプリケーションオブジェクトの受信 パネルで、UID および RAM ロールの取得方法 を [レプリケーションのソース RAM ロールの ARN] に設定し、手順 1 で作成した RAM ロールの ARN を ソースから RAM ロールの ARN をコピーする に入力します。
ポリシーの生成 をクリックします。
方法 2: 構文で追加する
左側のナビゲーションツリーで、権限管理 > バケット承認ポリシー を選択します。
バケット承認ポリシー タブで、構文で追加 をクリックし、[編集] をクリックします。
コードエディタで、次のバケットポリシーを入力します。
重要ポリシー ステートメントを指定してバケットポリシーを構成し、RAM ロールに必要な権限を付与する場合、新しいバケットポリシーは既存のバケットポリシーを上書きします。新しいバケットポリシーに既存のバケットポリシーの内容が含まれていることを確認してください。そうしないと、既存のバケットポリシーの承認が失敗する可能性があります。
ビジネス要件に基づいて、ロール名を、作成した RAM ロールの名前に置き換えます。作成した RAM ロールの名前に大文字が含まれている場合は、小文字に変換する必要があります。 たとえば、作成した RAM ロールの名前が AliyunOssDrsRole の場合、AliyunOssDrsRole を aliyunossdrsrole に変換する必要があります。次の例では、デスティネーションバケットの名前は dest-bucket、ソースバケットが属するアカウントの UID は 137918634953xxxx、デスティネーションバケットが属するアカウントの UID は 111933544165xxxx です。
{ "Version":"1", "Statement":[ { "Effect":"Allow", "Action":[ "oss:ReplicateList", "oss:ReplicateGet", "oss:ReplicatePut", "oss:ReplicateDelete" ], "Principal": [ "arn:sts::137918634953xxxx:assumed-role/aliyunossdrsrole/*" ], "Resource":[ "acs:oss:*:111933544165xxxx:dest-bucket", "acs:oss:*:111933544165xxxx:dest-bucket/*" ] } ] }
[保存] をクリックします。表示されるメッセージで、[OK] をクリックします。
SSE-KMS を使用して暗号化されたオブジェクトをレプリケートする
SSE-KMS を使用して暗号化されたオブジェクトは、次のリージョンのバケットにレプリケートできます。中国(杭州)、中国(上海)、中国(深圳)、中国(河源)、中国(広州)、中国(青島)、中国(北京)、中国(張家口)、中国(フフホト)、中国(ウランチャブ)、中国(成都)、中国東部 2 金融、中国(香港)、シンガポール、マレーシア(クアラルンプール)、インドネシア(ジャカルタ)、フィリピン(マニラ)、タイ(バンコク)、日本(東京)、米国(シリコンバレー)、米国(バージニア)、ドイツ(フランクフルト)、英国(ロンドン)。
アカウント A に属するソースバケットからアカウント B に属するデスティネーションバケットに SSE-KMS を使用して暗号化されたオブジェクトをコピーする場合は、アカウント B を使用して次の手順を実行します。
KMS コンソールにログオンします。左側のナビゲーションウィンドウで、[リソース] > [インスタンス] を選択します。[インスタンス] ページで、デスティネーションバケットと同じリージョンに KMS インスタンスを作成して有効にします。KMS インスタンスを作成する際は、[アクセス管理数量] パラメーターの値が 2 以上であることを確認してください。その他のパラメーターについてはデフォルト設定を保持します。詳細については、「KMS インスタンスを購入して有効にする」をご参照ください。
KMS インスタンスにキーを作成します。キの種類はデフォルトにすることはできません。ソフトウェアキーを使用することをお勧めします。詳細については、「ソフトウェアで保護されたキー」をご参照ください。
説明キーを作成した後、後続のレプリケーションルールの構成のために、[基本情報] セクションにキーの ARN を記録します。
キーのポリシーを構成します。キーポリシーを構成する際は、[クロスアカウントユーザー] を 前の手順 で作成したロールの ARN に設定します。詳細については、「キーポリシーを構成する」をご参照ください。
重要SSE-KMS で暗号化されたオブジェクトをアカウントを跨いでレプリケートするには、キーポリシーに少なくとも
kms:Decrypt
およびkms:GenerateDataKey
の権限が必要です。KMS コンソールでキーポリシーを構成すると、上記の権限がデフォルトで追加されます。API 操作を呼び出してカスタムキーポリシーを構成する場合は、ポリシーに少なくともkms:Decrypt
およびkms:GenerateDataKey
の権限があることを確認してください。