Simple Log Service のリソースが Alibaba Cloud アカウント A にあり、Object Storage Service (OSS) のリソースが Alibaba Cloud アカウント B にある場合、Simple Log Service の Logstore から OSS バケットへアカウント間でデータを転送するには、カスタムロールを使用する必要があります。このトピックでは、必要な権限を付与する方法について説明します。
ステップ 1: RAM ロール role-a への読み取りアクセス権付与
アカウント A の RAM ロール role-a に Logstore データを読み取る権限を付与すると、OSS データ転送ジョブはこのロールを偽装して Logstore からデータを読み取ることができます。
-
Alibaba Cloud アカウント A を使用して、RAM コンソール にログインします。
-
Logstore からデータを読み取る権限を付与するカスタムポリシーを作成します。
[完全一致による権限付与] または [ワイルドカード一致による権限付与] のいずれかを使用できます。
完全一致
重要ビジネス要件に基づいて、ポリシードキュメント内の
Project nameとLogstore nameを置き換えます。{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/your-project-name/logstore/your-logstore-name" ], "Effect":"Allow" } ] }ワイルドカード一致
重要-
たとえば、
log-project-dev-aやlog-project-dev-b、またはwebsite_a_logやwebsite_b_logのように、類似した名前の複数のプロジェクトと Logstore がある場合は、ワイルドカード一致による権限付与を使用します。 -
ポリシー内で、ご利用のプロジェクト名と Logstore 名に一致するように
log-project-dev-*とwebsite_*_log*を置き換えます。
{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*" ], "Effect":"Allow" } ] } -
-
role-aという名前の RAM ロールを作成します。詳細については、「信頼できる Alibaba Cloud サービス向けに RAM ロールを作成する」をご参照ください。重要RAM ロールを作成する際は、[プリンシパルの種類] を [クラウドサービス] に設定し、[プリンシパル名] を Simple Log Service に設定します。
RAM ロールの信頼ポリシーを確認します。
Service要素に少なくとも"log.aliyuncs.com"が含まれていることを確認します。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
-
カスタムポリシーを
role-aRAM ロールにアタッチします。 詳細については、「RAM ロールに権限を付与する」をご参照ください。
次のステップ
RAM ロールの Alibaba Cloud Resource Name (ARN) を取得します。詳細については、「RAM ロールの詳細表示」をご参照ください。
OSS データ転送ジョブを作成する際、[カスタムロール] を選択した場合は、この ARN を [Logstore 読み取り用 RAM ロール] パラメーターに指定します。詳細については、「OSS データ転送ジョブの作成(新バージョン)」をご参照ください。
ステップ 2: RAM ロール role-b への書き込みアクセス権付与
アカウント B の RAM ロール role-b に OSS バケットへの書き込み権限を付与すると、OSS データ転送ジョブはこのロールを偽装してアカウント B のバケットにデータを転送できます。
-
Alibaba Cloud アカウント B を使用して、RAM コンソール にログインします。
-
OSS バケットへの書き込み権限を付与するカスタムポリシーを作成します。
{ "Version": "1", "Statement": [ { "Action": [ "oss:PutObject" ], "Resource": "*", "Effect": "Allow" } ] }説明OSS 権限をよりきめ細かく制御するには、「RAM ポリシー」をご参照ください。
-
role-bという名前の RAM ロールを作成します。 詳細については、「信頼できる Alibaba Cloud サービス用の RAM ロールを作成する」をご参照ください。重要RAM ロールを作成する際は、[プリンシパルの種類] を [クラウドサービス] に設定し、[プリンシパル名] を Simple Log Service に設定します。
RAM ロールの信頼ポリシーを確認します。
Service要素に少なくとも"log.aliyuncs.com"が含まれていることを確認します。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
-
RAM ロール
role-bの信頼ポリシーを変更します。詳細については、「RAM ロールの信頼ポリシーの編集」をご参照ください。重要信頼ポリシーの
Principalオブジェクト内の [サービス] リストに、ACCOUNT_A_ID@log.aliyuncs.comを追加します。ACCOUNT_A_IDを Alibaba Cloud アカウント A の ID に置き換えます。アカウント ID は、アカウントセンター で確認できます。このポリシーにより、Alibaba Cloud アカウント A のプリンシパルは Simple Log Service を使用して一時的な認証情報を取得し、Alibaba Cloud アカウント B のリソースにアクセスできます。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "ACCOUNT_A_ID@log.aliyuncs.com" ] } } ], "Version": "1" } -
カスタムポリシーを
role-bRAM ロールにアタッチします。詳細については、「RAM ロールに権限を付与する」をご参照ください。
次のステップ
RAM ロールの Alibaba Cloud Resource Name (ARN) を取得します。詳細については、「RAM ロールの詳細表示」をご参照ください。
OSS データ転送ジョブを作成する際、[OSS への書き込み用 RAM ロール] パラメーターにこの ARN を入力します(カスタムロールを選択した場合)。詳細については、「OSS データ転送ジョブの作成(新バージョン)」をご参照ください。
