MaxComputeプロジェクトのデータのセキュリティを確保するには、プロジェクトの所有者または承認機能を持つユーザーが、プロジェクトのメンバーの権限を管理する必要があります。 このトピックでは、MaxComputeの権限管理システムについて説明します。
権限管理システム
項目 | 説明 |
依頼人 | MaxComputeは次のプリンシパルをサポートしています。 |
オブジェクト (Object) | MaxComputeは、プロジェクト、テーブル、リソース、関数、およびインスタンスに対するきめ細かいアクセス制御をサポートしています。 MaxComputeが提供する権限付与ソリューションに基づいて、オブジェクトに対するユーザー権限をきめ細かく管理できます。 各オブジェクトに対する権限の詳細については、「MaxCompute の権限」をご参照ください。 |
アクセス制御 | MaxComputeは、さまざまな権限付与要件を満たすために、次の権限付与ソリューションを提供します。
|
ロールベースの権限付与 | 複数のユーザーに同じ操作権限を付与する場合は、ロールに基づいてユーザーに権限を付与できます。 これにより、承認操作が簡単になります。 ロールベースの権限付与の詳細については、「プロジェクトレベルのロールに基づくアクセス制御の実行」をご参照ください。 |
ユーザー権限付与 | 次のいずれかの方法を使用して、ユーザーに権限を付与できます。
ユーザー権限付与の詳細については、「コマンドを使用したユーザー権限の管理」をご参照ください。 |
権限情報の取得 | プロジェクト担当者の権限情報を照会して、付与された権限が有効かどうかを確認できます。 権限情報を照会する方法の詳細については、「MaxCompute SQLを使用したアクセス許可の照会」をご参照ください。 |
DataWorksには権限システムもあります。 DataWorksを使用してMaxComputeプロジェクトを維持する場合、DataWorksが提供するユーザーおよびロール管理機能を使用して、ユーザーにロールを割り当てることでユーザー権限を管理できます。 DataWorksとMaxComputeの間の権限関係の詳細については、「MaxComputeとDataWorksの間の権限関係」をご参照ください。
认证プロセス
MaxComputeユーザーがさまざまな種類のMaxComputeオブジェクトに対して操作を実行する場合、ユーザーは認証されている必要があります。 リソース所有者 (Alibaba Cloudアカウント) は最高の権限を持ち、MaxComputeオブジェクトに対するすべての操作を実行できます。 リソース所有者は、RAMユーザーまたはRAMロールに管理権限を付与することもできます。 Alibaba Cloudアカウントと管理権限を持つユーザーは、他のユーザーに権限を付与できます。 権限付与操作は、権限が付与されるユーザー、権限が付与されるオブジェクト、およびユーザーがオブジェクトに対して実行できる操作を決定します。
MaxComputeの認証プロセスは、オブジェクトと操作に基づいて、RAM認証とMaxComputeサービス認証に分けられます。 次の図は、ユーザーが操作を実行する前に必要な認証プロセスを示しています。 
RAM権限付与
ユーザーがMaxComputeコンソールでサービスの有効化、リソースの購入、クォータ、プロジェクト、またはテナントの管理を行う必要がある場合、Alibaba Cloudはユーザーに対してRAM認証を実行し、ユーザーに関連する権限が付与されているかどうかを確認します。 ユーザーに関連する権限が付与されていない場合、ユーザーは操作を実行できません。
RAM認証が必要な操作の一覧については、「RAM権限」をご参照ください。
RAMユーザーまたはRAMロールにシステムポリシーをアタッチする方法の詳細については、「RAMユーザーへの権限の付与」をご参照ください。
MaxComputeサービス認証
MaxComputeプロジェクトレベルでの操作の認証
MaxComputeプロジェクトレベルでの操作権限には、プロジェクトレベルでのオブジェクト操作に対する権限と、プロジェクトレベルでの管理操作に対する権限が含まれます。
プロジェクトレベルでのオブジェクト操作に対する権限: プロジェクト、テーブル、関数、リソースなどのオブジェクトに対して操作を実行するための権限。 アクセス許可には、CreateTable、CreateInstance、およびSelectTableが含まれます。 詳細については、「プロジェクトおよびプロジェクト内のオブジェクトに対する権限」をご参照ください。
プロジェクトレベルでの管理操作に対する権限: プロジェクトのセキュリティ設定の構成、プロジェクトレベルのユーザーとロールの権限の管理、パッケージの管理、ラベルの管理、期限切れの権限のクリアを行う権限。 詳細については、「プロジェクト管理の権限」をご参照ください。
次のコンテンツは、MaxComputeプロジェクトでの操作の認証手順について説明しています。
ユーザー認証 ユーザー認証の詳細については、「ユーザー認証」をご参照ください。
Alibaba CloudアカウントまたはAlibaba CloudアカウントのRAMユーザーを使用して、MaxComputeコンソールにログインします。
odpscmdやJDBCなどのツールを使用してMaxComputeに接続する場合は、AccessKey IDとAccessKey secretが必要です。
アカウントを使用してMaxComputeに接続すると、現在のプロジェクトユーザーのアカウントが使用されているかどうかがシステムによって判断されます。 ユーザーは、プロジェクトの管理者がユーザーに対して
add user "xxx"コマンドを実行した場合にのみ、プロジェクトで操作を実行できます。
リクエスト元チェック: IPアドレスのホワイトリストを確認します。 詳細については、「IPアドレス ホワイトリストの管理」をご参照ください。
プロジェクトのステータスチェック: プロジェクトが正常な状態かどうかを確認します。
MaxCompute権限チェック: ユーザーがプロジェクトに追加された後、権限の範囲内で操作を実行するには、関連する権限をユーザーに付与する必要があります。 権限には、ACLベースのアクセス制御、ポリシーベースのアクセス制御、ダウンロード制御、ラベルベースのアクセス制御、パッケージベースのクロスプロジェクトリソースアクセスなど、さまざまな権限付与方法を使用して付与される権限が含まれます。 プロジェクトレベルのユーザーを管理する方法の詳細については、「コマンドを使用したユーザー権限の管理」をご参照ください。
.
MaxComputeテナントレベルでの操作の認証
MaxComputeテナントレベルでの操作に対する権限には、テナントレベルでのオブジェクト操作に対する権限と、テナントレベルでの管理操作に対する権限が含まれます。
テナントレベルでのオブジェクト操作に対する権限には、クォータの使用権限やネットワーク接続のCreateNetworkLink権限など、テナントレベルのオブジェクトに対する権限が含まれます。 テナントレベルのオブジェクトに対する権限の詳細については、「テナント内のオブジェクトに対する権限」をご参照ください。
テナントレベルでのオブジェクト操作の権限でも、1つのアカウントを使用して複数のプロジェクトを管理できます。 これにより、権限管理が容易になります。
テナントレベルでの管理操作に対する権限は、テナントレベルでのユーザーとロールの権限を管理するために付与されます。 たとえば、ユーザーに権限が付与された後、ユーザーはテナントレベルのユーザーの追加または削除、テナントレベルのロールの作成または削除、テナントレベルのユーザーとロールとその権限のリストの表示、テナントレベルのロールのユーザーへのアタッチ、テナントレベルのロールのユーザーからのデタッチ、テナントレベルのロールのプロジェクトへの追加、テナントレベルのロールのプロジェクトからの削除を実行できます。
ユーザーが上記の操作を実行する必要がある場合、MaxComputeは認証操作を実行して、ユーザーに関連する権限が付与されているかどうかを確認します。 ユーザーに関連する権限が付与されていない場合、操作は実行できません。
権限の付与方法
次のコンテンツは、MaxComputeでサポートされている一般的な権限付与方法について説明します。
方法1: ユーザーにオブジェクトに対する操作権限を付与します。
プロジェクト所有者または組み込みの管理者ロールを持つユーザーがMaxComputeプロジェクトにユーザーを追加した後、必要な権限付与機能を持つユーザーは、アクセス制御リスト (ACL) を使用して、追加されたユーザーにオブジェクトに対する操作権限を付与します。

方法2: ロールに基づいて、複数のユーザーにオブジェクトに対する操作権限を付与します。
プロジェクト所有者または組み込み管理者ロールを持つユーザーがMaxComputeプロジェクトにユーザーとロールを追加した後、必要な権限付与機能を持つユーザーは、ACL、ポリシー、またはダウンロード制御ソリューションを使用して、オブジェクトに対する操作権限をロールに付与し、ユーザーにロールを割り当てます。

方法3: 機密レベルの高いデータにアクセスする権限をユーザーに付与します。
プロジェクト所有者または組み込みの管理者ロールを持つユーザーがMaxComputeプロジェクトにユーザーを追加した後、プロジェクト所有者または管理者ロールを持つユーザーはユーザーにアクセスレベルを追加できます。 ユーザーが機密レベルの高いデータにアクセスしたい場合、プロジェクト所有者または管理者ロールを持つユーザーは、ラベルベースのアクセス制御を使用して、ユーザーにデータへのアクセスを許可することもできます。

方法4: 複数のユーザーに、ロールに基づいて同じ高機密レベルでデータにアクセスする権限を付与します。
プロジェクト所有者または組み込みの管理者ロールを持つユーザーがMaxComputeプロジェクトにユーザーを追加した後、プロジェクト所有者または管理者ロールを持つユーザーはアクセスレベルラベルをユーザーに追加できます。 複数のユーザーが同じ高感度レベルでデータにアクセスする場合は、ロールを作成し、プロジェクト所有者または管理者ロールを持つユーザーに、ラベルベースのアクセス制御を使用してデータにアクセスする権限をロールに付与し、ユーザーにロールを割り当てることができます。

方法5: プロジェクト内のユーザーに、プロジェクト間リソースアクセスシナリオでパッケージ内のリソースにアクセスする権限を付与します。
リソースが属するプロジェクトの所有者がパッケージを作成し、リソースをパッケージに追加すると、プロジェクト所有者は別のプロジェクトにパッケージのインストールを許可します。 次に、パッケージがインストールされているプロジェクトの所有者は、ACLまたはラベルベースのアクセス制御を使用して、プロジェクト内の他のユーザーにリソースに対する権限を付与します。

方法6: プロジェクト間リソースアクセスシナリオのロールに基づいて、パッケージ内のリソースにアクセスする権限をユーザーに付与します。
リソースが属するプロジェクトの所有者がパッケージを作成し、リソースをパッケージに追加した後、所有者は別のプロジェクトにパッケージのインストールを許可します。 次に、パッケージがインストールされているプロジェクトの所有者は、ACLまたはラベルベースのアクセス制御を使用して、リソースに対する権限をロールに付与し、プロジェクト内の他のユーザーにロールを割り当てます。

MaxComputeとDataWorks間の権限関係
MaxComputeとDataWorks間の権限関係を理解する前に、MaxComputeプロジェクトとDataWorksワークスペース間の関係を理解する必要があります。
MaxComputeプロジェクトを作成するときに、DataWorksワークスペースの基本モードを選択すると、DataWorksワークスペースはMaxComputeプロジェクトに関連付けられます。
MaxComputeプロジェクトを作成するときに、DataWorksワークスペースに標準モードを選択すると、DataWorksワークスペースは開発環境のMaxComputeプロジェクトと本番環境のMaxComputeプロジェクトに関連付けられます。 開発環境のMaxComputeプロジェクトの場合、プロジェクト名の接尾辞は_devです。
また、MaxComputeプロジェクトの訪問者IDを設定して、MaxComputeプロジェクトのアカウントのポリシーを決定する必要があります。
MaxComputeの権限管理システムを使用して権限を制御する場合、DataWorksコンソールでのユーザー操作は影響を受けません。 DataWorksでは、MaxComputeプロジェクトの権限を視覚化して管理できます。 ただし、DataWorksを使用してユーザーにロールを割り当てると、MaxComputeリソースの操作権限が影響を受ける可能性があります。
ユーザーとロールの概念は、DataWorksとMaxComputeの両方に存在します。 次のコンテンツでは、DataWorksとMaxComputeの間の権限関係について説明します。
ロールとその権限
DataWorksは組み込みロールを使用して、プロジェクトメンバーがデータを開発するためのMaxComputeプロジェクトのリソースに対する権限を提供します。 次の表に、MaxComputeロールとDataWorks組み込みロールの間の権限関係を示します。
マッピング
権限の説明
DataWorksロールまたはID
MaxComputeロール
DataWorks開発環境と関連するMaxComputeプロジェクトのデータに対する権限
DataWorks本番環境と関連するMaxComputeプロジェクトのデータに対する権限
DataWorksの権限の説明
ワークスペース管理者
Role_Project_Admin
MaxCompute: このロールには、プロジェクト内のプロジェクトとテーブル、関数、リソース、インスタンス、ジョブに対するすべての権限があり、プロジェクト内の
パッケージに対する読み取り権限があります。DataWorks: このロールには、データ開発操作を実行し、実稼働環境にタスクをデプロイする権限があります。
デフォルトでは権限はありません。 セキュリティセンターで必要な権限を要求する必要があります。
ワークスペース管理者ロールを持つユーザーは、ワークスペースの管理者です。 管理者は、基本プロパティ、データソース、計算エンジン構成、およびワークスペースのメンバーを管理する権限を持ち、ワークスペースのメンバーにワークスペース管理者、開発者、O&M、デプロイ、または訪問者のロールを割り当てることができます。
開発
Role_Project_Dev
MaxCompute: このロールには、プロジェクト内のプロジェクトとテーブル、関数、リソース、インスタンス、ジョブに対するすべての権限があり、プロジェクト内の
パッケージに対する読み取り権限があります。DataWorks: このロールには、データ開発操作を実行する権限がありますが、実稼働環境にタスクをデプロイする権限はありません。
デフォルトでは権限はありません。 セキュリティセンターで必要な権限を要求する必要があります。
Developmentロールを持つユーザーは、ワークフロー、スクリプトファイル、リソース、ユーザー定義関数 (UDF) 、テーブル、デプロイメントタスクを作成し、テーブルを削除する権限を持ちますが、デプロイメント操作を実行する権限はありません。
O&M
Role_Project_Pe
このロールには、プロジェクトとプロジェクト内の関数、リソース、インスタンス、ジョブに対するすべての権限、プロジェクト内のパッケージに対する読み取り権限、およびプロジェクト内のテーブルに対する読み取り権限と説明権限があります。
説明O&Mロールには、MaxComputeコンピューティングエンジンに対する権限がありますが、DataWorksコンソールでノードを実行する権限はありません。
デフォルトでは権限はありません。 セキュリティセンターで必要な権限を要求する必要があります。
O&Mロールには、ワークスペース管理者ロールによって付与されたデプロイおよびオンラインO&M権限がありますが、データ開発操作を実行する権限はありません。
デプロイ
Role_Project_Deploy
デフォルトでは権限はありません。
デフォルトでは権限はありません。 セキュリティセンターで必要な権限を要求する必要があります。
デプロイロールには、オンラインO&M権限を除いて、O&Mロールと同様の権限があります。
訪問者
Role_Project_Guest
デフォルトでは権限はありません。
デフォルトでは権限はありません。 セキュリティセンターで必要な権限を要求する必要があります。
訪問者ロールを持つユーザーには、データを表示する権限がありますが、ワークフローまたはコードを変更する権限はありません。
Security Manager
Role_Project_Security
デフォルトでは権限はありません。
デフォルトでは権限はありません。 セキュリティセンターで必要な権限を要求する必要があります。
Security ManagerロールはData Security Guardでのみ使用でき、data Security Guardで機密データ識別ルールを設定し、データリスクを監査する権限があります。
データアナリスト
Role_Project_Data_Analyst
デフォルトでは権限はありません。
デフォルトでは権限はありません。 セキュリティセンターで必要な権限を要求する必要があります。
このロールには、DataAnalysisに対する権限のみがあります。
モデルデザイナー
Pole_Project_Erd
デフォルトでは権限はありません。
デフォルトでは権限はありません。 セキュリティセンターで必要な権限を要求する必要があります。
このロールには、Data Warehouse Planning、Data Standard、Dimensional Modeling、およびData Metricでパラメーター設定を変更する権限があります。 このロールには、モデルを公開する権限がありません。
データガバナンス管理者
Role_Project_Data_Governance
デフォルトでは権限はありません。
デフォルトでは権限はありません。 セキュリティセンターで必要な権限を要求する必要があります。
このロールには、データガバナンスセンターに対する権限のみがあります。 このロールは、検出されたデータガバナンスの問題の表示と管理、データガバナンス計画の構成、およびチェック項目の有効化に使用できます。 このロールには、データ開発やO&Mなどの操作に対する権限がありません。
ワークスペースの所有者 (Alibaba Cloudアカウント)
プロジェクト所有者
このIDはプロジェクトの所有者であり、プロジェクトに対するすべての権限を持ちます。
開発環境と同じ権限。
なし。
なし
Super_Administrator
このロールは、プロジェクトのスーパー管理者であり、プロジェクトに対する管理権限と、プロジェクト内のすべてのタイプのリソースに対するすべての権限を持ちます。
開発環境と同じ権限。
なし。
なし
管理者
プロジェクトを作成すると、システムはこのプロジェクトの管理者ロールを作成し、プロジェクト内のすべてのオブジェクトへのアクセス、ユーザーまたはロールの管理、およびユーザーまたはロールへのアクセス許可をロールに付与します。 プロジェクト所有者ロールと比較して、管理者ロールには次の操作を実行する権限がありません。管理者ロールをユーザーに割り当て、プロジェクトのセキュリティポリシーを設定し、プロジェクトの認証モデルを変更し、管理者ロールの権限を変更します。 プロジェクト所有者ロールは、管理者ロールをユーザーに割り当て、セキュリティ構成を管理する権限をユーザーに付与できます。
開発環境と同じ権限。
なし。
なし
Role_Project_Scheduler
デフォルトでは権限はありません。
MaxCompute: このロールには、プロジェクトとプロジェクト内のテーブル、関数、リソース、インスタンス、ジョブに対するすべての権限があり、プロジェクト内のパッケージに対する読み取り権限があります。
DataWorks: このロールは、スケジューリングのために運用環境にタスクをコミットするIDとして使用されます。
説明MaxComputeプロジェクトを本番環境のワークスペースにデータソースとして追加するときに、RAMユーザーまたはRAMロールをデフォルトのアクセスIDとして指定した場合、RAMユーザーまたはRAMロールには、MaxComputeプロジェクトのRole_Project_Schedulerロールと同じ権限が付与されます。 デフォルトのアクセスIDを指定する方法については、MaxComputeの新しいデータソースの追加の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オブジェクトに対する権限をユーザーに付与し、コマンドラインインターフェイス (CLI) を使用して他のMaxCompute権限をユーザーに付与すると、MaxComputeオブジェクトに対するユーザー権限がDataWorksコンソールから照会されるユーザー権限と異なる場合があります。