従来の DataWorks ノード開発では、OSS などの外部サービスにアクセスするために、プレーンテキストの AccessKey を設定する必要がありました。このアプローチは、セキュリティリスクと管理上の課題をもたらします。永続的なキーをハードコーディングすると、漏洩のリスクが生じます。キーが漏洩すると、すべてのデータ資産が危険にさらされる可能性があります。さらに、タスクごとに個別のキーを管理するのは複雑です。その結果、AccessKey には広範な権限が付与されがちです。これにより、最小権限の原則 (PoLP) に従った詳細なアクセスの制御を実装することが困難になります。これらの問題を解決するために、RAM ロールの権限付与を使用できます。このメソッドは、セキュリティトークンサービス (STS) から動的に一時的な認証情報を取得します。これにより、キー漏洩のリスクを排除し、タスクごとにオンデマンドで詳細な権限管理が可能になります。
ソリューション概要
設定プロセスは、主にRAM ロールの作成 → アクセスポリシーの作成 → RAM ユーザーへの権限付与の 3 つの部分で構成されます。
前提条件
AliyunRAMFullAccess 権限を持つ Alibaba Cloud アカウントまたは RAM 管理者アカウント。
ステップ 1:RAM ロールの作成と設定
このロールは、DataWorks サービスが他のクラウドリソースにアクセスするための ID 認証情報として機能します。
RAM ロールの作成。RAM コンソールのロールページにログインし、[ロールの作成] をクリックします。デフォルト設定のまま [OK] をクリックします。次に、
DataWorksRAMROLEforDataStudioのような、わかりやすいロール名を入力します。
信頼ポリシーの変更:ロールを作成したら、その詳細ページに移動します。[信頼ポリシー] タブでポリシーを編集し、
dataworks.aliyuncs.comサービスのみがこのロールを偽装できるようにします。ポリシードキュメントは次のとおりです:RAM ロールの信頼ポリシーの変更

{ "Version": "1", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": [ "dataworks.aliyuncs.com" ] } } ] }RAM ロールへの権限付与:ロールの詳細ページで、[権限] タブをクリックします。[権限の付与] をクリックし、
DataWorksRAMROLEforDataStudioロールに必要な権限を付与します。例えば、OSS にアクセスするには、
AliyunOSSReadOnlyAccess(読み取り専用) またはAliyunOSSFullAccess(フルアクセス) 権限を付与します。RAM ロールの権限管理

ステップ 2:アクセスポリシーの作成
このポリシーは、ステップ 1 で作成した RAM ロールを DataWorks サービスに渡す権限を RAM ユーザーに付与します。
RAM コンソールのポリシーページにログインします。[ポリシーの作成] をクリックします。[JSON] タブで、ポリシードキュメントを編集します。

{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": [ "ram:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": "ram:PassRole", "Resource": "acs:ram::<account-id>:role/<role-name>" } ] }
ポリシー | 説明 |
| ユーザーがアカウント内のロールのリストを表示し、インターフェイスから選択できるようにします。 |
| ユーザーが指定したロールを Alibaba Cloud サービスに渡せるようにします。 ポリシー内の
|
カスタムポリシーの作成
[OK] をクリックし、ポリシーを
DataWorksRAMPolicyforDataStudioとして保存します。
ステップ 3:RAM ユーザーへの権限付与
これは最後のステップです。エンドユーザーにロールを渡す権限を付与します。
RAM コンソールのユーザーページにログインします。権限を付与したい RAM ユーザー (例:
new_ram_user@...) を見つけます。[操作] 列で、[権限の追加] をクリックします。[権限の追加] パネルで、ステップ 2 で作成した
DataWorksRAMPolicyforDataStudioポリシーを検索して選択し、[OK] をクリックします。
複数の RAM ユーザーに権限を付与するには、この権限が必要な各ユーザーに対してこのステップを繰り返します。
次のステップ
権限付与が完了したら、new_ram_user@... アカウントを使用して新しいデータ開発ページに移動します。その後、[関連付けられたロール] を使用して、関連ノードでタスクを実行できます。詳細については、「スケジューリングにおけるノードの関連付けられたロールの設定」をご参照ください。
サポートされているノードのリストについては、ユーザーインターフェースをご参照ください。