このトピックでは、Simple Log ServiceはAlibaba CloudアカウントAに属し、Object Storage Service (OSS) はAlibaba CloudアカウントBに属します。Simple Log Service LogstoreからOSSバケットにデータを送信するには、新しいバージョンのOSSデータシッピングジョブにカスタムRAMロールを引き受ける権限を付与します。
手順1: role-a
RAMロールにLogstoreからデータを読み取る権限を付与する
Alibaba Cloudアカウントaのrole-aという名前のRAMロールにLogstoreからデータを読み取る権限を付与すると、OSSデータシッピングジョブはLogstoreからデータを読み取るロールを引き受けることができます。
Alibaba CloudアカウントAを使用してRAMコンソールにログインします。
Logstoreからデータを読み取る権限を付与するカスタムポリシーを作成します。
権限付与に完全一致またはファジー一致を使用するポリシードキュメントを使用できます。
認証の完全一致
[ポリシーの作成] ページで、[JSON] タブをクリックします。 エディターの既存の内容を次のスクリプトに置き換えます。 詳細については、「JSONタブでカスタムポリシーを作成する」をご参照ください。
重要置き換えることができます
プロジェクト名
とログストア名
ビジネス要件に基づいてポリシードキュメントで{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/Project name/logstore/Logstore name" ], "Effect":"Allow" } ] }
承認のためのファジーマッチ
[ポリシーの作成] ページで、[JSON] タブをクリックします。 エディターの既存の内容を次のスクリプトに置き換えます。 詳細については、「JSONタブでカスタムポリシーを作成する」をご参照ください。
重要この例では、プロジェクトの名前はlog-project-dev-a、log-project-dev-b、およびlog-project-dev-cであり、Logstoreの名前はwebsite_a_log、website_b_log、およびwebsite_c_logです。
置き換えることができます
log-project-dev-*
とウェブサイト_*_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ロールを作成するときは、[信頼できるエンティティの選択] パラメーターを [Alibaba Cloud Service] に設定し、[信頼できるサービスの選択] パラメーターを [Log Service] に設定する必要があります。
RAMロールの信頼ポリシーを確認します。
Service
要素に少なくとも"log.aliyuncs.com"
が含まれていることを確認します。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
作成したカスタムポリシーを
role-a
RAMロールにアタッチします。 詳細については、「RAMロールに権限を付与する」をご参照ください。
次に何をすべきか
RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。 詳細については、「RAMロールに関する情報の表示」をご参照ください。
OSSデータシッピングジョブの作成時にLogstore Read RAM Roleパラメーターをカスタムロールに設定した場合、ロールのAlibaba Cloudリソース名 (ARN) を入力する必要があります。 詳細については、「OSSデータ配布ジョブの作成 (新バージョン) 」をご参照ください。
手順2: role-b RAMロールにOSSバケットにデータを書き込む権限を付与する
Alibaba Cloudアカウントbのrole-B
という名前のRAMロールにOSSバケットにデータを書き込む権限を付与すると、OSSデータシッピングジョブは、Alibaba CloudアカウントaのLogstoreから読み取られたデータをOSSバケットに書き込むロールを引き受けることができます。
Alibaba CloudアカウントBを使用してRAMコンソールにログインします。
OSSバケットにデータを書き込む権限を付与するカスタムポリシーを作成します。
[ポリシーの作成] ページで、[JSON] タブをクリックします。 エディターの既存の内容を次のスクリプトに置き換えます。 詳細については、「JSONタブでカスタムポリシーを作成する」をご参照ください。
{ "Version": "1", "Statement": [ { "Action": [ "oss:PutObject" ], "Resource": "*", "Effect": "Allow" } ] }
説明OSSリソースにきめ細かいアクセス制御を実装する場合は、RAMポリシーに記載されている手順に基づいてポリシーを設定できます。
role-b
という名前のRAMロールを作成します。 詳細については、「」をご参照ください。信頼できるAlibaba CloudサービスのRAMロールの作成.重要RAMロールを作成するときは、[信頼できるエンティティの選択] パラメーターを [Alibaba Cloud Service] に設定し、[信頼できるサービスの選択] パラメーターを [Log Service] に設定する必要があります。
RAMロールの信頼ポリシーを確認します。
Service
要素に少なくとも"log.aliyuncs.com"
が含まれていることを確認します。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
role-b
のRAMロールの信頼ポリシーを変更します。 詳細については、「RAMロールの信頼ポリシーの編集」をご参照ください。重要Alibaba CloudアカウントA@log.aliyuncs.comのIDをサービス要素に追加します。 Alibaba CloudアカウントAのIDを実際のIDに置き換えます。 アカウントセンターコンソールでAlibaba CloudアカウントのIDを確認できます。
次のポリシーでは、Alibaba CloudアカウントAがSecurity Token Service (STS) トークンを取得して、Alibaba cloudアカウントBのクラウドリソースを管理できます。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "ID of Alibaba Cloud Account A@log.aliyuncs.com" ] } } ], "Version": "1" }
作成したカスタムポリシーを
role-b
のRAMロールにアタッチします。 詳細については、「RAMロールに権限を付与する」をご参照ください。
次に何をすべきか
RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。 詳細については、「RAMロールに関する情報の表示」をご参照ください。
OSSデータシッピングジョブを作成するときに、OSS Write RAM Roleパラメーターを [Custom Role] に設定した場合、ロールのARNを入力する必要があります。 詳細については、「OSSデータ配布ジョブの作成 (新バージョン) 」をご参照ください。