スケジュールされたSQLジョブが実行されると、ジョブはSQL文を実行してソースLogstoreのデータを分析し、分析結果を宛先Logstoreまたは宛先Metricstoreに保存します。 リソースアクセス管理 (RAM) ロールをスケジュールされたSQLジョブに割り当てて、上記の操作を完了できます。 ソースLogstoreとターゲットLogstoreが同じAlibaba Cloudアカウントに属していない場合は、このトピックで説明されている手順を実行して、RAMロールに権限を付与します。 スケジュールされたSQLジョブを設定するときに、LogstoreまたはMetricstoreを指定できます。 このトピックでは、Alibaba Cloudアカウント間でLogstoreにアクセスする権限をRAMロールに付与する方法について説明します。
前提条件
role-a
という名前のRAMロールはAlibaba CloudアカウントAに作成されます。role-b
という名前のRAMロールはAlibaba CloudアカウントBに作成されます。詳細については、「信頼できるAlibaba CloudサービスのRAMロールの作成」をご参照ください。
RAMロールを作成するときに、信頼できるエンティティとしてAlibaba Cloud Serviceを選択します。
RAMロールの信頼ポリシーでは、以下に示すように、
"サービス"
フィールドに"log.aliyuncs.com"
を含める必要があります。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
role-a
にソースLogstoreのデータを分析する権限を付与する
role-a
にAlibaba CloudアカウントAに属するソースLogstoreのデータを分析する権限を付与すると、スケジュールされたSQLジョブはrole-aを引き受けて、ソースLogstoreのデータに対してSQL分析を実行できます。
Alibaba CloudアカウントAを使用して、RAMコンソールにログインします。
ソースLogstoreのログデータを分析する権限を含むポリシーを作成します。
左側のナビゲーションウィンドウから、
を選択します。[ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[JSON] タブをクリックします。 コードエディターの既存のスクリプトを次のいずれかのポリシードキュメントに置き換えます。 完全一致またはファジー一致が承認にサポートされています。
認証の完全一致
この例では、ソースプロジェクトの名前はlog-project-prodです。 ソースLogstoreの名前はwebsite_logです。 名前は、プロジェクトとLogstoreの実際の名前に置き換える必要があります。
重要ポリシーを作成するときは、Logstoreキーワードの後にlogstoreまたはMetricstoreを指定できます。 Metricstoreを管理する場合は、次のポリシードキュメントを参照してポリシーを作成することもできます。
{ "Version":"1", "Statement":[ { "Action":[ "log:PostProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-prod/logstore/website_log", "acs:log:*:*:project/log-project-prod/logstore/website_log/*" ], "Effect":"Allow" }, { "Action":[ "log:GetProjectQuery", "log:PutProjectQuery", "log:DeleteProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-prod" ], "Effect":"Allow" } ] }
承認のためのファジーマッチ
この例では、ソースプロジェクトの名前は、log-project-dev-a、log-project-dev-b、およびlog-project-dev-cです。 ソースLogstoreの名前は、website_a_log、website_b_log、およびwebsite_c_logです。 名前は、プロジェクトとLogstoreの実際の名前に置き換える必要があります。
{ "Version":"1", "Statement":[ { "Action":[ "log:PostProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log", "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log/*" ], "Effect":"Allow" }, { "Action":[ "log:GetProjectQuery", "log:PutProjectQuery", "log:DeleteProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*" ], "Effect":"Allow" } ] }
[OK] をクリックします。 表示されるダイアログボックスで、パラメーターを設定します。 下表に、各パラメーターを説明します。
パラメーター
説明
名前
ポリシー名です。
脱着
ポリシーの説明です。
role-a
に必要な権限を付与します。左側のナビゲーションペインで、
を選択します。RAMロールを見つけ、[操作] 列の [権限の付与] をクリックします。
手順2で作成したポリシーを選択し、[OK] をクリックします。
閉じるをクリックします。
role-b
に、宛先Logstoreにデータを書き込む権限を付与する
Alibaba Cloudアカウントbに属する宛先Logstoreにデータを書き込む権限をrole-B
に付与すると、スケジュールされたSQLジョブはrole-bを引き受け、Alibaba CloudアカウントaのSQL分析結果を宛先Logstoreに書き込むことができます。
Alibaba CloudアカウントBを使用して、RAMコンソールにログインします。
宛先Logstoreにデータを書き込む権限を含むポリシーを作成します。
左側のナビゲーションウィンドウから、
を選択します。[ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[JSON] タブをクリックします。 コードエディターの既存のスクリプトを次のいずれかのポリシードキュメントに置き換えます。 完全一致またはファジー一致が承認にサポートされています。
認証の完全一致
この例では、ソースプロジェクトの名前はlog-project-prodです。 ソースLogstoreの名前はwebsite_log_outputです。 名前は、プロジェクトとLogstoreの実際の名前に置き換える必要があります。
重要ポリシーを作成するときは、Logstoreキーワードの後にlogstoreまたはMetricstoreを指定できます。 Metricstoreを管理する場合は、次のポリシードキュメントを参照してポリシーを作成することもできます。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-prod/logstore/website_log_output", "Effect": "Allow" } ] }
承認のためのファジーマッチ
この例では、ソースプロジェクトの名前は、log-project-dev-a、log-project-dev-b、およびlog-project-dev-cです。 ソースLogstoreの名前は、website_a_log_output、website_b_log_output、およびwebsite_c_log_outputです。 名前は、プロジェクトとLogstoreの実際の名前に置き換える必要があります。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log_output", "Effect": "Allow" } ] }
[OK] をクリックします。 表示されるダイアログボックスで、パラメーターを設定します。 下表に、各パラメーターを説明します。
パラメーター
説明
名前
ポリシー名です。
脱着
ポリシーの説明です。
role-b
に必要な権限を付与します。左側のナビゲーションペインで、
を選択します。RAMロールを見つけ、[操作] 列の [権限の付与] をクリックします。
手順2で作成したポリシーを選択し、[OK] をクリックします。
閉じるをクリックします。
role-b
の信頼ポリシーを編集します。[RAMロール] リストで、管理するRAMロールをクリックします。 この例では、
role-B
をクリックします。[信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックします。
ポリシーを変更します。
[Alibaba CloudアカウントAのID] を [サービス] 要素に追加します。 ビジネスシナリオに基づいてIDを置き換えます。 アカウントセンターコンソールでAlibaba CloudアカウントのIDを確認できます。
次のポリシーにより、Alibaba CloudアカウントAは、Alibaba cloudアカウントBのクラウドリソースを管理するための一時的なSTS (Security Token Service) トークンを取得できます。
{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "ID of Alibaba Cloud Account A@log.aliyuncs.com" ] } } ], "Version": "1" }
[信頼ポリシードキュメントの保存] をクリックします。