複数のユーザーが MaxCompute プロジェクトを管理する必要がある場合、プロジェクトのオーナー以外のユーザーは、MaxCompute プロジェクトに追加され、MaxCompute 内のテーブル、リソース、関数、またはジョブインスタンスを管理するための関連する権限が付与される必要があります。この Topic では、MaxCompute で実行できるユーザー管理操作について説明します。
背景情報
MaxCompute プロジェクトが作成された後、プロジェクトオーナーと MaxCompute の組み込みロールが割り当てられたユーザーのみが MaxCompute プロジェクトにアクセスできます。他のユーザーがプロジェクトで共同作業できるようにするには、プロジェクトオーナーがユーザーを MaxCompute プロジェクトに追加する必要があります。
次の表は、MaxCompute でユーザーを管理するために行うことができるユーザータイプと操作について説明しています。
カテゴリ | タイプ | 操作 | 説明 | 実行者 | 操作プラットフォーム |
プロジェクトレベル | Alibaba Cloud アカウント | 別の Alibaba Cloud アカウントを MaxCompute プロジェクトに追加します。 | プロジェクトオーナー、または MaxCompute の組み込みロールが割り当てられたユーザー | ||
MaxCompute プロジェクトから Alibaba Cloud アカウントを削除します。 | |||||
RAM ユーザー | MaxCompute プロジェクトが属する Alibaba Cloud アカウントの RAM ユーザーを MaxCompute プロジェクトに追加します。 | ||||
MaxCompute プロジェクトから RAM ユーザーを削除します。 | |||||
RAM ロール | Resource Access Management(RAM)コンソールで作成された RAM ロールを MaxCompute プロジェクトに追加します。 | ||||
MaxCompute プロジェクトから RAM ロールを削除します。 | |||||
MaxCompute プロジェクトに追加されているユーザーを表示します。 |
Alibaba Cloud アカウントを追加する(プロジェクトレベル)
プロジェクトオーナーが別の Alibaba Cloud アカウントに権限を付与する場合、プロジェクトオーナーは MaxCompute プロジェクトに Alibaba Cloud アカウントを追加する必要があります。MaxCompute プロジェクトに追加されたユーザーのみに権限を付与できます。
構文
add user ALIYUN$<account_id>;
パラメーター
パラメーター
必須
説明
account_id
はい
Alibaba Cloud アカウント ID。たとえば、
5527xxxxxxxx5788
は、Alibaba Cloud アカウントodps_test_user@aliyun.com
の ID です。例
ID が
5527xxxxxxxx5788
の Alibaba Cloud アカウントodps_test_user@aliyun.com
を MaxCompute プロジェクト test_project_a に追加します。ステートメントの例:add user ALIYUN$5527xxxxxxxx5788;
Alibaba Cloud アカウントを削除する(プロジェクトレベル)
ユーザーが MaxCompute プロジェクトチームを離れる場合、ユーザーをプロジェクトから削除する必要があります。ユーザーが削除されると、ユーザーはプロジェクトのリソースにアクセスするための権限を失います。
構文
remove user ALIYUN$<account_id>;
注意事項
ロールが割り当てられているユーザーを削除する前に、ユーザーからロールを取り消す必要があります。ユーザーに割り当てられているロールの情報の表示方法については、「権限をクエリする」をご参照ください。ユーザーからロールを取り消す方法については、「ユーザーからロールを取り消す」をご参照ください。
ユーザーが削除された後も、ユーザーに付与された権限は保持されます。ユーザーがプロジェクトに再度追加されると、ユーザーの過去のアクセス権限が再び有効になります。削除されたユーザーの残留権限情報をクリアする方法については、「削除されたユーザーの残留権限情報を完全にクリアする」をご参照ください。
パラメーター
パラメーター
必須
説明
account_id
はい
5527xxxxxxxx5788
などの Alibaba Cloud アカウントの ID。list users;
コマンドを実行して、MaxCompute クライアントを使用して ID を取得できます。例
例 1:ID が
5527xxxxxxxx5788
の Alibaba Cloud アカウントodps_test_user@aliyun.com
を MaxCompute プロジェクト test_project_a から削除します。この例では、Alibaba Cloud アカウント odps_test_user@aliyun.com にはロールが割り当てられていません。ステートメントの例:remove user ALIYUN$5527xxxxxxxx5788;
例 2:ID が
5527xxxxxxxx5788
の Alibaba Cloud アカウントodps_test_user@aliyun.com
を MaxCompute プロジェクト test_project_a から削除します。この例では、Alibaba Cloud アカウント odps_test_user@aliyun.com には Worker という名前のロールが割り当てられています。ステートメントの例:-- Alibaba Cloud アカウント odps_test_user@aliyun.com から Worker ロールを取り消します。 revoke Worker from ALIYUN$5527xxxxxxxx5788; -- Alibaba Cloud アカウント odps_test_user@aliyun.com を削除します。 remove user ALIYUN$5527xxxxxxxx5788;
RAM ユーザーを追加する(プロジェクトレベル)
プロジェクトオーナーが RAM ユーザーに権限を付与する場合、プロジェクトオーナーは MaxCompute プロジェクトに RAM ユーザーを追加する必要があります。MaxCompute プロジェクトに追加された RAM ユーザーのみに権限を付与できます。
構文
add user RAM$[<account_id>:]<RAM user UID>;
制限
MaxCompute プロジェクトには、自分の Alibaba Cloud アカウントに属する RAM ユーザーのみを追加できます。別の Alibaba Cloud アカウントの RAM ユーザーを MaxCompute プロジェクトに追加する場合は、RAM ユーザーが属する Alibaba Cloud アカウントを MaxCompute プロジェクトに追加する必要があります。次に、新しく追加された Alibaba Cloud アカウントを使用して MaxCompute プロジェクトに移動し、RAM ユーザーを MaxCompute プロジェクトに追加します。
RAM ユーザーを MaxCompute プロジェクトに追加する場合は、MaxCompute プロジェクトが RAM アカウントシステムをサポートしていることを確認する必要があります。
list accountproviders;
コマンドを実行して、MaxCompute プロジェクトが RAM アカウントシステムをサポートしているかどうかを確認できます。クエリ結果にRAM
が表示されない場合は、add accountprovider ram;
コマンドを実行して、MaxCompute プロジェクトに RAM アカウントシステムを追加できます。ユーザーが削除された後も、ユーザーに付与された権限は保持されます。ユーザーがプロジェクトに再度追加されると、ユーザーの過去のアクセス権限が再び有効になります。削除されたユーザーの残留権限情報をクリアする方法については、「削除されたユーザーの残留権限情報を完全にクリアする」をご参照ください。
注意事項
MaxCompute プロジェクトは RAM アカウントシステムのみを認識し、RAM 権限システムは認識しません。Alibaba Cloud アカウントの RAM ユーザーが MaxCompute プロジェクトに追加されると、MaxCompute はこれらの RAM ユーザーを認証しますが、RAM の権限定義は考慮しません。
パラメーター
パラメーター
必須
説明
account_id
いいえ
RAM ユーザーが属する Alibaba Cloud アカウントの ID。たとえば、
5527xxxxxxxx5788
は、Alibaba Cloud アカウントodps_test_user@aliyun.com
の ID です。RAM user UID
はい
RAM ユーザーの UID。
UID を取得するには、次の手順を実行します。RAM コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。[ユーザー] ページで、RAM ユーザーを見つけ、RAM ユーザーのログイン名をクリックします。表示されるページの [基本情報] セクションで、UID を確認します。
例
UID が
2763xxxxxxxxxx1649
の RAM ユーザーRAM$odps_test_user@aliyun.com:ram_test
を MaxCompute プロジェクト test_project_a に追加します。RAM ユーザーは、ID が 5527xxxxxxxx5788 の Alibaba Cloud アカウントに属しています。ステートメントの例:add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
RAM ユーザーを削除する(プロジェクトレベル)
RAM ユーザーが MaxCompute プロジェクトチームを離れる場合、RAM ユーザーをプロジェクトから削除する必要があります。ユーザーが削除されると、ユーザーはプロジェクトのリソースにアクセスするための権限を失います。
構文
remove user RAM$[<account_id>:]<RAM user UID>;
注意事項
ロールが割り当てられている RAM ユーザーを削除する前に、ユーザーからロールを取り消す必要があります。そうしないと、RAM ユーザーの情報がプロジェクトに残ります。ユーザーをクエリすると、
p4_xxxxxxxxxxxxxxxxxxxx
が表示され、情報を削除できません。ただし、プロジェクトは通常どおり使用できます。ユーザーに割り当てられているロールの情報の表示方法については、「権限をクエリする」をご参照ください。ユーザーからロールを取り消す方法については、「ユーザーからロールを取り消す」をご参照ください。ユーザーが削除された後も、ユーザーに付与された権限は保持されます。ユーザーがプロジェクトに再度追加されると、ユーザーの過去のアクセス権限が再び有効になります。削除されたユーザーの残留権限情報をクリアする方法については、「削除されたユーザーの残留権限情報を完全にクリアする」をご参照ください。
パラメーター
パラメーター
必須
説明
account_id
いいえ
RAM ユーザーが属する Alibaba Cloud アカウントの ID。たとえば、
5527xxxxxxxx5788
は、Alibaba Cloud アカウントodps_test_user@aliyun.com
の ID です。RAM user UID
はい
RAM ユーザーの UID。
UID を取得するには、次の手順を実行します。RAM コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。[ユーザー] ページで、RAM ユーザーを見つけ、RAM ユーザーのログイン名をクリックします。表示されるページの [基本情報] セクションで、UID を確認します。
例
例 1:RAM ユーザー
RAM$odps_test_user@aliyun.com:ram_test
(UID は2763xxxxxxxxxx1649
です)を MaxCompute プロジェクト test_project_a から削除します。この例では、RAM ユーザー RAM$odps_test_user@aliyun.com:ram_test は ID が 5527xxxxxxxx5788 の Alibaba Cloud アカウントに属し、ロールは割り当てられていません。サンプル文:remove user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
例 2: UID が
2763xxxxxxxxxx1649
の RAM ユーザーRAM$odps_test_user@aliyun.com:ram_test
を MaxCompute プロジェクト test_project_a から削除します。この例では、RAM ユーザー RAM$odps_test_user@aliyun.com:ram_test は ID が 5527xxxxxxxx5788 の Alibaba Cloud アカウントに属しており、Worker という名前のロールが割り当てられています。ステートメントの例:-- RAM ユーザー RAM$odps_test_user@aliyun.com:ram_test から Worker ロールを取り消します。 revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649; -- RAM ユーザー RAM$odps_test_user@aliyun.com:ram_test を削除します。 remove user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649; -- RAM ユーザーを今後使用しない場合は、RAM アカウントシステムを削除します。 remove accountprovider ram;
RAM ロールを追加する(プロジェクトレベル)
RAM コンソールで RAM ロールを作成し、RAM ロールにアタッチされているポリシーを変更できます。その後、RAM ロールを MaxCompute プロジェクトに追加できます。プロジェクト内の RAM ユーザーは、RAM ロールをアシュームして操作を実行できます。
RAM ロールは、「ロールプランニング」で説明されている MaxCompute の組み込みロールまたはカスタムロールとは異なります。代わりに、RAM ロールは RAM コンソールのロールです。RAM ロールの使用方法については、「RAM ロールをアシュームする」をご参照ください。
構文
add user `RAM$<account_id>:role/<RAM role name>`;
注意事項
上記のコマンドでは、グレイブアクセント
(`)
が必須です。パラメーター
パラメーター
必須
説明
account_id
はい
RAM ロールが属する Alibaba Cloud アカウントの ID。たとえば、Alibaba Cloud アカウント
odps_test_user@aliyun.com
の ID である5527xxxxxxxx5788
など。RAM role name
はい
RAM ロールの名前。
名前を取得するには、次の手順を実行します。RAM コンソール にログインします。左側のナビゲーションウィンドウで、 を選択します。[ロール] ページで、RAM ロールの名前を確認します。
例
RAM ロール
ram_role
を MaxCompute プロジェクト test_project_a に追加します。ステートメントの例:add user `RAM$5527xxxxxxxx5788:role/ram_role`;
関連操作
後続の操作は DataWorks で実行する必要があります。そのため、RAM ロールにアタッチされているポリシーを変更する際には、RAM ロールを DataWorks に割り当てる必要があります。これにより、DataWorks で定期的なスケジューリングジョブを MaxCompute にサブミットできます。
RAM ロールを削除する(プロジェクトレベル)
MaxCompute プロジェクトから RAM ロールを削除する必要がある場合は、次の手順を実行します。
構文
remove user `RAM$<account_id>:role/<RAM ロール名>`; // ユーザー `RAM$<account_id>:role/<RAM ロール名>` を削除します
注意事項
前のコマンドにあるグレイブアクセント
(`)
は必須です。パラメーター
パラメーター
必須
説明
account_id
はい
RAM ロールが属する Alibaba Cloud アカウントの ID。たとえば、Alibaba Cloud アカウント
odps_test_user@aliyun.com
の ID である5527xxxxxxxx5788
など。RAM role name
はい
RAM ロールの名前。
RAM コンソール にログインし、左側のナビゲーションバーで を選択すると、[ロール] ページで名前を取得できます。
例
ram_role
RAM ロール を MaxCompute プロジェクト test_project_a から削除します。ステートメントの例:remove user `RAM$5527xxxxxxxx5788:role/ram_role`; // ユーザー `RAM$5527xxxxxxxx5788:role/ram_role` を削除します
ユーザーリストを表示する(プロジェクトレベル)
MaxCompute プロジェクトに追加されたユーザーを表示できます。
構文
list users; // ユーザーを一覧表示します。
例
MaxCompute プロジェクトに追加されているユーザーを表示します。サンプル文:
list users; // ユーザーを一覧表示します。
次の結果が返されます。
ALIYUN$5527xxxxxxxx5788 // 国際向けの結果 RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649 RAM$5527xxxxxxxx5788:role/ram_role
追加情報
ユーザー計画が完了したら、ビジネス要件に基づいてユーザーに権限を付与できます。詳細については、「コマンドを使用してユーザー権限を管理する」をご参照ください。