Object Storage Service (OSS) データシッピングジョブを実行すると、ジョブはLogstoreからデータを取得し、そのデータをOSSバケットに送信します。 ジョブに、必要なデータにアクセスするためのカスタムRAM (Resource Access Management) ロールを引き受ける権限を付与できます。 このトピックでは、カスタムRAMロールを使用してOSSデータシッピングジョブにデータへのアクセスを許可する方法について説明します。
前提条件
RAMロールが作成されます。 詳細については、「信頼できるAlibaba CloudサービスのRAMロールの作成」をご参照ください。
RAMロールを作成するときは、[信頼できるエンティティの選択] で [Alibaba Cloud Service] を選択します。
手順1: RAMロールにLogstoreからデータを読み取る権限を付与する
RAMロールにLogstoreからデータを読み取る権限を付与した後、RAMロールをOSSデータシッピングジョブに割り当てて、Logstoreからデータを読み取ることができます。
RAMコンソールAlibaba Cloudアカウントを使用します。
Logstoreからデータを読み取る権限を付与するポリシーを作成します。
左側のナビゲーションウィンドウから、
を選択します。[ポリシー] ページで [ポリシーの作成] をクリックします。
[ポリシーの作成] ページの [JSON] タブで、エディター内の既存のスクリプトを次のいずれかのスクリプトに置き換えます。 次に、[次へ] をクリックしてポリシー情報を編集します。
正確な名前を使用してリソースを一致させるポリシー
ビジネス要件に基づいて、プロジェクト名とLogstore名を置き換えることができます。
{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/Project name/logstore/Logstore name", "acs:log:*:*:project/Project name/logstore/Logstore name/*" ], "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:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*", "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*/*" ], "Effect":"Allow" } ] }
名前パラメーターをクリックし、OK.
たとえば、log-oss-export-source-policyを指定できます。
ポリシーをRAMロールにアタッチします。
左側のナビゲーションウィンドウで、 .
RAMロールを見つけて、権限付与[アクション] 列に表示されます。
表示されるパネルで、[ポリシー] セクションを見つけ、ドロップダウンリストから [カスタムポリシー] を選択します。 次に、ステップ2で作成したポリシーを選択し、[権限の付与] をクリックします。 この例では、log-oss-export-source-policyを選択します。
承認結果を確認します。 次に、[閉じる] をクリックします。
RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。
RAMロールの [基本情報] セクションで、RAMロールのARNを表示します。 例: acs:ram::13 **** 44:role/logrole。 ARNを記録することを推奨します。 OSSデータシッピングジョブを作成してOSSにデータを発送するときにカスタムロールを使用する場合、Logstore Read RAM roleフィールドにARNを入力する必要があります。
手順2: OSSバケットにデータを書き込む権限をRAMロールに付与する
OSSバケットにデータを書き込む権限をRAMロールに付与した後、RAMロールをOSSデータシッピングジョブに割り当てて、Logstoreから読み取ったデータをOSSバケットに書き込むことができます。
RAMコンソールAlibaba Cloudアカウントを使用します。
OSSバケットにデータを書き込む権限を付与するポリシーを作成します。
左側のナビゲーションウィンドウから、
を選択します。[ポリシー] ページで [ポリシーの作成] をクリックします。
[ポリシーの作成] ページの [JSON] タブで、エディター内の既存のスクリプトを次のスクリプトに置き換えます。 次に、[次へ] をクリックしてポリシー情報を編集します。
{ "Version": "1", "Statement": [ { "Action": [ "oss:PutObject" ], "Resource": "*", "Effect": "Allow" } ] }
OSSリソースにきめ細かいアクセス制御を実装する場合は、RAMポリシーに記載されている手順に基づいてポリシーを設定できます。
名前パラメーターをクリックし、OK.
たとえば、log-oss-export-sink-policyを指定できます。
ポリシーをRAMロールにアタッチします。
左側のナビゲーションウィンドウで、 .
RAMロールを見つけて、権限付与[アクション] 列に表示されます。
表示されるパネルで、[ポリシーの選択] を見つけ、[カスタムポリシー] をクリックします。 次に、ステップ2で作成したポリシーを選択し、[OK] をクリックします。 この例では、log-oss-export-sink-policyを選択します。
承認結果を確認します。 次に、[完了] をクリックします。
RAMロールのARNを取得します。
RAMロールの [基本情報] セクションで、RAMロールのARNを表示します。 例: acs:ram::13 **** 44:role/ossrole。 ARNを記録することを推奨します。 OSSデータシッピングジョブを作成してOSSにデータを送信するときにカスタムロールを使用する場合、[OSS書き込みRAMロール] フィールドにARNを入力する必要があります。