OSS-HDFSデータ配布ジョブを実行すると、ジョブはログストアからデータを読み取り、そのデータをObject Storage Service (OSS) バケットOSS-HDFSバケットに送信します。 ジョブに、必要なデータにアクセスするためのカスタムRAM (Resource Access Management) ロールを引き受ける権限を付与できます。 このトピックでは、カスタムRAMロールを使用してOSS-HDFSデータ配布ジョブにデータへのアクセスを許可する方法について説明します。
前提条件
RAMロールが作成されます。 詳細については、「信頼できるエンティティがAlibaba CloudサービスであるRAMロールを作成し、RAMロールにSimple Log serviceにアクセスする権限を付与する」をご参照ください。
RAMロールを作成するときは、[信頼できるエンティティの選択] パラメーターを [Alibaba Cloud Service] に設定し、[信頼できるサービスの選択] パラメーターを [Log Service] に設定する必要があります。
RAMロールの信頼ポリシーを確認します。
Service要素に少なくとも"log.aliyuncs.com"が含まれていることを確認します。{ "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "log.aliyuncs.com" ] } } ], "Version": "1" }
手順1: ログストアからデータを読み取る権限をRAMロールに付与する
RAMロールにログストアからデータを読み取る権限を付与すると、OSS-HDFSデータ配布ジョブは、ログストアからデータを読み取るロールを引き受けることができます。
にログインします。RAMコンソールAlibaba Cloudアカウントまたは管理者権限を持つRAMユーザーを使用します。
Logstoreからデータを読み取る権限を付与するカスタムポリシーを作成します。
権限付与に完全一致またはファジー一致を使用するポリシードキュメントを使用できます。
認証の完全一致
[ポリシーの作成] ページで、[JSON] タブをクリックします。 エディターの既存の内容を次のスクリプトに置き換えます。 詳細については、「JSONタブでカスタムポリシーを作成する」をご参照ください。
重要交換
プロジェクト名とログストア名ビジネス要件に基づいてポリシードキュメントで{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/Project name/logstore/Logstore name" ], "Effect":"Allow" } ] }承認のためのファジーマッチ
[ポリシーの作成] ページで、[JSON] タブをクリックします。 エディターの既存の内容を次のスクリプトに置き換えます。 詳細については、「JSONタブでカスタムポリシーを作成する」をご参照ください。
重要この例では、プロジェクトの名前はlog-project-dev-a、log-project-dev-b、およびlog-project-dev-cであり、Logstoreの名前はwebsite_a_log、website_b_log、およびwebsite_c_logです。
交換
log-project-dev-*とウェブサイト_*_log *ビジネス要件に基づいてポリシードキュメントで
{ "Version":"1", "Statement":[ { "Action":[ "log:GetCursorOrData", "log:ListShards" ], "Resource":[ "acs:log:*:*:project/log-project-dev-*/logstore/website_*_log*" ], "Effect":"Allow" } ] }作成したカスタムポリシーをRAMロールにアタッチします。 詳細については、「」をご参照ください。RAMロールに権限を付与する.
手順2: OSSバケットにデータを書き込む権限をRAMロールに付与する
RAMロールにOSSバケットにデータを書き込む権限を付与すると、OSS-HDFSデータ配布ジョブは、OSS-HDFSバケットにデータを書き込む役割を引き受けることができます。
にログインします。RAMコンソールAlibaba Cloudアカウントまたは管理者権限を持つRAMユーザーを使用します。
OSSバケットにデータを書き込む権限を付与するポリシーを作成します。
[ポリシーの作成] ページで、[JSON] タブをクリックします。 エディターの既存の内容を次のスクリプトに置き換えます。 詳細については、「JSONタブでカスタムポリシーを作成する」をご参照ください。
{ "Statement": [ { "Action": [ "oss:PutObject" ], "Resource": "*", "Effect": "Allow" }, { "Effect": "Allow", "Action": "oss:ListObjects", "Resource": [ "acs:oss:*:*:*" ] }, { "Effect": "Allow", "Action": [ "oss:GetBucketInfo", "oss:PostDataLakeStorageFileOperation", "oss:PostDataLakeStorageAdminOperation" ], "Resource": "*" }, { "Effect": "Allow", "Action": "oss:*", "Resource": [ "acs:oss:*:*:*/.dlsdata", "acs:oss:*:*:*/.dlsdata*" ] } ], "Version": "1" }作成したカスタムポリシーをRAMロールにアタッチします。 詳細については、「」をご参照ください。RAMロールに権限を付与する.
次に何をすべきか
RAMロールのAlibaba Cloudリソース名 (ARN) を取得します。 詳細については、「」をご参照ください。RAMロールに関する情報の表示.
OSS-HDFSデータ配布ジョブを作成する場合、Logstore読み取りRAMロールまたはOSS-HDFS書き込みRAMロールのカスタムロールを選択した場合、ARNが必要です。 詳細については、「OSS-HDFSデータ配布ジョブの作成」をご参照ください。