スケジュールされたSQLジョブが実行されると、ジョブはSQL文を実行してソースLogstoreのデータを分析し、分析結果を宛先Logstoreまたは宛先Metricstoreに保存します。 リソースアクセス管理 (RAM) ロールをスケジュールされたSQLジョブに割り当てて、上記の操作を完了できます。 ソースLogstoreとターゲットLogstoreが同じAlibaba Cloudアカウントに属している場合、このトピックで説明されている手順を実行して、RAMロールに権限を付与します。 スケジュールされたSQLジョブを設定するときに、LogstoreまたはMetricstoreを指定できます。 このトピックでは、同じAlibaba CloudアカウントのLogstoreにアクセスする権限をRAMロールに付与する方法について説明します。
前提条件
RAMロールが作成されます。 詳細については、「信頼できるエンティティがAlibaba CloudサービスであるRAMロールを作成し、RAMロールにSimple Log serviceにアクセスする権限を付与する」をご参照ください。
RAMロールは次の要件を満たす必要があります。
RAMロールを作成するときに、信頼できるエンティティとしてAlibaba Cloud Serviceを選択します。
RAMロールの信頼ポリシーでは、以下に示すように、
"サービス"
フィールドに"log.aliyuncs.com"
を含める必要があります。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
手順1: ソースLogstoreのデータを分析する権限をRAMロールに付与する
ソースLogstore内のデータを分析する権限をRAMロールに付与すると、スケジュールされたSQLジョブはRAMロールを引き受けて、ソースLogstore内のデータに対してSQL分析を実行できます。
RAMコンソールAlibaba Cloudアカウントを使用します。
ソースLogstoreのデータを分析する権限を付与するポリシーを作成します。
左側のナビゲーションウィンドウで、 .
クリックポリシーの作成.
On theポリシーの作成ページをクリックし、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] をクリックします。 下表にパラメーターを示します。
パラメーター
説明
名前
ポリシーの名前を入力します。 例: log-scheduled-sql-policy
脱着
ポリシーの説明を入力します。
RAMロールに権限を付与します。
左側のナビゲーションウィンドウで、 .
RAMロールを見つけて、権限付与[アクション] 列に表示されます。
[ポリシーの選択] セクションで [カスタムポリシー] をクリックし、ステップ2で作成したポリシーを選択します。 [OK] をクリックします。 この例では、log-scheduled-sql-policyポリシーが選択されています。
承認結果を確認します。 次に、[完了] をクリックします。
RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。
RAMロールの詳細ページを開き、[基本情報] セクションでロールのARNを表示します。 例: acs:ram::13 **** 44:role/logrole。 ARNを記録することを推奨します。 スケジュールされたSQLジョブを作成するときにカスタムロールを使用する場合は、ARNを入力する必要があります。
手順2: RAMロールにデータを宛先Logstoreに書き込む権限を付与する
RAMロールにデータを宛先Logstoreに書き込む権限を付与すると、スケジュールされたSQLジョブはRAMロールを引き受けて、SQL分析結果を宛先Logstoreに書き込むことができます。
にログインします。RAMコンソールAlibaba Cloudアカウントを使用します。
宛先Logstoreへのアクセス権限を付与するポリシーを作成します。
左側のナビゲーションウィンドウで、 .
[ポリシー] ページで、ポリシーの作成.
On theポリシーの作成ページをクリックし、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] をクリックします。 下表にパラメーターを示します。
パラメーター
説明
名前
ポリシーの名前を入力します。 例: log-sink-write-policy
脱着
ポリシーの説明を入力します。
RAMロールに権限を付与します。
左側のナビゲーションウィンドウで、 .
RAMロールを見つけて、権限付与[アクション] 列に表示されます。
[ポリシーの選択] セクションで [カスタムポリシー] をクリックし、ステップ2で作成したポリシーを選択します。 [OK] をクリックします。 この例では、log-sink-write-policyポリシーが選択されています。
承認結果を確認します。 次に、[完了] をクリックします。
RAMロールのARNを取得します。
RAMロールの詳細ページを開き、[基本情報] セクションでロールのARNを表示します。 例: acs:ram::13 **** 44:role/logrole。 ARNを記録することを推奨します。 スケジュールされたSQLジョブを作成するときにカスタムロールを使用する場合は、ARNを入力する必要があります。