DataWorks は、ワークスペースロール(ビルトインまたはカスタム)を関連付けられた MaxCompute エンジン内のロールにマッピングすることで、MaxCompute へのアクセスを制御します。RAM ユーザーにワークスペースロールを割り当てると、そのユーザーは開発環境で対応する権限を取得します。本番環境へのアクセスはデフォルトでは付与されません。
背景情報
DataWorks は、ユーザーによるワークスペースモジュールおよび開発エンジンプロジェクト権限へのアクセスを制御するために、ビルトインロールとカスタムロールを提供しています。どちらのロールタイプも、開発エンジンプロジェクトにおけるデフォルト権限付与および手動権限付与をサポートしています。
-
Alibaba Cloud アカウント (root ユーザー) は、自身が所有するすべてのクラウドリソースに対して最高レベルの権限を持ちます。本トピックで説明する権限制御は主に RAM ユーザーに適用されます。
-
ビルトインロールのうち、開発者またはワークスペース管理者ロールが割り当てられた RAM ユーザーのみが、DataStudio でノードを作成し、テーブル作成コマンドを実行できます。
操作手順
|
ステップ |
目的 |
参照 |
|
1 |
DataWorks のビルトインロールの基本権限を理解します。 |
|
|
2 |
DataWorks ワークスペースメンバーがエンジン権限を取得する方法を学びます。 |
|
|
3 |
管理者が本番環境の権限を制御する方法を学びます。 |
|
|
4 |
コマンドを使用してエンジン権限を確認する方法を学びます。 |
注意事項
-
標準モードのワークスペースでは、RAM ユーザーはデフォルトで本番プロジェクトに対する権限を持っていません。本番環境でテーブルをクエリするには、RAM ユーザーが セキュリティセンター で権限をリクエストする必要があります。データ権限のリクエスト方法の詳細については、「MaxCompute データへのアクセス制御」をご参照ください。
-
基本モードのワークスペースでは、RAM ユーザーはデフォルトですべてのプロジェクト権限を持ち、細かい粒度でのデータ権限制御ができません。
ビルトインロールの基本権限
デフォルトでは、DataWorks のビルトインロールは開発環境へのアクセスを許可しますが、本番環境へのアクセスは許可しません。
ビルトインロールのうち、開発者またはワークスペース管理者ロールが割り当てられた RAM ユーザーのみが、DataStudio でノードを作成し、テーブル・リソース・関数を管理するコマンドを実行できます。
|
環境 |
説明 |
|
開発環境における MaxCompute エンジン権限 |
DataWorks と MaxCompute はどちらもロールベースアクセス制御(RBAC)システムを採用しており、ロール間の自然なマッピングが可能です。ワークスペースメンバーにビルトインロールが割り当てられると、自動的に MaxCompute 内の対応するエンジンロールの権限が付与されます。 |
|
本番環境における MaxCompute エンジン権限 |
デフォルトでは、RAM ユーザーは本番環境で直接操作を実行できません。 DataWorks ワークスペースのビルトインロールおよびカスタムロールのいずれも、本番環境の MaxCompute エンジンに対する権限を付与しません。本番環境のテーブルにアクセスするには、セキュリティセンター で権限をリクエストする必要があります。詳細については、「MaxCompute データへのアクセス制御」をご参照ください。 説明
ビルトインロールのうち、開発者またはワークスペース管理者ロールが割り当てられた RAM ユーザーのみが、DataStudio でテーブル作成コマンドを実行するノードを作成できます。 |
RAM ユーザーがエンジン権限を取得する方法
標準モードのワークスペースにおいて本番データを保護するため、DataWorks は RAM ユーザーによる MaxCompute テーブルへのアクセスを制御します。
-
開発プロジェクトの権限を取得(自動):
-
ワークスペースメンバーにビルトインロールが割り当てられると、自動的にエンジンプロジェクトの権限を取得します。詳細については、「シナリオ 1:ビルトインワークスペースロールの権限付与プロセス」をご参照ください。
-
ワークスペースメンバーにカスタムロールが割り当てられると、同様にエンジンプロジェクトの権限を取得します。詳細については、「シナリオ 2:カスタムワークスペースロールの権限付与プロセス」をご参照ください。
-
-
本番プロジェクトの権限を取得(手動リクエスト必須): セキュリティセンター で権限をリクエストする必要があります。以下の表にユースケースを示します。セキュリティセンターの使用方法の詳細については、「MaxCompute データへのアクセス制御」をご参照ください。
シナリオ
説明
開発環境のユーザーが、同一ワークスペース内の本番環境にあるテーブルにアクセスする必要がある場合。

RAM ユーザーが本番エンジンのアクセス ID として設定されていない場合、デフォルトでは DataStudio から本番テーブルを操作できません。アクセスを得るには、RAM ユーザーが セキュリティセンター でリクエストを送信する必要があります。承認後、ユーザーは DataStudio でテーブルに対して必要な操作を実行できます。
ユーザーが別のワークスペースの開発環境または本番環境にあるテーブルにアクセスする必要がある場合。

デフォルトでは、RAM ユーザーは DataStudio から他のプロジェクトの開発環境または本番環境のテーブルにアクセスできません。プロジェクト間アクセスを有効にするには、RAM ユーザーが セキュリティセンター でリクエストを送信する必要があります。承認後、ユーザーは DataStudio でテーブルに対して必要な操作を実行できます。
MaxCompute データ権限制御
本番データにアクセスする必要のある RAM ユーザーは承認プロセスを経る必要があり、これにより管理者が本番環境の権限を制御できます。
-
セキュリティセンターには、本番テーブルの権限に関する組み込み承認ワークフローが用意されています。
-
承認センター ではカスタム承認ワークフローがサポートされています。
MaxCompute エンジン権限の確認
MaxCompute SQL タスク内で次のコマンドを実行して、ご自身の権限をクエリします。
-
show grants: ご自身のアクセス権限を表示します。 -
show grants for <username>: 特定ユーザーのアクセス権限を表示します。このコマンドはワークスペース管理者のみが実行できます。
付録:ワークスペースロールの権限付与プロセス
シナリオ 1:ビルトインロールの権限付与
-
仕組み: RAM ユーザーがワークスペースに追加され、ビルトインロールが割り当てられると、対応する MaxCompute ロールが自動的にユーザーに付与されます。これにより、ユーザーは基盤となる MaxCompute ロールの権限を取得します。ビルトインロールと MaxCompute 権限のマッピングの詳細については、「付録:ビルトインワークスペースロールと MaxCompute エンジン権限のマッピング」をご参照ください。
-
例: ワークスペース管理者ロールを持つユーザーが、RAM ユーザーをワークスペースメンバーとして追加し、開発者ロールを付与します。
説明メンバーの追加および権限付与方法の詳細については、「ワークスペースモジュールの権限制御」をご参照ください。

追加後、RAM ユーザーは DataWorks および MaxCompute エンジンで以下の権限を持ちます。
-
DataWorks 権限: 開発者ロールを持つことで、RAM ユーザーは DataWorks でコードを開発およびコミットできますが、本番環境へのデプロイはできません。本番環境へのデプロイには O&M 権限が必要であり、これは Project Owner、管理者、および 運用保守 などのロールが保持しています。
-
MaxCompute エンジン権限: RAM ユーザーに 開発者ロールが付与されると、同時に MaxCompute エンジン内で Role_Project_Dev ロールが割り当てられます。このロールにより、MaxCompute 開発プロジェクト内のテーブルなどのオブジェクトに対する権限が付与されます。
説明-
ビルトインのワークスペース管理者ロールを RAM ユーザーに付与した場合、そのユーザーは DataWorks 機能に対して広範な権限を取得しますが、依然として本番テーブルに直接アクセスすることはできません。
-
ここで説明する RAM ユーザーとは、本番プロジェクトのスケジューリングエンジンのアクセス ID として指定されていないユーザーを指します。
-
シナリオ 2:カスタムロールの権限付与
例: ワークスペース管理者ロールを持つユーザーが、RAM ユーザーをワークスペースメンバーとして追加し、カスタムの DataWorks ワークスペースロールを付与します。
DataWorks ワークスペースでカスタムロールを作成する際、それを MaxCompute エンジンロールにマッピングできます。ロールがメンバーに割り当てられると、RAM ユーザーは DataWorks および MaxCompute エンジンの両方で対応する権限を取得します。詳細は以下のとおりです。
カスタムの DataWorks ロールの作成方法の詳細については、「ワークスペースモジュールの権限制御」をご参照ください。メンバーの追加および権限付与方法の詳細については、「ワークスペースモジュールの権限制御」をご参照ください。
-
DataWorks 権限: RAM ユーザーが DataWorks のカスタムロールを付与されると、そのロールが許可するモジュールにのみアクセスできます。
-
MaxCompute エンジン権限:
-
カスタムの DataWorks ロールがエンジンロールにマッピングされていない場合、RAM ユーザーは MaxCompute エンジン内に権限を持たず、エンジンをクエリするコマンドを実行できません。
-
カスタムの DataWorks ロールがエンジンロールにマッピングされている場合、RAM ユーザーはマッピングされた MaxCompute エンジンロールの権限を継承します。
-
デフォルトでは、ワークスペースに追加された RAM ユーザーは、スケジューリングエンジンのアクセス ID として指定されていない限り、本番環境に権限を持ちません。本番テーブルを操作またはアクセスするには、セキュリティセンター で権限をリクエストする必要があります。詳細については、「新バージョンのセキュリティセンターでのテーブル権限申請」をご参照ください。MaxCompute アクセス ID の詳細については、「ワークスペースの設定」をご参照ください。
よくある質問
権限関連の一般的な問題については、「権限管理に関するよくある質問」をご参照ください。
付録:MaxCompute SQL による権限クエリ
MaxCompute では、SQL ステートメントを使用してユーザー・ロール・オブジェクトの権限情報をクエリできます。詳細については、「MaxCompute SQL を使用した権限情報のクエリ」をご参照ください。
次のステップ
MaxCompute はプロジェクト間リソースアクセスをサポートしており、開発者が DataStudio から直接本番リソースにアクセスできるようになります。ワークスペースメンバーがプロジェクト間でリソースにアクセスする方法の詳細については、「異なるワークスペースモードにおける MaxCompute リソースアクセスと権限」をご参照ください。