ロールとは、複数のユーザーに同じアクセス権を効率的に付与するための許可の集合です。ロールを使用すると、認可を簡素化し、管理コストを削減できます。このトピックでは、MaxCompute のロールタイプとその管理方法について説明します。
ロールの種類
MaxCompute には、管理者ロールとリソースロールの 2 種類のロールがあります。
管理者ロール:このロールには、ポリシーによってのみ管理権限を付与できます。リソース関連の権限は付与できず、アクセス制御リスト (ACL) を使用して管理権限を付与することもできません。
リソースロール:このロールには、ポリシーまたはアクセス制御リスト (ACL) を使用してリソース関連の権限を付与できますが、管理権限は付与できません。
組み込みロール
MaxCompute は、プロジェクトレベルで 2 つ、テナントレベルで 2 つの組み込み管理者ロール (Super_Administrator と Admin) を提供します。
ロールレベル | ロール名 | ロールタイプ | 説明 |
プロジェクト | Super_Administrator | Super_Administrator | MaxCompute の組み込み管理者ロールです。このロールは、プロジェクト内のすべてのリソースを操作し、すべての管理タスクを実行する権限を持ちます。詳細については、「プロジェクトレベルの管理者ロールの権限」をご参照ください。 プロジェクト所有者または Super_Administrator ロールを持つユーザーは、他のユーザーに Super_Administrator ロールを付与できます。 |
Admin | Admin | MaxCompute の組み込み管理者ロールです。このロールは、プロジェクト内のすべてのリソースを操作する権限と、基本的な管理権限の一部を持ちます。詳細については、「プロジェクトレベルの管理者ロールの権限」をご参照ください。 プロジェクト所有者は、他のユーザーに Admin ロールを付与できます。Admin ロールを持つユーザーは、他のユーザーへの Admin ロールの付与、プロジェクトのセキュリティ設定の構成、プロジェクトの認可モデルの変更、または Admin ロールの権限の変更はできません。 | |
テナント | Super_Administrator | Super_Administrator | MaxCompute の組み込み管理者ロールです。このロールは、プロジェクトの作成、プロジェクトの削除、サービスのアクティブ化の権限を除き、Alibaba Cloud アカウントと同じ MaxCompute に対する操作権限を持ちます。 |
Admin | Admin | MaxCompute の組み込み管理者ロールです。すべてのオブジェクトとネットワークリンクの権限の管理に使用されます。 |
プロジェクトレベルでは、プロジェクト所有者がプロジェクトに対するすべての権限を持ちます。他のユーザーは、プロジェクト所有者による認可がない限り、プロジェクト内のオブジェクトにアクセスできません。
カスタムロール
MaxCompute では、ビジネス要件に基づいてユーザーを分類して管理できるように、カスタムの管理者ロールとリソースロールを作成できます。
ロールレベル | ロール名 | ロールタイプ | 説明 |
プロジェクト | カスタムロール | 管理者、リソース | プロジェクトを管理する管理者ロール、またはプロジェクト内のオブジェクトリソースを管理するリソースロールとして定義できるカスタムロールです。 |
テナント | カスタムロール | リソース | クォータ、ネットワークリンク、プロジェクトなどのリソースに対する権限を定義するためのカスタムロールです。 |
ロール管理の操作
次の表に、MaxCompute でサポートされているロール管理の操作をまとめます。
ロールレベル | アクション | 説明 | オペレーターロール | ツール |
プロジェクト | プロジェクトレベルで新しいロールを作成します。 | プロジェクトオーナー、またはプロジェクトレベルの MaxCompute の組み込みロールを持つユーザー。 | ||
プロジェクト内のロールを表示します。 | ||||
プロジェクトからロールを削除します。 |
プロジェクトレベルの管理者ロールの権限
次の表に、プロジェクトレベルの管理者ロールの管理権限を示します。
権限タイプ | オブジェクト | アクション | 説明 | プロジェクト所有者 | Super_Administrator ロール | Admin ロール |
プロジェクトのセキュリティ構成 | プロジェクト | SetSecurityConfiguration | プロジェクトのセキュリティ構成を設定します。 |
|
|
|
プロジェクト | GetSecurityConfiguration | プロジェクトのセキュリティ構成を表示します。 |
|
|
| |
信頼されたプロジェクトの管理 | プロジェクト | AddTrustedProject | 信頼されたプロジェクトを追加します。 |
|
|
|
プロジェクト | RemoveTrustedProject | 信頼されたプロジェクトを削除します。 |
|
|
| |
プロジェクト | ListTrustedProjects | 信頼されたプロジェクトを一覧表示します。 |
|
|
| |
ユーザー管理 | プロジェクト | AddUser | ユーザーを追加します。 |
|
|
|
プロジェクト | RemoveUser | ユーザーを削除します。 |
|
|
| |
プロジェクト | ListUsers | ユーザーリストを表示します。 |
|
|
| |
プロジェクト | ListUserRoles | ユーザーのロールを表示します。 |
|
|
| |
ロール管理 | プロジェクト | CreateRole | ロールを作成します。 |
|
|
|
プロジェクト | DescribeRole | ロールの権限を表示します。 |
|
|
| |
プロジェクト | AlterRole | ロールの属性を変更します。 |
|
|
| |
プロジェクト | DropRole | ロールを削除します。 |
|
|
| |
プロジェクト | ListRoles | ロールリストを表示します。 |
|
|
| |
ロールの割り当て | ロール | GrantRole | ユーザーにロールを割り当てます。 |
|
|
|
ロール | RevokeRole | ユーザーからロールを取り消します。 |
|
|
| |
ロール | ListRolePrincipals | ロールに割り当てられているプリンシパルを表示します。 |
|
|
| |
パッケージ管理 | プロジェクト | CreatePackage | パッケージを作成します。 |
|
|
|
プロジェクト | ShowPackages | パッケージリストを表示します。 |
|
|
| |
パッケージ | DescribePackage | パッケージ情報を表示します。 |
|
|
| |
パッケージ | DropPackage | パッケージを削除します。 |
|
|
| |
パッケージ | InstallPackage | パッケージをインストールします。 |
|
|
| |
パッケージ | UninstallPackage | パッケージをアンインストールします。 |
|
|
| |
パッケージ | AllowInstallPackage | 他のプロジェクトによるパッケージの使用を許可します。 |
|
|
| |
パッケージ | DisallowInstallPackage | 他のプロジェクトによるパッケージの使用を禁止します。 |
|
|
| |
パッケージ | AddPackageResource | パッケージにリソースを追加します。 |
|
|
| |
パッケージ | RemovePackageResource | パッケージからリソースを削除します。 |
|
|
| |
ラベル管理 | テーブル | GrantLabel | ラベル権限を付与します。 |
|
|
|
テーブル | RevokeLabel | ラベル権限を取り消します。 |
|
|
| |
テーブル | ShowLabelGrants | ラベルの権限付与情報を表示します。 |
|
|
| |
テーブル | SetDataLabel | ユーザーとロールにラベルを設定します。 |
|
|
| |
期限切れの権限のクリア | プロジェクト | ClearExpiredGrants | 期限切れの権限付与をクリアします。 |
|
|
|
アイコンは、権限が付与されていることを示します。
アイコンは、権限が付与されていないことを示します。
プロジェクトレベルのロールの作成
MaxCompute プロジェクトに新しいロールを作成できます。
ロールを作成した後、ユーザーにバインドする必要があります。これにより、ユーザーにロールに対応する権限が付与されます。詳細については、「ユーザーへのロールの割り当て」をご参照ください。
コマンド構文
create role <role_name> [privilegeproperties("type"="admin|resource")];パラメーター
パラメーター
必須
説明
role_name
はい
新しいロールの名前。名前はプロジェクト内で一意である必要があり、次の要件を満たす必要があります:
英字で始まる。
英字と数字のみを含む。
長さが 64 文字以内である。
MaxCompute クライアントで
list roles;コマンドを実行すると、作成されたロールを表示できます。privilegeproperties
いいえ
ロールタイプを定義します。
"type"="admin": ポリシーを使用してのみ権限を付与できる管理者ロールを作成します。"type"="resource"は、リソースタイプのロールを作成します。これは、タイプが指定されていない場合のデフォルトタイプです。このロールタイプは、ACL とポリシーによる認可をサポートします。
例
Create a resource role named
Worker.create role Worker;sale_adminという名前の管理者ロールを作成します。create role sale_admin privilegeproperties("type"="admin");
プロジェクトレベルのロールの一覧表示
MaxCompute プロジェクト内のロール一覧を表示できます。
コマンド構文:
list roles;例:
MaxCompute プロジェクト内のロールを表示します。
list roles;次の出力が返されます:
admin Super_Administrator worker
プロジェクトレベルのロールの削除
MaxCompute プロジェクトから既存のロールを削除できます。
コマンド構文
drop role <role_name>;使用上の注意
ロールを削除する際、MaxCompute はそのロールがいずれかのユーザーに割り当てられているかどうかを確認します。割り当てられている場合、操作は失敗します。ロールを削除する前に、すべてのユーザーからロールを取り消す必要があります。ユーザーからロールを取り消す方法については、「ユーザーからロールを取り消す」をご参照ください。
パラメーター
パラメーター
必須
説明
role_name
はい
削除するロールの名前です。
list roles;コマンドを MaxCompute クライアントで実行すると、作成済みのロールのリストを取得できます。例
Workerロールを削除します。drop role Worker;
権限情報のパージ
MaxCompute プロジェクトからロールを削除しても、アクセス制御リスト (ACL)、ポリシー、ラベルなど、ロールに関連付けられた権限データはプロジェクト内に残ります。後で同じ名前の新しいロールを作成すると、新しいロールは削除されたロールの権限を継承します。これを防ぐには、削除されたロールの権限をパージできます。削除されたロールに権限情報が残っている場合、プロジェクトオーナー、または Admin ロールか Super_Administrator ロールを持つユーザーは、次のコマンドを実行して情報をパージできます。
コマンド構文
purge privs from role <role_name>;パラメーター
パラメーター
必須
説明
role_name
はい
削除されたロールの名前です。
MaxCompute クライアントで
list roles;コマンドを実行すると、作成されたロールを表示できます。説明ロールの権限をパージする前に、そのロールが削除されていることを確認してください。既存のロールに対してこのコマンドを実行すると、エラーメッセージ
"Principal <role_name> still exist in the project"が返されます。
次のステップ
ロールの計画が完了したら、ビジネス要件に基づいて権限を付与できます。詳細については、「プロジェクトレベルのロールの権限付与」をご参照ください。
ロールを作成した後、ユーザーに割り当てる必要があります。そうすることで、ユーザーにロールに関連付けられた権限が付与されます。詳細については、「ユーザーにロールを割り当てる」をご参照ください。