同一アカウント内でのクロスリージョンレプリケーションは、オブジェクトの作成、更新、削除などの操作を、あるリージョンにあるソースバケットから、同一アカウント内の別リージョンにあるデスティネーションバケットへ、自動的かつ非同期 (ほぼリアルタイム) にレプリケートします。このトピックでは、同一アカウント内でクロスリージョンレプリケーションを設定する方法について説明します。
前提条件
ソースバケットとして機能する特定のリージョンにバケット (バケット A) を作成済みであること。アカウント ID、バケット A の名前、およびそのリージョンを記録しておいてください。
デスティネーションバケットとして機能する、同一アカウント内の別のリージョンに別のバケット (バケット B) を作成済みであること。バケット B の名前とそのリージョンを記録しておいてください。
ロールの種類
クロスリージョンレプリケーションを設定する際は、Object Storage Service (OSS) がソースバケットとデスティネーションバケット間でオブジェクトをレプリケートするために引き受けることができるロールを指定する必要があります。以下のいずれかのロールの種類を使用できます。
RAM ユーザーがロールを作成するには、ram:CreateRole、ram:GetRole、ram:ListPoliciesForRole、および ram:AttachPolicyToRole の権限が必要です。しかし、ram:CreateRole や ram:GetRole のようなロール関連の権限を RAM ユーザーに付与すると、セキュリティ上のリスクが生じます。セキュリティを強化するため、Alibaba Cloud アカウントを使用して RAM ロールを作成し、必要な権限を付与することを推奨します。その後、RAM ユーザーはそのロールを直接使用できます。
(推奨) 新しいロールの作成
クロスリージョンレプリケーションルールを作成する際に、新しいロールを作成することを選択できます。ロールは oss-replication-{uuid} の形式の名前で自動的に作成されます。このロールにアタッチされる権限ポリシーは、Key Management Service (KMS) で暗号化されたオブジェクトをレプリケートするかどうかによって異なります。
KMS で暗号化されたオブジェクトのレプリケート
ロールが作成された後、画面の指示に従って権限を付与します。承認されると、ロールにはソースバケットからデスティネーションバケットへのレプリケーションのためのきめ細かな権限ポリシーと、Key Management Service (KMS) を管理するための AliyunKMSCryptoUserAccess ポリシーが付与されます。
KMS で暗号化されたオブジェクトをレプリケートしない
ロールが作成された後、画面の指示に従って権限を付与します。承認されると、ロールにはソースバケットからデスティネーションバケットへのレプリケーションのためのきめ細かな権限ポリシーが付与されます。
AliyunOSSRole
クロスリージョンレプリケーションルールを作成する際に、AliyunOSSRole を選択してレプリケーションタスクを完了できます。このロールを選択した場合、KMS で暗号化されたオブジェクトをレプリケートするかどうかに応じて、異なる権限ポリシーがアタッチされます。
KMS で暗号化されたオブジェクトのレプリケート
AliyunOSSRole を選択した場合、AliyunOSSFullAccess (Object Storage Service の管理用) および AliyunKMSCryptoUserAccess (Key Management Service の管理用) ポリシーが自動的にロールにアタッチされます。
警告このロールは、アカウント配下のすべてのバケットと KMS キーに対する完全なアクセス権を持ちます。権限が広範であるため、このロールは慎重に使用してください。
KMS で暗号化されたオブジェクトをレプリケートしない
AliyunOSSRole を選択した場合、AliyunOSSFullAccess ポリシー (Object Storage Service の管理用) が自動的にロールにアタッチされます。
警告このロールは、アカウント配下のすべてのバケットに対する完全なアクセス権を持ちます。権限が広範であるため、このロールは慎重に使用してください。
カスタムロール
クロスリージョンレプリケーションルールを作成する際に、カスタムロールを使用してレプリケーションタスクを完了できます。RAM コンソールでカスタムロールを作成し、必要な権限をロールに付与する必要があります。
通常のサービスロールの作成
ロール作成中に、信頼されたエンティティとして [Alibaba Cloud Service] を選択し、信頼されたサービスとして [OSS] を選択します。詳細については、「通常のサービスロールの作成」をご参照ください。
ロールへの権限付与
以下のいずれかの方法でロールに権限を付与できます。
システムポリシーのアタッチ
警告AliyunOSSFullAccessシステムポリシーを RAM ロールにアタッチできます。デフォルトでは、AliyunOSSFullAccessは現在のアカウント配下のすべてのバケットに対する完全な権限を提供します。このポリシーは慎重に使用してください。KMS で暗号化されたオブジェクトをデスティネーションバケットにレプリケートする場合は、
AliyunKMSFullAccessシステムポリシーもロールにアタッチする必要があります。詳細については、「RAM ロールの権限管理」をご参照ください。
カスタムポリシーのアタッチ
RAM ポリシーを使用して、ソースバケット (
src-bucket) からデスティネーションバケット (dest-bucket) へのレプリケーションに必要な最小限の権限を付与します。説明ソースバケットとデスティネーションバケットの名前を、実際のバケット名に置き換えてください。
{ "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/*" ] } ] }詳細については、「RAM ロールの権限管理」をご参照ください。
説明KMS で暗号化されたオブジェクトをデスティネーションバケットにレプリケートする場合は、
AliyunKMSFullAccessシステムポリシーもロールにアタッチする必要があります。
同一アカウント内でリージョンをまたいでデータをレプリケートする場合、OSS はレプリケーションに使用される RAM ロールの権限ポリシーのみを検証します。ソースバケットまたはデスティネーションバケットのバケットポリシーはチェックしません。