Simple Log Service では、デフォルトロール AliyunLogETLRole またはカスタム Resource Access Management (RAM) ロールを使用してスケジュール済み SQL ジョブを作成できます。このトピックでは、カスタム RAM ロールにソースログストアのログを分析する権限と、デスティネーションログストアにデータを書き込む権限を付与する方法について説明します。
カスタム RAM ロールにソースログストアのログを分析する権限を付与する
Alibaba Cloud アカウントを使用するか、管理権限を持つ RAM ユーザーとして、[RAM コンソール] にログオンします。
QueryLogstoreRoleという名前の RAM ロールを作成します。詳細については、「手順 1: RAM ロールの作成」をご参照ください。重要RAM ロールを作成する際は、[信頼エンティティの選択] パラメーターを [alibaba Cloud サービス] に設定し、[信頼サービスの選択] パラメーターを [log Service] に設定する必要があります。
RAM ロールの信頼ポリシーを確認します。
Service要素に少なくとも"log.aliyuncs.com"が含まれていることを確認してください。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" // Log Service ] } } ], "Version": "1" }
QueryLogstorePolicyという名前のカスタムポリシーを作成します。このポリシーは、ソースログストアのログを分析する権限を付与します。 詳細については、「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" } ] }権限付与のあいまい一致
複数のプロジェクトとログストアに権限を付与する場合は、あいまい一致を使用できます。この例では、ソースプロジェクトの名前は log-project-dev-a、log-project-dev-b、log-project-dev-c です。ソースログストアの名前は website_a_log、website_b_log、website_c_log です。ビジネス要件に基づいて、プロジェクト名とログストア名を置き換えることができます。
{ "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 Resource Name (ARN) を取得します。詳細については、「RAM ロールの情報を表示する」をご参照ください。
スケジュール済み SQL ジョブを作成する際は、[SQL 実行認証] パラメーターを [カスタムロール] に設定し、
QueryLogstoreRoleRAM ロールの Alibaba Cloud Resource Name (ARN) を入力します。詳細については、「スケジュール済み SQL ジョブを作成する」をご参照ください。
RAM ロールにデスティネーションログストアにデータを書き込む権限を付与する
Alibaba Cloud アカウントを使用するか、管理権限を持つ RAM ユーザーとして、[RAM コンソール] にログオンします。
WriteLogstoreRoleという名前の RAM ロールを作成します。詳細については、「手順 1: RAM ロールの作成」をご参照ください。重要RAM ロールを作成する際は、[信頼エンティティの選択] パラメーターを [alibaba Cloud サービス] に設定し、[信頼サービスの選択] パラメーターを [log Service] に設定する必要があります。
RAM ロールの信頼ポリシーを確認します。
Service要素に少なくとも"log.aliyuncs.com"が含まれていることを確認してください。{ "Statement": [ { "Action": "sts:AssumeRole", // ロールを引き受ける "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" // Log Service ] } } ], "Version": "1" }
WriteLogstorePolicyという名前のカスタムポリシーを作成します。このポリシーは、宛先ログストアにログを書き込む権限を付与します。 詳細については、「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" } ] }権限付与のあいまい一致
複数のプロジェクトとログストアに権限を付与する場合は、あいまい一致を使用できます。この例では、デスティネーションプロジェクトの名前は log-project-dev-a、log-project-dev-b、log-project-dev-c です。デスティネーションログストアの名前は website_a_log_output、website_b_log_output、website_c_log_output です。ビジネス要件に基づいて、プロジェクト名とログストア名を置き換えることができます。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", // Post で始まるすべてのアクション // Post で始まるすべてのアクション "log:BatchPost*" // BatchPost で始まるすべてのアクション // BatchPost で始まるすべてのアクション ], "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log_output", // ワイルドカード (*) を使用して複数のプロジェクトとログストアを指定 "Effect": "Allow" } ] }WriteLogstorePolicyポリシーをWriteLogstoreRoleロールにアタッチします。詳細については、「RAM ロールに権限を付与する」をご参照ください。オプション。ソースログストアとデスティネーションログストアが同じ Alibaba Cloud アカウント内にない場合は、
WriteLogstoreRoleRAM ロールの信頼ポリシーを変更する必要があります。ロールページで、
WriteLogstoreRoleRAM ロールをクリックします。[信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックし、コードエディタ内の既存のスクリプトを次のポリシードキュメントに置き換えます。
重要ソースログストアが属する Alibaba Cloud アカウント A の IDを Alibaba Cloud アカウントの ID に置き換えます。Alibaba Cloud アカウントの ID は、[アカウントセンター] コンソールで確認できます。{ "Statement": [ { "Action": "sts:AssumeRole", // ロールを引き受ける "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com", // Log Service "ソースログストアが属する Alibaba Cloud アカウント A の ID@log.aliyuncs.com" // ソースアカウントの Log Service ] } } ], "Version": "1" }
次の手順
RAM ロールの Alibaba Cloud Resource Name (ARN) を取得します。詳細については、「RAM ロールの情報を表示する」をご参照ください。
スケジュール済み SQL ジョブを作成する際は、[書き込み認証] パラメーターを [カスタムロール] に設定し、
WriteLogstoreRoleRAM ロールの ARN を入力します。詳細については、「スケジュール済み SQL ジョブを作成する」をご参照ください。