MaxComputeでは、ロールを使用して、新しいバージョンのMaxComputeコンソールでRAMユーザーとRAMロールにMaxCompute権限を付与できます。 このトピックでは、さまざまな種類の権限を付与する方法とポリシーの例について説明します。
プロジェクトレベルの管理権限の付与
MaxComputeのプロジェクトレベルの管理権限には、プロジェクトのセキュリティ設定、プロジェクトレベルのユーザーとロールの権限管理、パッケージ管理、ラベルベースのアクセス制御、期限切れの権限の許可に関連する権限が含まれます。 詳細については、「プロジェクト管理の権限」をご参照ください。
手順
MaxComputeコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、ワークエリア>プロジェクト管理 を選択します。
プロジェクトページ、目的のプロジェクトを見つけて、アクション列の管理をクリックします。
[プロジェクト設定] ページで、[ロール権限] タブをクリックします。 [ロールの権限] タブで、管理者ロールを作成するか、ビジネス要件に基づいて既存の管理者ロールの権限を変更します。
説明デフォルトでは、プロジェクト内のロールを管理する権限を持つのはAlibaba Cloudアカウントのみです。 RAMユーザーまたはRAMロールを使用してプロジェクトのロールを管理する場合は、RAMユーザーまたはRAMロールにプロジェクトを管理する権限を付与する必要があります。
管理者ロールの作成
[プロジェクト設定] ページで、[ロール権限] タブをクリックします。
[ロール権限] タブで、[プロジェクトレベルのロールの作成] をクリックします。
[ロールの作成] ダイアログボックスで、ロール名を設定し、[ロールの種類] ドロップダウンリストから [管理者] を選択し、[権限付与方法のポリシー] を選択し、[ポリシーベースのアクセス制御] フィールドにポリシードキュメントを入力します。
[OK] をクリックします。
既存の管理者ロールの権限の変更
[プロジェクト設定] ページで、[ロール権限] タブをクリックします。
[プロジェクト設定] ページの [ロール権限] タブで、目的のロールを見つけ、[操作] 列の [ロールの編集] をクリックします。 [ロールの編集] ダイアログボックスで、ロールのポリシードキュメントを変更します。
[OK] をクリックします。
アクション要素とリソース要素で指定できる項目の詳細については、「プロジェクト管理の権限」をご参照ください。 このトピックでは、管理モジュールに基づくポリシーベースのアクセス制御の例を示します。
目的のロールを検索し、[操作] 列の [メンバーの管理] をクリックします。 [メンバーの管理] ダイアログボックスでは、このロールが割り当てられているユーザーを表示したり、ユーザーにロールを割り当てたり、ユーザーからロールの権限を取り消すことができます。
ポリシーの例
ほとんどの場合、モジュールの管理権限には、リソースに対するさまざまな操作と権限が含まれます。 次のサンプルコードでは、アスタリスク (
*
) をワイルドカードとして使用して、一度にオブジェクトのグループに権限を付与します。アクション要素とリソース要素で指定できる項目の詳細については、「プロジェクト管理の権限」をご参照ください。
次のサンプルコードの
project_name
を、権限を付与するMaxComputeプロジェクトの名前に置き換える必要があります。
例1: プロジェクトのロールを管理できるポリシー
{ "Statement": [ { "Action": [ "odps:*" ], "Effect": "Allow", "Resource": [ "acs:odps:*:projects/project_name/authorization/roles" 、 "acs:odps:*:projects/project_name/authorization/roles/*/*" ] } ], "バージョン": "1" }
例2: プロジェクト内のパッケージを管理できるポリシー
{ "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/*/*/*" ] } ], "バージョン": "1" }
説明プロジェクトの
リスト
権限は、MaxComputeコンソールでのパッケージ管理に必要です。 したがって、ユーザーがプロジェクト内のパッケージを管理する場合は、そのユーザーにプロジェクトに対するリスト
権限を付与する必要があります。 MaxComputeコンソールで権限を付与する方法の詳細については、「オブジェクトに対するプロジェクトレベルの操作権限の付与」をご参照ください。 コマンドを使用して権限を付与する方法の詳細については、「コマンドを使用してユーザー権限を管理する」をご参照ください。例3: プロジェクトのセキュリティ設定を変更できるポリシー
{ "ステートメント":[ { "Action":[ "odps:*" ], "効果":"許可" 、 "Resource":[ "acs:odps:*:projects/project_name/authorization/configuration /*" ] } ], "バージョン":"1" }
例4: プロジェクト内のユーザーを管理できるポリシー
{ "ステートメント":[ { "Action":[ "odps:*" ], "効果":"許可" 、 "Resource":[ "acs:odps:*:projects/project_name/authorization/users" ] } ], "バージョン":"1" }
例5: プロジェクトのすべての管理操作を実行できるポリシー
{ "ステートメント":[ { "Action":[ "odps:*" ], "効果":"許可" 、 "Resource":[ "acs:odps:*:projects/project_name/authorization/*" ] } ], "バージョン":"1" }
オブジェクトに対するプロジェクトレベルの操作権限の付与
オブジェクトに対するプロジェクトレベルの操作権限には、プロジェクト、テーブル、関数、リソース、およびプロジェクト内のオブジェクトに対する、CreateTable、CreateInstance、SelectTableなどの操作権限が含まれます。 詳細については、「プロジェクトおよびプロジェクト内のオブジェクトに対する権限」をご参照ください。
手順
MaxComputeコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、ワークエリア>プロジェクト管理 を選択します。
プロジェクトページ、目的のプロジェクトを見つけて、アクション列の管理をクリックします。
[プロジェクト設定] ページのロール権限タブで、リソースロールを作成するか、ビジネス要件に基づいて既存のリソースロールの権限を変更します。
説明デフォルトでは、プロジェクト内のロールを管理する権限を持つのはAlibaba Cloudアカウントのみです。 RAMユーザーまたはRAMロールを使用してプロジェクトのロールを管理する場合は、RAMユーザーまたはRAMロールにプロジェクトを管理する権限を付与する必要があります。
リソースロールの作成
[プロジェクト設定] ページで、[ロール権限] タブをクリックします。
[ロール権限] タブで、[プロジェクトレベルのロールの作成] をクリックします。
[ロールの作成] ダイアログボックスで、ロール名を設定し、[ロールの種類] ドロップダウンリストから [リソース] を選択し、[権限付与方法のACL] または [ポリシー] を選択します。 [権限付与方法のポリシー] を選択した場合、[ポリシーベースのアクセス制御] フィールドにポリシードキュメントを入力します。
[OK] をクリックします。
既存のリソースロールの権限を変更する
[プロジェクト設定] ページで、[ロール権限] タブをクリックします。
[プロジェクト設定] ページの [ロール権限] タブで、目的のロールを見つけ、[操作] 列の [ロールの編集] をクリックします。 [ロールの編集] ダイアログボックスで、ACLベースのアクセス制御またはポリシーベースのアクセス制御の設定を変更します。
[OK] をクリックします。
権限の詳細については、「プロジェクトおよびプロジェクト内のオブジェクトに対する権限」をご参照ください。 このトピックでは、MaxComputeコンソールでACLベースのアクセス制御とポリシーベースのアクセス制御を設定する方法の例を示します。 詳細については、「プロジェクトレベルの管理権限の付与」をご参照ください。
目的のロールを検索し、[操作] 列の [メンバーの管理] をクリックします。 [メンバーの管理] ダイアログボックスでは、このロールが割り当てられているユーザーを表示したり、ユーザーにロールを割り当てたり、ユーザーからロールの権限を取り消すことができます。
例
プロジェクトレベルの操作権限のアクションとオブジェクトの詳細については、「プロジェクトおよびプロジェクト内のオブジェクトに対する権限」をご参照ください。
次のサンプルコードの
project_name
を、権限を付与するMaxComputeプロジェクトの名前に置き換える必要があります。
例1: ACLベースのアクセス制御方法を使用して、プロジェクトに対するCreateTable、CreateInstance、およびList権限と、プロジェクト内のすべてのテーブルに対するDescribeおよびSelect権限をリソースロールに付与します。
プロジェクトに対するCreateTable、CreateInstance、およびList権限をロールに付与します。 リスト権限は、プロジェクト内のすべてのオブジェクトを表示するために使用されます。
プロジェクト内のすべてのテーブルに対して、[説明] および [選択] 権限をロールに付与します。 Describe権限はテーブルのメタデータの読み取りに使用され、Select権限はテーブルのデータの読み取りに使用されます。
説明[OK] をクリックした後、進行状況バーまたは [ロールの編集] ダイアログボックスを閉じないでください。 そうでなければ、認可を終了することができる。
例2: ポリシーベースのアクセス制御を使用して、プロジェクトに対するCreateTable、CreateInstance、およびList権限と、プロジェクト内のすべてのテーブルに対するDescribeおよびSelect権限をリソースロールに付与します。
{ "Statement": [{ "Action": ["odps:CreateTable" 、"odps:CreateInstance" 、"odps:List"] 、 "Effect": "Allow", "Resource": ["acs:odps:*:projects/project_name"]} 、 { "Action": ["odps:Describe" 、"odps:Select"] 、 "Effect": "Allow", "リソース": ["acs:odps:*:projects/project_name/tables/*"]}] 、 "バージョン": "1"}
例3: ポリシーベースのアクセス制御を使用して、プロジェクト内で名前が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", "リソース": ["acs:odps:*:projects/project_name/functions/*"]} 、 { "アクション": ["odps: ドロップ"] 、 "Effect": "Deny", "リソース": ["acs:odps:*:projects/project_name/tables/*"]}] 、 "バージョン": "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/*"]} 、 { "アクション": ["odps: ドロップ"] 、 "Effect": "Deny", "Resource": ["acs:odps:*:projects/project_name/schemas/*/tables/*"]}] 、 "バージョン": "1"}
テナントレベルの管理権限の付与
テナントレベルの管理権限とは、テナントレベルのユーザーおよびロールの権限の管理を指します。 テナントレベルの管理権限には、テナントの追加または削除、テナントレベルの役割の追加または削除、テナントレベルのユーザーと役割およびその権限の表示、テナントレベルの役割のユーザーへの割り当て、テナントレベルの役割のユーザーからの取り消し、テナントレベルの役割のプロジェクトへの追加、およびテナントレベルの役割のプロジェクトからの削除が含まれます。
テナントレベルのSuper_AdministratorまたはAdminロールが割り当てられているAlibaba CloudアカウントまたはRAMユーザーのみが、テナントレベルのロールに基づいてアクセス制御を実行できます。
RAMユーザーまたはRAMロールに管理権限を付与する場合は、Alibaba Cloudアカウントを使用して、Super_AdministratorまたはAdminロールをRAMユーザーまたはRAMロールに割り当てる必要があります。 テナントレベルのSuper_AdministratorロールとAdminロールには、複数の管理権限があります。 作業は慎重に行ってください。 権限の詳細については、「ロールの計画」をご参照ください。 テナントレベルの役割の詳細については、「テナントレベルの役割に基づくアクセス制御の実行」をご参照ください。
MaxComputeコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、テナント管理>ユーザー管理 を選択します。
[ユーザー] ページで、目的のユーザーを見つけ、[操作] 列の [ロールの変更] をクリックします。 次に、[ロールの編集] ダイアログボックスで、[使用可能なロール] セクションから必要なロールを選択して、ユーザーにロールを割り当てます。
オブジェクトに対するテナントレベルの操作権限の付与
オブジェクトに対するテナントレベルの操作権限には、クォータやネットワーク接続など、テナントレベルのオブジェクトに対する操作権限が含まれます。 たとえば、[使用]
権限を付与してクォータを使用したり、[CreateNetworkLink]
権限を付与してネットワーク接続を作成したりできます。 オブジェクトに対するテナントレベルの操作権限を使用すると、1つのアカウントを使用して複数のプロジェクトを管理できます。 これにより、権限管理が容易になります。 テナントレベルの役割の詳細については、「テナントレベルの役割に基づくアクセス制御の実行」をご参照ください。
手順
MaxComputeコンソールにログインします。 上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、テナント管理>ロール管理 を選択します。
ロールページで、テナントレベルのロールを作成するか、既存のカスタムロールの権限を管理します。
説明テナントレベルのSuper_AdministratorまたはAdminロールが割り当てられているAlibaba CloudアカウントまたはRAMユーザーのみが、テナントレベルのロールに基づいてアクセス制御を実行できます。
テナントレベルの役割を追加する
[ロール] ページで、[ロールの追加] をクリックします。
[ロールの追加] ダイアログボックスで、パラメーターを設定します。 下表に、各パラメーターを説明します。
パラメーター
説明
ロール名
追加するロールの名前。 名前はAlibaba Cloudアカウント内で一意である必要があります。 名前は文字で始まる必要があり、文字、アンダースコア (_) 、および数字のみを使用できます。 名前は6 ~ 64文字である必要があります。
ポリシーの内容
ロールにアタッチするポリシー。 提供されているポリシーテンプレートに基づいて、ポリシーのコードを記述できます。
[OK] をクリックします。
既存のテナントレベルのロールの権限を変更する
[ロール] ページで目的のロールを見つけ、[操作] 列の [権限の管理] をクリックします。 [ロールの編集] ダイアログボックスで、ポリシードキュメントを変更します。
[OK] をクリックします。
[ユーザー] ページで、目的のユーザーを見つけ、[操作] 列の [ロールの変更] をクリックします。 次に、[ロールの編集] ダイアログボックスで、[使用可能なロール] セクションから必要なロールを選択して、ユーザーにロールを割り当てます。
ポリシーの例
次のサンプルコードでは、アスタリスク (
*
) をワイルドカードとして使用して、一度にオブジェクトのグループに権限を付与します。アクション要素とリソース要素で指定できる項目の詳細については、「テナント内のオブジェクトに対する権限」をご参照ください。
例1: テナントレベルのロールに、すべてのリージョンのすべてのクォータに対する使用権限と、すべてのネットワーク接続に対する
CreateNetworkLink
、List
、Execute
権限を付与します。{ "ステートメント":[ { "Action":[ "odps: 使用法" ], "効果":"許可" 、 "Resource":[ "acs:odps:*:regions/*/quotas/*" ] }, { "Action":[ "odps:CreateNetworkLink" 、 "odps: リスト" 、 "odps:Execute" ], "効果":"許可" 、 "Resource":[ "acs:odps:*:networklinks/*" ] } ], "バージョン":"1" }
例2: テナントレベルのロールに、MaxComputeプロジェクト
project_1
およびproject_2
のすべての操作権限を付与します。{ "ステートメント":[ { "Action":[ "odps:*" ], "効果":"許可" 、 "Resource":[ "acs:odps:*:projects/project_1" 、 "acs:odps:*:projects/project_1/*" 、 "acs:odps:*:projects/project_2" 、 "acs:odps:*:projects/project_2/*" ] } ], "バージョン":"1" }
説明テナントレベルのロールを使用してプロジェクト内の特定のオブジェクトに権限を付与した後、権限を有効にするには、テナントレベルのロールをプロジェクトに追加する必要があります。 プロジェクトにテナントレベルのロールを追加できるのは、プロジェクトの所有者またはプロジェクトのSuper_AdministratorまたはAdminロールが割り当てられているユーザーのみです。 テナントレベルのロールを有効にするには、次の操作を実行する必要があります。プロジェクト設定ページの [ロール権限] タブで、[ロールレベル] ドロップダウンリストから [テナント] を選択し、目的のロールを見つけて、[操作] 列の [有効にする] をクリックします。