MaxCompute では、MaxCompute コンソールでロールを使用して、RAM ユーザーや RAM ロールなどの RAM アカウントに権限を付与できます。このトピックでは、さまざまな種類の権限を付与する方法とポリシーの例について説明します。
プロジェクトレベルの管理権限の付与
MaxCompute のプロジェクトレベルの管理権限には、プロジェクトのセキュリティ設定、プロジェクトレベルのユーザーとロール権限の管理、パッケージの管理、ラベルベースのアクセス制御の使用、期限切れの権限のクリーンアップなどが含まれます。詳細については、「プロジェクト管理権限のリスト」をご参照ください。
操作手順
-
MaxCompute コンソールにログインし、左上のコーナーでリージョンを選択します。
-
左側のナビゲーションウィンドウで、を選択します。
-
プロジェクト管理ページで、対象プロジェクトの操作列にある管理をクリックします。
-
プロジェクト設定ページで、ロール権限タブをクリックします。
ロール権限タブでは、Admin ロールを作成するか、既存の Admin ロールの権限を変更できます。
説明デフォルトでは、プロジェクトのロールを管理する権限を持つのは Alibaba Cloud アカウント (root ユーザー) のみです。RAM ユーザーや RAM ロールなどの RAM アカウントを使用して権限を付与するには、そのアカウントに必要なプロジェクト管理権限が必要です。
-
Admin ロールの作成
-
プロジェクトレベルのロールの追加をクリックして、必要な MaxCompute 権限を持つプロジェクトロールを作成します。
-
新しいロールダイアログボックスで、プロンプトに従ってパラメーターを設定し、OK をクリックします。
ロールタイプを Admin に設定し、権限付与ポリシーを入力します。
-
-
既存の Admin ロールの権限の変更
ロール権限タブで、対象のロールを見つけ、操作列のModify Authorizationをクリックします。ポリシーを変更した後、Confirmをクリックして変更を保存します。
Action と Resource の値の詳細については、「プロジェクト管理権限のリスト」をご参照ください。このトピックでは、管理モジュールに基づいたポリシーの例を示します。
-
-
対象のプロジェクトレベルのロールを見つけ、操作列のメンバー管理をクリックします。メンバー管理ダイアログボックスでは、ロールに割り当てられているメンバーの表示、ユーザーへのロールの割り当て、またはロールからのユーザーの削除 (権限の取り消し) ができます。
ポリシーの例
-
モジュールの管理権限には、多くの場合、複数のアクションとリソース権限が含まれます。そのため、この例ではワイルドカード (
*) を使用して、一度に複数のオブジェクトに対する権限を付与します。 -
Action と Resource の値の詳細については、「プロジェクト管理権限のリスト」をご参照ください。
-
例の
project_nameを、ご利用の MaxCompute プロジェクトの名前に置き換えてください。
ロール管理
次のポリシーは、ロールを管理する権限を付与します。
{
"Statement": [
{
"Action": [
"odps:*"
],
"Effect": "Allow",
"Resource": [
"acs:odps:*:projects/project_name/authorization/roles",
"acs:odps:*:projects/project_name/authorization/roles/*/*"
]
}
],
"Version": "1"
}
パッケージ管理
次のポリシーは、パッケージを管理する権限を付与します。
{
"Statement": [
{
"Action": [
"odps:*"
],
"Effect": "Allow",
"Resource": [
"acs:odps:*:projects/project_name/authorization/packages",
"acs:odps:*:projects/project_name/authorization/packages/*",
"acs:odps:*:projects/project_name/authorization/packages/*/*/*"
]
}
],
"Version": "1"
}
コンソールでパッケージを管理するには、プロジェクトに対する list 権限が必要です。したがって、まず現在のプロジェクトに対する list 権限をユーザーに付与する必要があります。コンソールで権限を付与する方法については、「オブジェクトに対するプロジェクトレベルの操作権限の付与」をご参照ください。コマンドを使用して権限を付与する方法については、「コマンドを使用したユーザー権限の管理」をご参照ください。
プロジェクトのセキュリティ
次のポリシーは、プロジェクトのセキュリティ設定を変更する権限を付与します。
{
"Statement":[
{
"Action":[
"odps:*"
],
"Effect":"Allow",
"Resource":[
"acs:odps:*:projects/project_name/authorization/configurations/*"
]
}
],
"Version":"1"
}
ユーザー管理
次のポリシーは、プロジェクトのユーザーを管理する権限を付与します。
{
"Statement":[
{
"Action":[
"odps:*"
],
"Effect":"Allow",
"Resource":[
"acs:odps:*:projects/project_name/authorization/users"
]
}
],
"Version":"1"
}
すべての管理権限
次のポリシーは、すべての管理権限を付与します。
{
"Statement":[
{
"Action":[
"odps:*"
],
"Effect":"Allow",
"Resource":[
"acs:odps:*:projects/project_name/authorization/*"
]
}
],
"Version":"1"
}
オブジェクトに対するプロジェクトレベルの操作権限の付与
プロジェクトレベルの操作権限は、テーブル、関数、リソースなど、プロジェクト内のオブジェクトに適用されます。これらの権限の例としては、CreateTable、CreateInstance、SelectTable などがあります。詳細については、「プロジェクトおよびプロジェクト内オブジェクトの権限リスト」をご参照ください。
操作手順
-
MaxCompute コンソールにログインし、左上のコーナーでリージョンを選択します。
-
左側のナビゲーションウィンドウで、を選択します。
-
プロジェクト管理ページで、対象プロジェクトの操作列にある管理をクリックします。
-
プロジェクト設定ページで、ロール権限タブをクリックします。
Resource ロールを作成するか、既存の Resource ロールの権限を編集できます。
説明デフォルトでは、プロジェクトのロールを管理する権限を持つのは Alibaba Cloud アカウントのみです。RAM ユーザーや RAM ロールなどの RAM アカウントを使用して権限を付与するには、そのアカウントに必要なプロジェクト管理権限が必要です。
-
Resource ロールの作成
プロジェクトレベルのロールの追加をクリックして、必要な MaxCompute 権限を持つプロジェクトロールを作成します。
-
新しいロールダイアログボックスで、プロンプトに従ってパラメーターを設定し、OK をクリックします。
ロールタイプを Resource に設定します。その後、ACL またはポリシーを使用して権限を付与します。
-
既存の Resource ロールの権限の変更
-
ロール権限タブで、対象のロールを見つけ、操作列のModify Authorizationをクリックします。その後、ACL を使用するか、ポリシーを編集して権限を変更します。
-
権限の詳細については、「プロジェクトおよびプロジェクト内オブジェクトの権限リスト」をご参照ください。このトピックでは、コンソールで ACL とポリシーを使用して権限を付与する方法の例を示します。詳細については、「プロジェクトレベルの管理権限の付与」をご参照ください。
-
-
対象のプロジェクトレベルのロールを見つけ、操作列のメンバー管理をクリックします。メンバー管理ダイアログボックスでは、ロールに割り当てられているメンバーの表示、ユーザーへのロールの割り当て、またはロールからのユーザーの削除 (権限の取り消し) ができます。
権限付与の例
-
プロジェクトレベルのオブジェクト操作権限のアクションとオブジェクトの詳細については、「プロジェクトおよびプロジェクト内オブジェクトの権限リスト」をご参照ください。
-
例の
project_nameを、ご利用の MaxCompute プロジェクトの名前に置き換えてください。
ACL
ACL を使用して、テーブルを作成 (CreateTable) し、インスタンスを作成 (CreateInstance) し、プロジェクト内のすべてのオブジェクトタイプを一覧表示 (List) し、すべてのテーブルからメタデータ (Describe) とデータ (Select) を読み取る権限を Resource ロールに付与できます。
権限付与の進行中は、プログレスバーやページを閉じないでください。閉じると、権限付与が中断されます。
ポリシー
-
このポリシーは、テーブルを作成 (CreateTable) し、インスタンスを作成 (CreateInstance) し、プロジェクト内のすべてのオブジェクトタイプの一覧を表示 (List) し、すべてのテーブルのメタデータを読み取り (Describe)、すべてのテーブルからデータを読み取る (Select) 権限を Resource ロールに付与します。
{ "Statement": [{ "Action": ["odps:CreateTable","odps:CreateInstance","odps:List"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name"]}, { "Action": ["odps:Describe","odps:Select"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/tables/*"]}], "Version": "1"} -
このポリシーは、Resource ロールに、名前が tmp で始まるすべてのテーブルのメタデータを読み取り (Describe) 、データをクエリ (Select) する権限、すべてのリソースと関数を読み取り、更新する権限を付与し、テーブルの削除権限を拒否します。
{ "Statement": [{ "Action": ["odps:Describe","odps:Select"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/tables/tmp_*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/resources/*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/functions/*"]}, { "Action": ["odps:Drop"], "Effect": "Deny", "Resource": ["acs:odps:*:projects/project_name/tables/*"]}], "Version": "1"}プロジェクトでスキーマによるデータストレージが有効になっている場合 (「スキーマ操作」をご参照ください)、ポリシーを次のように変更する必要があります:
{ "Statement": [{ "Action": ["odps:Describe","odps:Select"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/schemas/*/tables/tmp_*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/schemas/*/resources/*"]}, { "Action": ["odps:Read","odps:Write"], "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name/schemas/*/functions/*"]}, { "Action": ["odps:Drop"], "Effect": "Deny", "Resource": ["acs:odps:*:projects/project_name/schemas/*/tables/*"]}], "Version": "1"}
テナントレベルの管理権限の付与
テナントレベルの管理権限には、テナントレベルでのユーザーとロールの管理が含まれます。これには、ユーザーの追加または削除、ロールの作成または削除、ユーザーとロールの表示、ユーザーへのロールの割り当てまたは取り消し、プロジェクトへのロールの追加または削除が含まれます。
テナントレベルの権限を管理できるのは、Alibaba Cloud アカウントまたはテナントレベルの Super_Administrator もしくは Admin ロールを持つユーザーのみです。
RAM ユーザーや RAM ロールなどの RAM アカウントに管理権限を付与するには、Alibaba Cloud アカウントを使用して Super_Administrator または Admin ロールを割り当てる必要があります。テナントレベルの Super_Administrator および Admin ロールは、広範な管理権限を提供します。権限の詳細については、「ロール計画」をご参照ください。これらのロールを割り当てる際は注意が必要です。テナントレベルのロールの詳細については、「テナントレベルのロール権限の付与」をご参照ください。
-
MaxCompute コンソールにログインし、左上のコーナーでリージョンを選択します。
-
左側のナビゲーションウィンドウで、 を選択します。
-
テナント管理ページで、ユーザー管理タブをクリックします。
-
ユーザー管理タブで、対象の RAM ユーザーを見つけ、操作列のロールの変更をクリックします。
ロールの編集ダイアログボックスで、目的のロールを追加するロールセクションから役割追加セクションに移動し、OK をクリックします。
テナントレベルのオブジェクト操作権限の付与
テナントレベルのオブジェクト操作権限には、クォータやネットワーク接続など、テナントレベルのオブジェクトを操作する権限が含まれます。これらの権限の例としては、Usage や CreateNetworkLink があります。これらの権限により、単一のアカウントで複数のプロジェクトにまたがるオブジェクトを管理することも可能になり、権限管理が簡素化されます。テナントレベルのロールの詳細については、「テナントレベルのロール権限の付与」をご参照ください。
操作手順
-
MaxCompute コンソールにログインし、左上のコーナーでリージョンを選択します。
-
左側のナビゲーションウィンドウで、 を選択します。
-
テナント管理ページで、ロール管理タブをクリックします。
-
ロール管理ページでは、新しいテナントレベルのロールを作成するか、既存のカスタムロールの権限を管理できます。
説明テナントレベルの権限を管理できるのは、Alibaba Cloud アカウントまたはテナントレベルの Super_Administrator もしくは Admin ロールを持つユーザーのみです。
-
テナントレベルのロールの追加
ロール管理タブで、新しいロールをクリックします。新しいロールダイアログボックスで、カスタムのロール名:を入力し、ポリシーの内容:を指定して、OK をクリックします。
パラメーター
説明
ロール名
新しいテナントレベルのロールの名前。Alibaba Cloud アカウント内で一意である必要があり、長さは 6~64 文字で、先頭は英字、使用できる文字は英字、数字、アンダースコア (_) のみです。
ポリシー内容
ロールの権限ポリシー。テンプレートに基づいてポリシーコードを編集できます。
-
既存のテナントレベルのロールの権限の変更
ロール管理タブで、対象のロールを見つけ、操作列の権利管理をクリックします。権限付与ポリシーを変更し、OK をクリックして変更を保存します。
-
-
ユーザー管理タブで、権限を付与したいユーザーを見つけ、操作列のロールの変更をクリックします。
ロールの編集ダイアログボックスで、目的のロールを追加するロールセクションから役割追加セクションに移動し、OK をクリックします。
ポリシーの例
-
この例ではワイルドカード (
*) を使用して、一度に複数のオブジェクトに対する権限を付与します。 -
特定のアクションとリソースの詳細については、「テナント内のオブジェクトに対する権限のリスト」をご参照ください。
-
このポリシーは、テナントレベルのロールに、すべてのリージョンのすべてのクォータに対する Usage 権限と、すべてのネットワーク接続に対する
CreateNetworkLink、List、およびExecute権限を付与します。{ "Statement":[ { "Action":[ "odps:Usage" ], "Effect":"Allow", "Resource":[ "acs:odps:*:regions/*/quotas/*" ] }, { "Action":[ "odps:CreateNetworkLink", "odps:List", "odps:Execute" ], "Effect":"Allow", "Resource":[ "acs:odps:*:networklinks/*" ] } ], "Version":"1" } -
このポリシーは、テナントレベルのロールに、MaxCompute プロジェクト
project_1およびproject_2に対するすべての操作権限を付与します。{ "Statement":[ { "Action":[ "odps:*" ], "Effect":"Allow", "Resource":[ "acs:odps:*:projects/project_1", "acs:odps:*:projects/project_1/*", "acs:odps:*:projects/project_2", "acs:odps:*:projects/project_2/*" ] } ], "Version":"1" }説明この操作を実行できるのは、プロジェクトオーナーまたはプロジェクトの Super_Administrator もしくは Admin ロールを持つユーザーのみです。テナントレベルのロールを使用してプロジェクトオブジェクトに権限を付与した後、その権限を有効にするには、そのロールをプロジェクトに追加する必要があります。ロール権限タブで、ロールレベルをテナントに設定します。次に、対象のロールを見つけ、Actions列の有効をクリックします。