プロジェクト所有者以外のすべてのユーザーを MaxCompute プロジェクトに追加し、MaxCompute のデータ、ジョブ、リソース、関数を管理する権限を付与する必要があります。ここでは、プロジェクト所有者が他のユーザー (MaxCompute の RAM サブアカウントを含む) を MaxCompute に追加、権限付与、削除する方法について説明します。
プロジェクト所有者の場合、このドキュメントを注意深く読むことを推奨します。 一般ユーザーの場合は、関連するプロジェクトへの追加をプロジェクト所有者に申請することを推奨します。 すべてのユーザーが、以降のセクションを読むことを推奨します。
ここに記載されているすべての操作は、コンソール上で実行されます。 Linux の場合は ./bin/odpscmd を実行し、Windows の場合は ./bin/odpscmd.bat を実行します。
ユーザーの追加
この例では、プロジェクト所有者 Alice がユーザーに権限を付与しようとしていて、最初にそのユーザーをプロジェクトに追加する必要があります。 プロジェクトに追加されているユーザーにのみ、権限を付与できます。
add user
add user ALIYUN$odps_test_user@aliyun.com;
add user RAM$ram_test_user;
list users;
コマンドを実行すると、以下の結果が返されます。RAM$alice@aliyun.com:ram_test_user
ALIYUN$odps_test_user@aliyun.com
これは、Alice が RAM を使用して作成した Alibaba Cloud アカウント odps_test_user@aliyun.com とサブアカウント ram_test_user がプロジェクトに追加されたことを示しています。
RAM サブアカウントの追加
- DataWorks を使用します。詳細については、「RAM アカウントの準備」をご参照ください。
- ここで説明されているように、MaxCompute クライアントコマンドを使用します。
注
- MaxCompute では、プライマリアカウント に対して、自分の RAM サブアカウントをプロジェクトに追加することだけを許可します。 他の Alibaba Cloud
アカウントの RAM サブアカウントは許可されません。 したがって、
add user
の実行時、RAM サブアカウントの前にプライマリアカウント名の指定を省略できます。 MaxCompute は、デフォルトで、コマンドを実行するアカウントが、対応するサブアカウントであると判断します。 - MaxCompute は RAM アカウントシステムのみを認識し、RAM 権限付与システムを認識しません。ユーザーは自分の RAM サブアカウントを MaxCompute プロジェクトに追加できますが、MaxCompute は RAM サブアカウントの権限の検証を実行するときに RAM 内の権限制限を考慮しません。
デフォルトでは、MaxCompute プロジェクトは Alibaba Cloud アカウントシステムのみを認識します。 サポートされているアカウントシステムを表示するには、list accountproviders;
コマンドを使用します。 通常は、ALIYUN アカウントのみが表示されます。次に例を示します。odps@ ****>list accountproviders; ALIYUN
注 プロジェクト所有者のみがaccountproviders
に関連する操作の権限を持っています。前のコマンドで示したように、ALIYUN
アカウントシステムしか表示されません。 RAM アカウントのサポートを追加したい場合は、次のようにadd accountprovider ram;
を実行してください。odps@ odps_pd_inter>add accountprovider ram; OK
ユーザーはまだ MaxCompute を操作することができません。 これは、MaxCompute を許容限度内で操作するには、ユーザーに特定の権限を付与する必要があるためです。 詳しくは、「権限付与」をご参照ください。
- MaxCompute では、プライマリアカウント に対して、自分の RAM サブアカウントをプロジェクトに追加することだけを許可します。 他の Alibaba Cloud
アカウントの RAM サブアカウントは許可されません。 したがって、
ユーザ権限付与
ユーザーを追加した後、プロジェクト所有者またはプロジェクト管理者はユーザーに権限付与する必要があります。 ユーザーは、権限を取得した後にのみ操作を実行できます。
MaxCompute は、ACL権限付与、プロジェクト間のリソース共有、およびプロジェクトリソース保護を提供します。以下に一般的なシナリオを 2 つ示します。詳しい情報は、「ACL 権限付与」をご参照ください 。
use prj1; --Open the project prj1
add user aliyun$alice@aliyun.com; --Add the user
grant List, CreateTable, CreateInstance on project prj1 to user aliyun$alice@aliyun.com; --Authorize the user
grant CreateTable on PROJECT $user_project_name to USER ALIYUN$bob@aliyun.com;
--Grant CreateTable permission on project “$user_project_name” to bob@aliyun.com
grant Describe on Table $user_table_name to USER ALIYUN$bob@aliyun.com;
--Grant Describe permission on table “$user_table_name” to bob@aliyun.com
grant Execute on Function $user_function_name to USER ALIYUN$bob@aliyun.com;
--Grant Run permission on function "$user_function_name" to bob@aliyun.com
RAM サブアカウント権限付与
list
accountproviders;
を実行します。コマンドは次のとおりです。odps@ ****>list accountproviders;
ALIYUN、RAM
Describe
権限を付与することができます。 例: odps@ ****>add user ram$bob@aliyun.com:Alice;
OK: DisplayName=RAM$bob@aliyun.com:Alice
odps@ ****>grant Describe on table src to user ram$bob@aliyun.com:Alice;
OK
desc
を実行できます。
- RAM サブアカウント
AccessKeyID
とAccessKeySecret
を作成する方法の詳細は、「RAM ユーザーの作成」をご参照ください。 - MaxCompute でユーザーを追加または削除する方法の詳細は、このドキュメント内の該当する内容をご参照ください。
- ユーザーの権限付与に関する詳細は、「権限付与」をご参照ください。
ユーザーの削除
ユーザーがプロジェクトチームから抜ける場合、Alice はそのユーザーをプロジェクトから削除する必要があります。 プロジェクトから削除された時点で、ユーザーはプロジェクトリソースへのアクセス権限を失います。
remove user
remove user ALIYUN$odps_test_user@aliyun.com;
remove user RAM$ram_test_user;
LIST USERS;
コマンドの実行後、これら 2 つのアカウントが一覧に表示されなくなった場合は、アカウントがプロジェクトから削除されたことを示しています。
RAM サブアカウントの削除
remove user
コマンドを使用して削除できます。 例: odps@ ****>revoke describe on table src from user ram$bob@aliyun.com:Alice;
OK
-- Revoke Alice sub-account permissions
odps@ ****>remove user ram$bob@aliyun.com:Alice;
Confirm to "remove user ram$bob@aliyun.com:Alice;" (yes/no)? yes
OK
-- Remove sub-account
remove accountprovider
で現在のプロジェクトから RAM アカウントシステムを削除することもできます。 odps@ ****>remove accountprovider ram;
Confirm to "remove accountprovider ram;" (yes/no)? yes
OK
odps@ ****>list accountproviders;
ALIYUN