従来、DataWorks のノードは、Object Storage Service (OSS) のような外部サービスにアクセスするために、プレーンテキストの AccessKey を設定する必要がありました。この方法は、セキュリティリスクと管理上の課題を伴います。永続的な AccessKey をハードコーディングすると、キーが漏洩した場合にデータ資産全体が危険にさらされる漏洩リスクが生じます。さらに、タスクごとにキーを管理するのは複雑であるため、多くの場合、粗い粒度の権限が付与されがちです。この慣行では、最小権限の原則に基づいたきめ細かなアクセス制御を実装することが困難になります。これらの問題に対処するため、RAM ロールの権限付与を利用します。このアプローチでは、Security Token Service (STS) を使用して動的に一時的な認証情報を取得するため、キー漏洩のリスクを排除し、オンデマンドでタスク固有のきめ細かい権限管理を実現できます。
ソリューションの概要
設定プロセスは、RAM ロールの作成、権限ポリシーの作成、RAM ユーザーへの権限付与の 3 つの主要なステップで構成されます。
前提条件
Alibaba Cloud アカウント、または AliyunRAMFullAccess 権限を持つ RAM 管理者が必要です。
ステップ 1:RAM ロールの作成
このロールは、DataWorks が他のクラウドリソースにアクセスする際に使用する ID 認証情報です。
RAM ロールの作成:RAM コンソールのロールページにログオンし、[ロールの][作成] をクリックします。デフォルト設定は変更せずに、OK をクリックし、
DataWorksRAMROLEforDataStudioのようなわかりやすいロール名を入力します。信頼ポリシーの変更: ロールが作成されたら、その詳細ページに移動します。[信頼ポリシー] タブで、
dataworks.aliyuncs.comおよびengine.dataworks.aliyuncs.comサービスのみがこのロールを偽装できるように、ポリシーを編集します。ポリシーは次のとおりです。詳細については、「RAM ロールの信頼ポリシーの変更」をご参照ください。
{ "Version": "1", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "dataworks.aliyuncs.com", "engine.dataworks.aliyuncs.com" ] } } ] }RAM ロールへの権限付与: ロールの詳細ページで、権限管理 タブに移動し、[権限の追加] をクリックします。
DataWorksRAMROLEforDataStudioロールに必要な権限を付与します。例えば、OSS にアクセスするには、
AliyunOSSReadOnlyAccess(読み取り専用) またはAliyunOSSFullAccess(フルアクセス) 権限を付与できます。詳細については、「RAM ロールの権限の管理」をご参照ください。
[権限の追加] パネルで、リソース範囲をアカウントレベルに設定し、必要なポリシーを検索して選択し、[OK] をクリックします。
ステップ 2:権限ポリシーの作成
このポリシーにより、RAM ユーザーはステップ 1 で作成した RAM ロールを DataWorks サービスに引き渡すことができます。
RAM コンソールのポリシーページにログインし、[ポリシーの作成]をクリックして、[JSON] タブに切り替えてポリシーコンテンツを編集します。
<role-name>を DataWorks 用の RAM ロールの名前 (例:DataWorksRAMROLEforDataStudio) に置き換えます。{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ram:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "acs:ram::<account-id>:role/<role-name>" } ] }
アクション | 説明 |
| ユーザーがアカウント内のロールのリストを表示できるようにします。この権限は、UI でロールを選択するために必要です。 |
| ユーザーが指定したロールをクラウドサービスに引き渡すことを許可します。 ポリシー内のプレースホルダー
|
詳細については、「カスタムポリシーの作成」をご参照ください。
OKをクリックし、アクセスポリシー を
DataWorksRAMPolicyforDataStudioとして保存します。
ステップ 3:RAM ユーザーへの権限付与
この最後のステップでは、エンドユーザーにロールを引き渡す権限を付与します。
RAM コンソールのユーザーページにログインします。権限を付与する RAM ユーザー (たとえば
new_ram_user@...) を探し、操作 列で [権限の追加] をクリックします。[権限の追加] パネルで、ステップ 2 で作成した権限ポリシー (
DataWorksRAMPolicyforDataStudio) を検索して選択し、権限付与を確定します。
複数の RAM ユーザーに権限を付与するには、この権限が必要な各ユーザーに対してこのステップを繰り返します。
次のステップ
権限付与が完了したら、new_ram_user@... アカウントでログインし、Data Studio ページに移動します。その後、[関連付けられたロール]を使用して、サポートされているノードでタスクを実行できます。詳細については、「スケジューリングでノードに関連付けられたロールを設定する」をご参照ください。
サポートされているノードのリストについては、ユーザーインターフェースをご参照ください。