Simple Log Serviceでは、デフォルトロール、カスタムロール、またはAccessKeyペアを使用してデータ変換ジョブを作成できます。 データ変換ジョブを作成するときに、[権限付与方法] パラメーターを [カスタムロール] に設定できます。 このトピックでは、ログストア内のデータにアクセスする権限をカスタムロールに付与する方法について説明します。
前提条件
RAM (Resource Access Management) ロールが作成されます。 詳細については、「信頼できる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" }
RAMロールにソースログストアの読み取り専用権限を付与する
Alibaba Cloudアカウントを使用してRAMロールにソースログストアの読み取り専用権限を付与すると、RAMロールはソースログストアからデータを読み取ることができます。 データ変換ジョブを作成するときに、RAMロールを使用できます。 詳細については、「データ変換ジョブの作成」をご参照ください。
Alibaba Cloudアカウントまたは管理者権限を持つRAMユーザーを使用し、RAMコンソールにログインします。
カスタムポリシーを作成します。 この例では、
log-etl-source-reader-policy
ポリシーが作成されます。 このポリシーは、ソースログストアに対する読み取り専用権限を付与します。 詳細については、「[JSON] タブでカスタムポリシーを作成する」をご参照ください。[ポリシーの作成] ページの [JSON] タブで、完全一致またはあいまい一致を使用したポリシードキュメントを使用して、コードエディターの既存のスクリプトを置き換えることができます。
認証の完全一致
この例では、ソースプロジェクト名はlog-project-prod、ソースログストア名はaccess_logです。 ビジネス要件に基づいて、プロジェクト名とログストア名を置き換えます。
{ "Version": "1", "Statement": [ { "Action": [ "log:ListShards", "log:GetCursorOrData", "log:GetConsumerGroupCheckPoint", "log:UpdateConsumerGroup", "log:ConsumerGroupHeartBeat", "log:ConsumerGroupUpdateCheckPoint", "log:ListConsumerGroup", "log:CreateConsumerGroup" ], "Resource": [ "acs:log:*:*:project/log-project-prod/logstore/access_log", "acs:log:*:*:project/log-project-prod/logstore/access_log/*" ], "Effect": "Allow" } ] }
承認のためのファジーマッチ
この例では、ソースプロジェクト名はlog-project-dev-a、log-project-dev-b、およびlog-project-dev-cであり、ソースログストア名はapp_a_log、app_b_log、およびapp_c_logです。 ビジネス要件に基づいて、プロジェクト名とログストア名を置き換えます。
{ "Version": "1", "Statement": [ { "Action": [ "log:ListShards", "log:GetCursorOrData", "log:GetConsumerGroupCheckPoint", "log:UpdateConsumerGroup", "log:ConsumerGroupHeartBeat", "log:ConsumerGroupUpdateCheckPoint", "log:ListConsumerGroup", "log:CreateConsumerGroup" ], "Resource": [ "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log", "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log/*" ], "Effect": "Allow" } ] }
作成したカスタムポリシーをRAMロールにアタッチします。 詳細については、「RAMロールに権限を付与する」をご参照ください。
RAMロールに、同じAlibaba Cloudアカウント内の宛先ログストアに対する書き込み権限を付与する
ソースログストアとデスティネーションログストアが同じAlibaba Cloudアカウントに属している場合、Alibaba Cloudアカウントを使用してRAMロールに書き込み権限を付与できます。 次に、RAMロールは変換されたデータを宛先ログストアに書き込むことができます。 データ変換ジョブを作成するときに、RAMロールを使用できます。 詳細については、「データ変換ジョブの作成」をご参照ください。
カスタムポリシーを作成します。 この例では、
log-etl-target-writer-policy
ポリシーが作成されます。 ポリシーは、変換結果を宛先ログストアに書き込む権限を付与します。 詳細については、「[JSON] タブでカスタムポリシーを作成する」をご参照ください。[ポリシーの作成] ページの [JSON] タブで、完全一致またはあいまい一致を使用したポリシードキュメントを使用して、コードエディターの既存のスクリプトを置き換えることができます。
認証の完全一致
この例では、宛先プロジェクト名はlog-project-prod、宛先ログストア名はaccess_log_outputです。 ビジネス要件に基づいて、プロジェクト名とログストア名を置き換えます。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-prod/logstore/access_log_output", "Effect": "Allow" } ] }
承認のためのファジーマッチ
この例では、移行先プロジェクト名はlog-project-dev-a、log-project-dev-b、およびlog-project-dev-cであり、移行先ログストア名はapp_a_log_output、app_b_log_output、およびapp_c_log_outputです。 ビジネス要件に基づいて、プロジェクト名とログストア名を置き換えます。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log_output", "Effect": "Allow" } ] }
作成したカスタムポリシーをRAMロールにアタッチします。 詳細については、「RAMロールに権限を付与する」をご参照ください。
RAMロールに、Alibaba Cloudアカウント全体の宛先ログストアに対する書き込み権限を付与する
ソースと宛先のログストアが異なるAlibaba Cloudアカウントに属している場合は、次の手順を実行してRAMロールに権限を付与します。 たとえば、Alibaba Cloudアカウントaに属するソースログストアからデータを読み取り、変換されたデータをAlibaba CloudアカウントBに属する宛先ログストアに書き込むためのデータ変換ジョブが作成されます。
次の手順を実行する前に、Alibaba CloudアカウントB内の宛先ログストアに対する書き込み権限をRAMロールに付与してください。詳細については、「同じAlibaba Cloudアカウント内の宛先ログストアに対する書き込み権限をRAMロールに付与する」をご参照ください。
Alibaba Cloudアカウントまたは管理者権限を持つRAMユーザーを使用し、RAMコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[ロール] ページで、管理するRAMロールを見つけ、ロール名をクリックします。
[信頼ポリシー] タブで、[信頼ポリシーの編集] をクリックします。
ソースログストアが属するAlibaba CloudアカウントAのID
をService
要素に追加します。ソースログストアが属するAlibaba CloudアカウントAのID
をAlibaba CloudアカウントのIDに置き換えます。 アカウント管理コンソールでAlibaba CloudアカウントのIDを確認できます。 次のポリシーでは、Alibaba CloudアカウントAは、一時的なトークンを使用してAlibaba cloudアカウントBのクラウドリソースを管理できます。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "ID of Alibaba Cloud Account A to which the source logstore belongs@log.aliyuncs.com" ] } } ], "Version": "1" }
RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。 詳細については、「RAMロールに関する情報の表示」をご参照ください。
次のステップ
データ変換ジョブのRAMロールのAlibaba Cloudリソース名 (ARN) を指定できます。 詳細については、「データ変換ジョブの作成」をご参照ください。