Simple Log Serviceでは、デフォルトのロールAliyunLogETLRoleまたはカスタムのResource Access Management (RAM) ロールを使用して、スケジュールされたSQLジョブを作成できます。 このトピックでは、カスタムRAMロールに、ソースLogstoreのログを分析する権限と、ターゲットLogstoreにデータを書き込む権限を付与する方法について説明します。
ソースLogstoreのログを分析する権限をカスタムRAMロールに付与する
Alibaba Cloudアカウントを使用するか、管理権限を持つRAMユーザーとしてRAMコンソールにログインします。
QueryLogstoreRole
という名前のRAMロールを作成します。 詳細については、「手順1: 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" }
QueryLogstorePolicy
という名前のカスタムポリシーを作成します。 ポリシーは、ソースLogstoreのログを分析する権限を付与します。 詳細については、「」をご参照ください。[JSON] タブでカスタムポリシーを作成する.[ポリシーの作成] ページの [JSON] タブで、完全一致またはあいまい一致を使用したポリシードキュメントを使用して、コードエディターの既存のスクリプトを置き換えることができます。
認証の完全一致
ビジネス要件に基づいて、スクリプトの
{project-name}
と{logstore-name}
を置き換えます。重要ポリシーを作成するときは、Logstoreキーワードの後にLogstoreまたはMetricstoreを指定できます。 Metricstoreを管理する場合は、次のポリシードキュメントを参照してポリシーを作成することもできます。
{ "Version":"1", "Statement":[ { "Action":[ "log:PostProjectQuery" ], "Resource":[ "acs:log:*:*:project/{project-name}/logstore/{logstore-name}" ], "Effect":"Allow" }, { "Action":[ "log:GetProjectQuery", "log:PutProjectQuery", "log:DeleteProjectQuery" ], "Resource":[ "acs:log:*:*:project/{project-name}" ], "Effect":"Allow" } ] }
ファジーマッチ認証
複数のプロジェクトとLogstoreに対する権限を付与する場合は、承認にファジー一致を使用できます。 この例では、ソースプロジェクトの名前は、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" ], "Effect":"Allow" }, { "Action":[ "log:GetProjectQuery", "log:PutProjectQuery", "log:DeleteProjectQuery" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*" ], "Effect":"Allow" } ] }
QueryLogstorePolicy
ポリシーをQueryLogstoreRole
ロールにアタッチします。 詳細については、「」をご参照ください。RAMロールに権限を付与する.
次に何をすべきか
RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。 詳細については、「」をご参照ください。RAMロールに関する情報の表示.
スケジュールされたSQLジョブを作成するときに、[SQL実行許可] パラメーターを [カスタムロール] に設定し、
[QueryLogstoreRole]
RAMロールのAlibaba Cloudリソース名 (ARN) を入力します。 詳細については、「スケジュールされたSQLジョブの作成」をご参照ください。
RAMロールに、宛先Logstoreにデータを書き込む権限を付与する
Alibaba Cloudアカウントを使用するか、管理権限を持つRAMユーザーとしてRAMコンソールにログインします。
WriteLogstoreRole
という名前のRAMロールを作成します。 詳細については、「手順1: 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" }
WriteLogstorePolicy
という名前のカスタムポリシーを作成します。 ポリシーは、宛先Logstoreにログを書き込む権限を付与します。 詳細については、「」をご参照ください。[JSON] タブでカスタムポリシーを作成する.[ポリシーの作成] ページの [JSON] タブで、完全一致またはあいまい一致を使用したポリシードキュメントを使用して、コードエディターの既存のスクリプトを置き換えることができます。
認証の完全一致
ビジネス要件に基づいて、スクリプトの
{project-name}
と{logstore-name}
を置き換えます。重要ポリシーを作成するときは、Logstoreキーワードの後にLogstoreまたはMetricstoreを指定できます。 Metricstoreを管理する場合は、次のポリシードキュメントを参照してポリシーを作成することもできます。
{ "Version": "1", "Statement": [ { "Action": [ "log:PostLogStoreLogs", "log:PostProjectQuery", "log:BatchPostLogStoreLogs" ], "Resource": "acs:log:*:*:project/{project-name}/logstore/{logstore-name}", "Effect": "Allow" } ] }
承認のためのファジーマッチ
複数のプロジェクトとLogstoreに対する権限を付与する場合は、承認にファジー一致を使用できます。 この例では、ターゲットプロジェクトの名前は、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" } ] }
WriteLogstorePolicy
ポリシーをWriteLogstoreRole
RAMロールにアタッチします。 詳細については、「」をご参照ください。RAMロールに権限を付与する.オプション。 ソースLogstoreとターゲットLogstoreが同じAlibaba Cloudアカウント内にない場合、
WriteLogstoreRole
RAMロールの信頼ポリシーを変更する必要があります。[ロール] ページで、
[WriteLogstoreRole]
RAMロールをクリックします。[信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックし、コードエディターの既存のスクリプトを次のポリシードキュメントに置き換えます。
重要ソースLogstoreが属するAlibaba CloudアカウントAのID
をAlibaba CloudアカウントのIDに置き換えます。 アカウントセンターコンソールでAlibaba CloudアカウントのIDを確認できます。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", "ID of Alibaba Cloud Account A to which the source Logstore belongs@log.aliyuncs.com" ] } } ], "Version": "1" }
次に何をすべきか
RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。 詳細については、「」をご参照ください。RAMロールに関する情報の表示.
スケジュールされたSQLジョブを作成するときに、書き込み許可パラメーターをカスタムロールに設定し、
WriteLogstoreRole
RAMロールのARNを入力します。 詳細については、「スケジュールされたSQLジョブの作成」をご参照ください。