カスタムロールをデータ変換ジョブに割り当てて、ソースLogstoreからデータを読み取り、変換されたデータをターゲットLogstoreに書き込むことができます。 このトピックでは、カスタムロールにLogstoreからデータを読み取る権限を付与する方法について説明します。
前提条件
RAM (Resource Access Management) ロールが作成されます。 詳細については、「信頼できるAlibaba CloudサービスのRAMロールの作成」をご参照ください。
RAMロールは次の要件を満たす必要があります。
RAMロールを作成するときに、信頼できるエンティティとしてAlibaba Cloud Serviceを選択します。
RAMロールの信頼ポリシーでは、以下に示すように、
"サービス"
フィールドに"log.aliyuncs.com"
を含める必要があります。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
ソースLogstoreからデータを読み取る権限をRAMロールに付与する
Alibaba Cloudアカウントを使用してRAMロールに権限を付与すると、RAMロールはソースLogstoreからデータを読み取ることができます。 データ変換ジョブを作成するときに、RAMロールを使用できます。 詳細については、「データ変換ジョブの作成」をご参照ください。
ポリシーを作成します。
ポリシーは、ソースLogstoreからデータを読み取る権限を付与します。
左側のナビゲーションウィンドウから、
を選択します。[ポリシー] ページで [ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[JSON] タブをクリックし、コードエディターの既存のスクリプトを次のいずれかのポリシードキュメントに置き換え、[次へ] をクリックします。
完全一致を使用するポリシー
この例では、ソースプロジェクト名はlog-project-prod、ソースLogstore名はaccess_logです。 ビジネス要件に基づいて、プロジェクト名とLogstore名を置き換えます。
{ "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、ソースLogstore名はapp_a_log、app_b_log、またはapp_c_logです。 ビジネス要件に基づいて、プロジェクト名とLogstore名を置き換えます。
{ "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ユーザーに権限を付与する」をご参照ください。
ポリシーのNameパラメーターを設定します。 この例では、log-etl-source-reader-1-policyと入力します。 そして、[OK] をクリックします。
ポリシーをRAMロールにアタッチします。
左側のナビゲーションウィンドウで、 .
ロールページ、RAMロールを見つけて、権限の追加[アクション] 列に表示されます。
[ポリシーの選択] セクションで [カスタムポリシー] をクリックします。 次に、ステップ2で作成したポリシーを選択し、[OK] をクリックします。 この例では、log-etl-source-reader-1ポリシーが選択されています。
承認結果を確認します。 次に、[完了] をクリックします。
RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。
RAMロールの [基本情報] セクションで、RAMロールのARNを表示します。 例: acs:ram::13234:role/logsource。
RAMロールに、同じAlibaba Cloudアカウント内の宛先Logstoreにデータを書き込む権限を付与する
ソースLogstoreとターゲットLogstoreが同じAlibaba Cloudアカウントに属している場合、Alibaba Cloudアカウントを使用してRAMロールに書き込み権限を付与できます。 その後、RAMロールは変換されたデータを宛先Logstoreに書き込むことができます。 データ変換ジョブを作成するときに、RAMロールを使用できます。 詳細については、「データ変換ジョブの作成」をご参照ください。
ポリシーを作成します。
左側のナビゲーションウィンドウから、
を選択します。[ポリシー] ページで [ポリシーの作成] をクリックします。
[ポリシーの作成] ページで、[JSON] タブをクリックし、コードエディターの既存のスクリプトを次のいずれかのポリシードキュメントに置き換え、[次へ] をクリックします。
完全一致を使用するポリシー
この例では、ターゲットプロジェクト名はlog-project-prod、ターゲットLogstore名はaccess_log_outputです。 ビジネス要件に基づいて、プロジェクト名とLogstore名を置き換えます。
{ "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で、ターゲットLogstore名はapp_a_log_output、app_b_log_output、またはapp_c_log_outputです。 ビジネス要件に基づいて、プロジェクト名とLogstore名を置き換えます。
{ "Version": "1", "Statement": [ { "Action": [ "log:Post*", "log:BatchPost*" ], "Resource": "acs:log:*:*:project/log-project-dev-*/logstore/app_*_log_output", "Effect": "Allow" } ] }
権限付与シナリオの詳細については、「カスタムポリシーを使用してRAMユーザーに権限を付与する」をご参照ください。
ポリシーのNameパラメーターを設定します。 この例では、log-etl-target-writer-1-policyと入力します。 そして、[OK] をクリックします。
ポリシーをRAMロールにアタッチします。
左側のナビゲーションウィンドウで、 .
ロールページ、RAMロールを見つけて、権限の追加[アクション] 列に表示されます。
[ポリシーの選択] セクションで [カスタムポリシー] をクリックします。 次に、ステップ2で作成したポリシーを選択し、[OK] をクリックします。 この例では、log-etl-target-writer-1ポリシーが選択されています。
承認結果を確認します。 次に、[完了] をクリックします。
RAMロールのARNを取得します。
RAMロールの [基本情報] セクションで、RAMロールのARNを表示します。 例: acs:ram::13234:role/logtarget。
RAMロールに、Alibaba Cloudアカウント間で宛先Logstoreにデータを書き込む権限を付与する
送信元と送信先のログストアが異なるAlibaba Cloudアカウントに属している場合は、次の手順を実行してRAMロールに権限を付与します。 たとえば、Alibaba Cloudアカウントaに属するソースLogstoreからデータを読み取り、変換されたデータをAlibaba CloudアカウントBに属するターゲットLogstoreに書き込むためのデータ変換ジョブが作成されます。
次の手順を実行する前に、Alibaba CloudアカウントB内の宛先Logstoreにデータを書き込む権限をRAMロールに付与してください。詳細については、「同じAlibaba Cloudアカウント内の宛先Logstoreにデータを書き込む権限をRAMロールに付与する」をご参照ください。
Alibaba CloudアカウントBを使用して、RAMコンソールにログインします。
左側のナビゲーションウィンドウで、 .
[ロール] ページで、管理するRAMロールを見つけます。
信頼ポリシー管理タブをクリックします。信頼ポリシーの編集.
信頼ポリシーを変更します。
ソースLogstoreが属するAlibaba CloudアカウントAのIDをService要素に追加します。 ソースLogstoreが属する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ロールのARNを取得します。
RAMロールの [基本情報] セクションで、RAMロールのARNを表示します。 例: acs:ram::13234:role/logtarget。
次のステップ
データ変換ジョブでRAMロールのARNを入力できます。 詳細については、「データ変換ジョブの作成」をご参照ください。
セクション1では、ソースLogstoreからデータを読み取る権限を持つRAMロールのARNを入力します。 詳細については、「ソースLogstoreからデータを読み取る権限をRAMロールに付与する」をご参照ください。
セクション2では、宛先Logstoreにデータを書き込む権限を持つRAMロールのARNを入力します。 詳細については、「同じAlibaba Cloudアカウント内の宛先Logstoreにデータを書き込む権限をRAMロールに付与する」または「Alibaba Cloudアカウント間の宛先Logstoreにデータを書き込む権限をRAMロールに付与する」をご参照ください。