DataWorks は 2 層の権限モデルを使用しています。RAM ポリシーはプロダクトレベルのアクセスを制御し、ロールベースアクセス制御 (RBAC) はサービスモジュール内のアクセスを管理します。RAM ユーザーには、実行しようとしている操作に基づいて必要な権限を付与します。
権限管理の概要
次の図は、2 つの権限付与メカニズムがどのように連携して機能するかを示しています。

DataWorks は権限を 2 つのレベルに整理します:
プロダクトレベル:RAM ユーザーが DataWorks サービスを管理できるか、リソースを購入できるか、またはすべての操作からブロックされるかを制御します。Resource Access Management (RAM) コンソールで RAM ポリシーを使用して構成します。
サービスモジュールレベル:RAM ユーザーが特定のサービスモジュール内 (ワークスペースでのデータ開発や O&M 操作など) で実行できる内容を制御します。RAM ポリシー (コンソールおよびリソースグループの操作用) または RBAC ロール (ワークスペースおよびグローバルサービスモジュール用) を使用して構成します。
拒否ポリシーは、RAM ユーザーに構成されている他のすべてのポリシーよりも優先されます。
以下のセクションで各レベルについて詳しく説明します:
プロダクトレベルの権限
RAM ポリシーを使用して、DataWorks へのプロダクトレベルのアクセスを付与または制限します。
| シナリオ | 説明 | 手順 | リファレンス |
|---|---|---|---|
| RAM ユーザーに DataWorks サービスの管理を許可 | デフォルトでは、Alibaba Cloud アカウント (root ユーザー) のみが DataWorks サービスを管理できます。RAM ユーザーがアカウントに代わってサービスを管理できるようにするには、AliyunDataWorksFullAccess をアタッチします。RAM ユーザーはサービスを購入できません。 | 1. RAM コンソールにログインします。 2. AliyunDataWorksFullAccess ポリシーを RAM ユーザーにアタッチします。 | RAM ユーザーへの権限付与 |
| RAM ユーザーにリソースの購入とサービスの有効化を許可 | デフォルトでは、Alibaba Cloud アカウント (root ユーザー) のみがリソースの購入とサービスの有効化を行えます。RAM ユーザーが請求管理で注文の表示、支払い、キャンセルを行えるようにするには、AliyunBSSOrderAccess をアタッチします。 | 1. RAM コンソールにログインします。 2. AliyunBSSOrderAccess ポリシーを RAM ユーザーにアタッチします。 | RAM ユーザーへの権限付与 |
| RAM ユーザーのすべての DataWorks 操作をブロック | デフォルトでは、Alibaba Cloud アカウント内のすべての RAM ユーザーにテナントメンバーロールが割り当てられ、DataWorks コンソールにアクセスできます。カスタム拒否ポリシーを作成してアタッチし、RAM ユーザーのすべてのコンソール操作、サービスモジュールへのアクセス、API オペレーションをブロックします。 | 1. RAM コンソールにログインします。 2. カスタムポリシーを作成します。「付録 1:すべての操作のブロック」をご参照ください。 3. カスタムポリシーを RAM ユーザーにアタッチします。 | カスタムポリシーの作成 および ユーザーへのカスタムポリシーのアタッチ |
| RAM ユーザーによる API オペレーションの呼び出しをブロック | デフォルトでは、サービスモジュールの権限を持つ RAM ユーザーは API オペレーションを呼び出すことができます。カスタム拒否ポリシーを作成してアタッチし、コンソールアクセスを維持したまま、すべての API 呼び出しをブロックします。 | 1. RAM コンソールにログインします。 2. カスタムポリシーを作成します。「付録 2:API オペレーションのブロック」をご参照ください。 3. カスタムポリシーを RAM ユーザーにアタッチします。 | — |
| RAM ユーザーのサービスモジュールへのアクセスをブロック | デフォルトでは、テナントメンバーは所属するワークスペース内の任意のサービスモジュール、およびすべてのグローバルレベルのサービスモジュールにアクセスできます。カスタム拒否ポリシーを作成してアタッチし、すべてのサービスモジュールへのコンソールアクセスをブロックします。RAM ユーザーは、関連する権限を持っていれば、引き続き API オペレーションを呼び出すことができます。 | 1. RAM コンソールにログインします。 2. カスタムポリシーを作成します。「付録 3:サービスモジュールへのアクセスのブロック」をご参照ください。 3. カスタムポリシーを RAM ユーザーにアタッチします。 | — |
サービスモジュールレベルの権限:コンソールおよびリソースグループの操作
RAM ポリシーを使用して、RAM ユーザーが DataWorks コンソールでワークスペースとリソースグループを管理できるようにします。
デフォルトでは、Alibaba Cloud アカウント (root ユーザー) のみがワークスペースまたはリソースグループの構成を変更したり、リソースグループを削除したりできます。これらの権限を RAM ユーザーに付与するには、許可される正確な操作を指定するカスタム RAM ポリシーを作成してアタッチします。
必要な RAM ポリシーは、RAM ユーザーに実行させたい操作によって異なります。ポリシーの例については、「カスタム RAM ポリシー:コンソール操作のための詳細な権限制御」をご参照ください。
手順:
RAM コンソールにログインします。
サービスモジュールレベルの権限:ワークスペースおよびグローバルサービスモジュール
RBAC ロールを使用して、RAM ユーザーが DataWorks サービスモジュール内で実行できる内容を制御します。これらの割り当ては [ワークスペース管理] ページで管理します。
| シナリオ | 説明 | 手順 |
|---|---|---|
| ワークスペースレベルのロールの割り当て | RAM ユーザーがデータ開発操作を実行するには、ワークスペースのメンバーである必要があります。特定のサービスモジュール内のアクセスを制御するには、組み込みロールまたはカスタムのワークスペースレベルのロールを割り当てます。組み込みロールには、開発 (テーブルの作成、SQL の実行) および O&M (ノードのデプロイ、O&M 操作の実行) が含まれます。組み込みロールとカスタムロールの詳細については、「ワークスペースレベルのロールの権限」をご参照ください。 | 1. ユーザー管理ページに移動します。 2. (オプション) カスタムワークスペースレベルのロールを作成します。 3. RAM ユーザーをワークスペースメンバーとして追加し、ロールを割り当てます。 |
| グローバルレベルのロールの割り当て | デフォルトでは、テナントメンバーはグローバルレベルのサービスモジュールにアクセスできますが、管理はできません。グローバルレベルのロールを割り当てて、特定のグローバルサービスモジュールに対する管理権限を付与したり、特定のモジュールへのアクセスを制限したりします。組み込みおよびカスタムのグローバルレベルのロールの詳細については、「グローバルロールとメンバーの管理」をご参照ください。 | 1. グローバルメンバー管理ページに移動します。 2. (オプション) カスタムグローバルレベルのロールを作成します。 3. RAM ユーザーを追加し、ロールを割り当てます。 |
付録 1:すべての操作のブロック
このポリシーをアタッチすると、RAM ユーザーのすべての DataWorks 操作 (コンソールアクセス、サービスモジュールの機能、API 呼び出しを含む) がブロックされます。
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "dataworks:*",
"Resource": "*"
}
]
}付録 2: ブロック API オペレーション
このポリシーをアタッチすると、RAM ユーザーによるすべての DataWorks API オペレーションの呼び出しがブロックされます。コンソールアクセスは影響を受けません。
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "dataworks:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"dataworks:Scope": "OpenAPI"
}
}
}
]
}付録 3:サービスモジュールへのアクセスのブロック
このポリシーをアタッチすると、RAM ユーザーがコンソールで DataWorks サービスモジュールにアクセスできなくなります。
このポリシーは、サービスモジュールへのコンソールアクセスのみをブロックします。RAM ユーザーがサービスモジュールの API オペレーションを呼び出す権限を持っている場合、それらの API 呼び出しは引き続き許可されます。
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": "dataworks:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"dataworks:Scope": "Page"
}
}
}
]
}