MaxCompute プロジェクト内のデータセキュリティを確保するためには、プロジェクトオーナーまたは権限付与権限を持つユーザーが、プロジェクトメンバーの権限を適切に管理する必要があります。これにより、権限が広範すぎず、また狭すぎない状態を保つことができます。本トピックでは、MaxCompute の権限管理システムについて説明します。
権限システム
カテゴリ | 説明 |
プリンシパル | MaxCompute では、以下のプリンシパルをサポートしています。 |
オブジェクト | MaxCompute では、プロジェクト、テーブル、モデル、リソース、関数、インスタンスなどのオブジェクトに対して、きめ細かなアクセス制御をサポートしています。MaxCompute が提供する権限付与ソリューションに基づき、ユーザーの操作権限をきめ細かく管理できます。各オブジェクトに対する権限の詳細については、「MaxCompute の権限」をご参照ください。 |
アクセスの制御 | MaxCompute では、さまざまな権限付与要件に対応する以下の権限付与ソリューションを提供しています。
|
ロールベースの権限付与 | 複数のユーザーに同一の操作権限を付与する場合、ロールベースの権限付与を使用することで、手順を簡素化できます。ロールベースの権限付与操作の詳細については、「プロジェクトレベルのロール権限付与」をご参照ください。 |
ユーザーへの権限付与 | ユーザーへの権限付与は、以下の方法で行えます。
ユーザー権限付与操作の詳細については、「コマンドによるユーザー権限の管理」をご参照ください。 |
権限情報の取得 | プロジェクトメンバーの権限情報を表示して、付与された権限が有効になっているかどうかを確認します。権限情報の表示方法については、「権限情報の照会」をご参照ください。 |
DataWorks にも独自の権限システムがあります。DataWorks を使用して MaxCompute プロジェクトを管理している場合、DataWorks のユーザーおよびロール管理機能を活用して、権限管理のためのロールを割り当てることができます。DataWorks と MaxCompute の権限の関係については、「MaxCompute と DataWorks の権限関係」をご参照ください。
認証プロセス
MaxCompute ユーザーが MaxCompute オブジェクトに対して操作を実行する際には、ユーザーの認証が必要です。リソース所有者である Alibaba Cloud アカウントは、最高レベルの権限を持ち、すべての操作を実行でき、RAM ユーザーまたは RAM ロールに管理権限を付与できます。Alibaba Cloud アカウントおよび管理権限を持つユーザーは、他のユーザーに権限を付与できます。このプロセスによって、どのユーザーが、どのオブジェクトに対して、どのような特定の操作を行う権限を取得するかが決定されます。
対象となるオブジェクトおよび特定の操作に応じて、MaxCompute の認証プロセスは RAM 認証と MaxCompute サービス認証に分類されます。以下に、異なるユーザー操作における認証フローを示します。
RAM 認証
ユーザーが MaxCompute コンソールでサービスの有効化、リソースの購入、クォータ・プロジェクト・テナントの管理を行う必要がある場合、Alibaba Cloud は RAM 認証を実行し、ユーザーが必要な権限を持っているかどうかを検証します。ユーザーが該当の権限を持っていない場合、これらの操作は実行できません。
RAM 認証を必要とする操作の一覧については、「RAM 権限」をご参照ください。
RAM ユーザーまたは RAM ロールにシステムポリシーを付与する方法については、「RAM ユーザーの権限管理」をご参照ください。
MaxCompute サービス認証
MaxCompute プロジェクトレベルの操作に対する認証
MaxCompute プロジェクトレベルの操作権限には、プロジェクトレベルのオブジェクト操作権限およびプロジェクトレベルの管理操作権限が含まれます。
プロジェクトレベルのオブジェクト操作権限:プロジェクト(Project)、テーブル(Table)、モデル(Model)、関数(Function)、リソース(Resource)など、プロジェクトおよびプロジェクト内のオブジェクトに対する操作権限を含みます。これらの操作の例として、CreateTable、CreateModel、CreateInstance、SelectTable などがあります。詳細については、「プロジェクトおよびプロジェクト内のオブジェクトに対する権限一覧」をご参照ください。
プロジェクトレベルの管理権限:プロジェクトのセキュリティ構成、プロジェクトレベルのユーザーおよびロール権限の管理、パッケージの管理、ラベルベースの権限制御、期限切れ権限のクリアなどに関する権限を含みます。詳細については、「プロジェクト管理権限一覧」をご参照ください。
MaxCompute プロジェクトレベルの操作に対する認証プロセスは、以下のとおりです。
ユーザー認証:ユーザー認証の詳細については、「ユーザー認証」をご参照ください。
Alibaba Cloud アカウント(プライマリアカウントまたは RAM ユーザー)を使用して MaxCompute コンソールにログインできます。
odpscmd や JDBC などのツールを使用して MaxCompute に接続する場合、AccessKey ID および AccessKey Secret が必要です。
ユーザーが MaxCompute に接続すると、システムはそのアカウントが現在のプロジェクトのユーザーであるかどうかを判定します。ユーザーは、管理者が
add user "xxx"コマンドを実行してプロジェクトにユーザーを追加した後のみ、プロジェクト内で操作を開始できます。
リクエスト元のチェック(IP チェック):システムは IP アドレスホワイトリストをチェックします。詳細については、「IP アドレスホワイトリストの管理」をご参照ください。
プロジェクトのステータスチェック:システムはプロジェクトが「通常」状態であるかどうかをチェックします。
MaxCompute 権限チェック:ユーザーがプロジェクトに追加された後、ユーザーは、許可された範囲内で操作を実行するために必要な操作権限を付与される必要があります。これらの権限は、ACL ベースのアクセス制御、ポリシーベースのアクセス制御、ダウンロード権限制御、ラベルベースのアクセス制御、パッケージを使用したプロジェクト間リソースアクセス などのさまざまな権限付与ソリューションを用いて付与できます。プロジェクトレベルのユーザー管理の詳細については、「コマンドによるユーザー権限の管理
MaxCompute テナントレベルの操作に対する認証
MaxCompute テナントレベルの操作権限には、テナントレベルのオブジェクト操作権限およびテナントレベルの管理操作権限が含まれます。
テナントレベルのオブジェクト操作権限には、クォータやネットワーク接続(NetworkLink)などのテナントレベルのオブジェクトに対する権限が含まれます。これらの操作の例として、use quota や CreateNetworkLink などがあります。操作の一覧については、「テナント内のオブジェクトに対する権限一覧」をご参照ください。
テナントレベルのオブジェクト操作では、1 つのアカウントが複数のプロジェクトオブジェクトを管理できるため、権限管理が簡素化されます。
テナントレベルの管理権限は、テナントレベルでのユーザーおよびロールの管理を目的としています。これには、テナントレベルのユーザーの追加または削除、テナントレベルのロールの作成または削除、テナントレベルのユーザーまたはロールおよびその権限の一覧表示、ユーザーへのテナントレベルのロールの付与、ユーザーからのテナントレベルのロールの剥奪、プロジェクトへのテナントレベルのロールの追加、プロジェクトからのテナントレベルのロールの削除などが含まれます。
ユーザーがこれらの操作を実行する必要がある場合、MaxCompute はユーザーを認証して、ユーザーが必要な権限を持っているかどうかを検証します。ユーザーが該当の権限を持っていない場合、これらの操作は実行できません。
権限付与フロー
MaxCompute における一般的な権限付与フローは以下のとおりです。
フロー 1:ユーザーにオブジェクトに対する操作権限を直接付与する
プロジェクトオーナーまたは組み込みの管理者ロールを持つユーザーが対象ユーザーを MaxCompute プロジェクトに追加した後、権限付与権限を持つユーザーが、ACL ベースのアクセス制御ソリューションを使用して、対象ユーザーにオブジェクトに対する操作権限を付与します。

フロー 2:ロールを基に複数のユーザーにオブジェクトに対する操作権限を付与する
プロジェクトオーナーまたは組み込みの管理者ロールを持つユーザーが対象ユーザーおよびロールを MaxCompute プロジェクトに追加した後、権限付与権限を持つユーザーが、ACL、ポリシー、またはダウンロード権限制御ソリューションを使用して、対象ロールにオブジェクトに対する操作権限を付与します。その後、そのロールを対象ユーザーに割り当てます。

フロー 3:ユーザーに高度に機密性の高いデータへのアクセス権限を直接付与する
プロジェクトオーナーまたは組み込みの管理者ロールを持つユーザーが対象ユーザーを MaxCompute プロジェクトに追加した後、プロジェクトオーナーまたは Admin ロールを持つユーザーが、対象ユーザーの許可されたアクセスレベルを設定します。また、ユーザーが特定の高度に機密性の高いデータにアクセスする必要がある場合、プロジェクトオーナーまたは Admin ユーザーが、ラベルベースのアクセス制御ソリューションを使用して、対象ユーザーに高度に機密性の高いデータへのアクセス権限を付与できます。

フロー 4:ロールを基に複数のユーザーに高度に機密性の高いデータへのアクセス権限を付与する
プロジェクトオーナーまたは組み込みの管理者ロールを持つユーザーが対象ユーザーを MaxCompute プロジェクトに追加した後、プロジェクトオーナーまたは Admin ロールを持つユーザーが、対象ユーザーの許可されたアクセスレベルを設定します。複数のユーザーが同一の高度に機密性の高いデータにアクセスする必要がある場合、対象ロールを作成できます。プロジェクトオーナーまたは Admin ロールを持つユーザーが、ラベルベースのアクセス制御ソリューションを使用して、そのロールに高度に機密性の高いデータへのアクセス権限を付与し、その後、そのロールをユーザーに割り当てます。

フロー 5:プロジェクト間でリソースにアクセスし、ターゲットプロジェクト内のユーザーにパッケージ内のリソースへのアクセス権限を直接付与する
リソースが属するプロジェクトの所有者がパッケージを作成し、リソースを追加します。その後、所有者はターゲットプロジェクトがそのパッケージをインストールできるように許可します。ターゲットプロジェクトの所有者はパッケージをインストールし、ACL ベースまたはラベルベースのアクセス制御ソリューションを使用してユーザーに権限を付与します。

フロー 6:プロジェクト間でリソースにアクセスし、ロールを基にユーザーにパッケージ内のリソースへのアクセス権限を付与する
リソースが属するプロジェクトの所有者がパッケージを作成し、リソースを追加します。その後、所有者はターゲットプロジェクトがそのパッケージをインストールできるように許可します。ターゲットプロジェクトの所有者はパッケージをインストールし、ACL ベースまたはラベルベースのアクセス制御ソリューションを使用してロールに権限を付与し、その後、そのロールをユーザーに割り当てます。

MaxCompute と DataWorks の権限関係
MaxCompute と DataWorks の権限関係を理解する前に、まず MaxCompute プロジェクトと DataWorks ワークスペースの関係を理解する必要があります。
基本モードで DataWorks ワークスペースを作成すると、MaxCompute プロジェクトが関連付けられます。
標準モードで DataWorks ワークスペースを作成すると、MaxCompute 開発(_dev)プロジェクトおよび MaxCompute 本番(Prod)プロジェクトが関連付けられます。
また、MaxCompute ビジター ID を設定する必要があります。これは、MaxCompute プロジェクトに対するアカウントレベルのアクセスポリシーを決定します。
MaxCompute 権限システムを使用して権限を管理しても、DataWorks UI におけるユーザー操作には影響しません。DataWorks では、MaxCompute プロジェクトの権限を管理するための視覚的なインターフェイスが提供されています。ただし、DataWorks でユーザーにロールを割り当てると、ユーザーが MaxCompute リソースに対して操作を実行する権限に影響を与える可能性があります。
DataWorks および MaxCompute では、ユーザーおよびロールという概念が共通しています。両者の権限の関係は以下のとおりです。
ロールおよびロール権限
DataWorks では、データ開発中にプロジェクトメンバーに MaxCompute リソースに対する必要な権限を付与するための、事前定義済みの MaxCompute ロールが提供されています。以下の表に、MaxCompute ロールと DataWorks の事前定義ロールとの対応関係を示します。
対応関係
権限の説明
DataWorks のロールまたは ID
MaxCompute のロール
DataWorks 開発環境および関連付けられた MaxCompute プロジェクトにおけるデータに対する権限
DataWorks 本番環境および関連付けられた MaxCompute プロジェクトにおけるデータに対する権限
DataWorks における権限の説明
ワークスペース管理者
Role_Project_Admin
MaxCompute: このロールは、プロジェクトおよびプロジェクト内のテーブル、関数、リソース、インスタンス、ジョブに対するすべての権限を持ち、プロジェクト内の
packagesに対するRead権限を持ちます。DataWorks:このロールは、データ開発操作を実行し、タスクを本番環境にデプロイする権限を持ちます。
デフォルトでは権限はありません。セキュリティセンターで必要な権限を申請する必要があります。
ワークスペース管理者ロールを持つユーザーは、ワークスペースの管理者であり、ワークスペースの基本プロパティ、データソース、コンピュートエンジン構成、メンバーの管理および、ワークスペースメンバーへのワークスペース管理者、開発、O&M、デプロイ、ビジターの各ロールの割り当てが可能です。
開発
Role_Project_Dev
MaxCompute: このロールは、プロジェクトおよびプロジェクト内のテーブル、関数、リソース、インスタンス、ジョブに対するすべての権限を持ち、プロジェクト内の
パッケージに対する読み取り権限を持ちます。DataWorks:このロールは、データ開発操作を実行する権限を持ちますが、タスクを本番環境にデプロイする権限はありません。
デフォルトでは権限はありません。セキュリティセンターで必要な権限を申請する必要があります。
開発ロールを持つユーザーは、ワークフロー、スクリプトファイル、リソース、ユーザー定義関数(UDF)、テーブル、デプロイタスクの作成およびテーブルの削除が可能ですが、デプロイ操作を実行する権限はありません。
O&M
Role_Project_Pe
このロールは、プロジェクトおよびプロジェクト内の関数、リソース、インスタンス、ジョブに対するすべての権限、プロジェクト内の packages に対する Read 権限、プロジェクト内のテーブルに対する Read および Describe 権限を持ちます。
説明O&M ロールは MaxCompute コンピュートエンジンに対する権限を持ちますが、DataWorks コンソールでノードを実行する権限はありません。
デフォルトでは権限はありません。セキュリティセンターで必要な権限を申請する必要があります。
O&M ロールは、ワークスペース管理者ロールから付与されたデプロイおよびオンライン O&M 権限を持ちますが、データ開発操作を実行する権限はありません。
デプロイ
Role_Project_Deploy
デフォルトでは権限はありません。
デフォルトでは権限はありません。セキュリティセンターで必要な権限を申請する必要があります。
デプロイロールは、オンライン O&M 権限を除き、O&M ロールと同様の権限を持ちます。
ビジター
Role_Project_Guest
デフォルトでは権限はありません。
デフォルトでは権限はありません。セキュリティセンターで必要な権限を申請する必要があります。
ビジターロールを持つユーザーは、データを表示する権限を持ちますが、ワークフローまたはコードを変更する権限はありません。
セキュリティマネージャー
Role_Project_Security
デフォルトでは権限はありません。
デフォルトでは権限はありません。セキュリティセンターで必要な権限を申請する必要があります。
セキュリティマネージャーロールは、Data Security Guard のみで使用可能であり、機密データ識別ルールの構成および Data Security Guard におけるデータリスクの監査権限を持ちます。
データアナリスト
Role_Project_Data_Analyst
デフォルトでは権限はありません。セキュリティセンターで必要な権限を申請する必要があります。
このロールは、データ分析 のみに権限を持ちます。
モデルデザイナー
Pole_Project_Erd
デフォルトでは権限はありません。
デフォルトでは権限はありません。セキュリティセンターで必要な権限を申請する必要があります。
このロールは、データモデリング におけるモデルの表示およびデータウェアハウス計画、データ標準、ディメンショナルモデリング、データメトリクスにおけるパラメーター構成の変更権限を持ちますが、モデルの公開権限はありません。
データガバナンス管理者
Role_Project_Data_Governance
デフォルトでは権限はありません。
デフォルトでは権限はありません。セキュリティセンターで必要な権限を申請する必要があります。
このロールは、データガバナンスセンター のみに権限を持ちます。このロールを使用して、検出されたデータガバナンス上の課題の表示および管理、データガバナンス計画の構成、チェック項目の有効化が可能です。このロールは、データ開発および O&M などの操作には権限を持ちません。
ワークスペース所有者(Alibaba Cloud アカウント)
Project Owner
この ID はプロジェクトの所有者であり、プロジェクトに対するすべての権限を持ちます。
開発環境と同様の権限です。
該当なし。
該当なし
Super_Administrator
このロールはプロジェクトのスーパー管理者であり、プロジェクトの管理権限およびプロジェクト内のすべての種類のリソースに対するすべての権限を持ちます。
開発環境と同様の権限です。
該当なし。
該当なし
Admin
プロジェクトを作成すると、システムはこのプロジェクト用に Admin ロールを作成し、プロジェクト内のすべてのオブジェクトへのアクセス権限、ユーザーまたはロールの管理権限、ユーザーまたはロールへの権限付与権限を付与します。Project Owner ロールと比較して、Admin ロールは以下の操作を実行する権限を持ちません:ユーザーへの Admin ロールの割り当て、プロジェクトのセキュリティポリシーの構成、プロジェクトの認証モデルの変更、Admin ロールの権限の変更。Project Owner ロールは、ユーザーに Admin ロールを割り当て、ユーザーにセキュリティ構成の管理を許可できます。
開発環境と同様の権限です。
該当なし。
該当なし
Role_Project_Scheduler
デフォルトでは権限はありません。
MaxCompute:このロールは、プロジェクトおよびプロジェクト内のテーブル、関数、リソース、インスタンス、ジョブに対するすべての権限を持ち、プロジェクト内の packages に対する Read 権限を持ちます。
DataWorks:このロールは、本番環境へタスクをコミットするためのスケジューリング用 ID として使用されます。
説明本番環境のワークスペースに MaxCompute プロジェクトをデータソースとして追加する際に、デフォルトアクセス ID として RAM ユーザーまたは RAM ロールを指定した場合、その RAM ユーザーまたは RAM ロールには、MaxCompute プロジェクトの Role_Project_Scheduler ロールと同等の権限が付与されます。デフォルトアクセス ID の指定方法については、「新しい MaxCompute データソースの追加」の「データソースの追加」セクションをご参照ください。
この ID は、本番環境で MaxCompute タスクのスケジューリングおよび実行に使用されます。
ユーザーおよびユーザー権限
DataWorks ワークスペースでは、ワークスペース所有者は Alibaba Cloud アカウントでなければならず、ワークスペースメンバーは、ワークスペースと同じ Alibaba Cloud アカウントに所属する RAM ユーザーでなければなりません。DataWorks の ワークスペース管理 機能を使用して、ユーザーを追加し、ロールを割り当てることができます。
MaxCompute プロジェクトでは、Alibaba Cloud アカウントはプロジェクトオーナーまたはプロジェクトメンバーになることができます。Alibaba Cloud アカウントの RAM ユーザーもプロジェクトメンバーになることができます。
add user xxx;コマンドを使用してユーザーを追加できます。また、add role xxx;コマンドおよびgrant role xxx to user xxx;コマンドを使用してロールを追加し、ユーザーに割り当てることもできます。
以下の図に、異なるワークスペースモードおよびサポートされているビジター ID におけるユーザーと権限の関係を示します。
説明DataWorks ロールに対応する MaxCompute 権限は固定されています。ユーザーが DataWorks ロールを通じて MaxCompute ロール権限を付与され、その後コマンドラインを使用して他の MaxCompute 権限を付与された場合、ユーザーの MaxCompute における権限は、DataWorks に表示される権限と不整合を起こす可能性があります。