複数のユーザーが MaxCompute プロジェクトで共同作業できるようにするには、それらをプロジェクトに追加し、関連する権限を付与します。プロジェクトに追加されたユーザーのみが、そのテーブル、リソース、関数、およびジョブインスタンスへのアクセスを許可されます。
デフォルトでは、プロジェクト所有者と MaxCompute の組み込みロールを持つユーザーのみがプロジェクトにアクセスできます。
前提条件
開始する前に、以下があることを確認してください。
MaxCompute プロジェクト
プロジェクト所有者アクセス、または MaxCompute の組み込みロールの割り当て
サポートされているユーザータイプ
MaxCompute は、プロジェクトレベルで 3 種類の ID タイプをサポートしています。
| タイプ | 使用するタイミング |
|---|---|
| Alibaba Cloud アカウント | 別の Alibaba Cloud アカウントにアクセスを付与します。通常、これは自身の Alibaba Cloud アカウントを持つピアチームまたは外部協力者です。 |
| RAM ユーザー | 自身の Alibaba Cloud アカウントの下のサブユーザーにアクセスを付与します。通常、これはチームの開発者またはオペレーターです。 |
| RAM ロール | Resource Access Management (RAM) ロールにアクセスを付与します。これは、DataWorks から定期的なスケジューリングジョブを送信するなどのサービス間アクセスに役立ちます。 |
ここで追加される RAM ロールは、Resource Access Management (RAM) コンソールで定義されたロールであり、MaxCompute の組み込みロールやカスタムロールではありません。MaxCompute ロールの詳細については、「ロールの計画」をご参照ください。
MaxCompute は RAM アカウントシステムを認識しますが、RAM 権限システムは認識しません。RAM ユーザーがプロジェクトに追加されると、MaxCompute はそれらを認証しますが、RAM からの権限定義は適用しません。
操作
プロジェクト所有者または MaxCompute の組み込みロールを持つユーザーは、MaxCompute クライアント、MaxCompute Studio、または DataWorks コンソールを使用して、次の SQL コマンドを実行できます。
| 操作 | 説明 |
|---|---|
| Alibaba Cloud アカウントを追加する | 別の Alibaba Cloud アカウントをプロジェクトに追加します |
| Alibaba Cloud アカウントを削除する | プロジェクトから Alibaba Cloud アカウントを削除します |
| RAM ユーザーを追加する | プロジェクトに RAM ユーザーを追加します |
| RAM ユーザーを削除する | プロジェクトから RAM ユーザーを削除します |
| RAM ロールを追加する | プロジェクトに RAM ロールを追加します |
| RAM ロールを削除する | プロジェクトから RAM ロールを削除します |
| ユーザーをリスト表示する | プロジェクトに追加されたすべてのユーザーをリスト表示します |
ユーザーを削除しても、その権限は保持されます。後でユーザーがプロジェクトに再度追加された場合、それらの権限は再アクティブ化されます。残存する権限をクリアするには、「コマンドを使用したユーザー権限の管理」をご参照ください。
ユーザーカテゴリ | ユーザータイプ | 操作 | 説明 | オペレーターロール | 操作ポータル |
プロジェクトレベル (プロジェクト) | Alibaba Cloud アカウント | 別の Alibaba Cloud アカウントを MaxCompute プロジェクトに追加します。 | プロジェクト所有者、または MaxCompute の組み込みロールが割り当てられているユーザー。 | ||
MaxCompute プロジェクトに追加されている Alibaba Cloud アカウントを削除します。 | |||||
RAM ユーザー | MaxCompute プロジェクトが属する Alibaba Cloud アカウントの RAM ユーザーをプロジェクトに追加します。 | ||||
MaxCompute プロジェクトに追加されている RAM ユーザーを削除します。 | |||||
RAM ロール | Resource Access Management (RAM) コンソールで作成された RAM ロールを MaxCompute プロジェクトに追加します。 | ||||
MaxCompute プロジェクトに追加されている RAM ロールを削除します。 | |||||
MaxCompute プロジェクトに追加されているユーザーを表示します。 | |||||
Alibaba Cloud アカウントの追加
構文
remove user ALIYUN$<account_id>;パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
account_id | はい | RAM ロールが属する Alibaba Cloud アカウント識別子。テナントのプロパティで [アカウント ID の使用] スイッチが有効になっている場合、アカウントは ID を使用します。それ以外の場合、アカウントはログイン名を使用します。例: |
account_id | いいえ | RAM ユーザーが属する Alibaba Cloud アカウント識別子です。テナントのプロパティで [アカウント ID の使用] スイッチが有効になっている場合、アカウントは ID を使用します。それ以外の場合、アカウントはログイン名を使用します。たとえば、 |
RAM_user_UID | はい | RAM ユーザーの UID。 RAM ユーザーの UID。Resource Access Management (RAM) コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。対象ユーザーをクリックします。[User Basic Information] セクションで UID を取得できます。 |
account_id | はい | Alibaba Cloud アカウント識別子。テナントのプロパティで [アカウント ID の使用] スイッチが有効になっている場合、アカウントは ID を使用します。それ以外の場合、アカウントはログイン名を使用します。たとえば、 アカウント識別子を取得するには、MaxCompute クライアントで |
account_id | はい | Alibaba Cloud アカウント識別子です。テナントのプロパティで [アカウント ID の使用] スイッチが有効になっている場合、アカウントはこの ID を使用します。それ以外の場合、アカウントはログイン名を使用します。たとえば、 |
account_id | はい | Alibaba Cloud アカウントの ID (例: odps_test_user@aliyun.com の ID である 5527xxxxxxxx5788)。 |
例
Alibaba Cloud アカウント odps_test_user@aliyun.com (ID: 5527xxxxxxxx5788) をプロジェクト test_project_a に追加します。
「Use Account ID」が有効な場合
「Use Account ID」が有効な場合
add user ALIYUN$5527xxxxxxxx5788;「Use Account ID」が無効な場合
「Use Account ID」が無効な場合
「Use Account ID」が無効な場合
Alibaba Cloud アカウントの削除
構文
remove user ALIYUN$<account_id>;パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
account_id | はい | Alibaba Cloud アカウントの ID。ID を取得するには、MaxCompute クライアントで list users; を実行します。 |
アカウントにロールが割り当てられている場合、アカウントを削除する前にロールを取り消してください。そうしないと、残存するロール情報がプロジェクトに残ります。どのロールが割り当てられているかを確認するには、「権限のクエリ」をご参照ください。ロールを取り消すには、「ユーザーからのロールの取り消し」をご参照ください。
例
例 1: odps_test_user@aliyun.com を削除します (ロールは割り当てられていません)。
「Use Account ID」が有効な場合
「Use Account ID」が有効な場合
remove user ALIYUN$5527xxxxxxxx5788;「Use Account ID」が無効な場合
「Use Account ID」が無効な場合
例 2: odps_test_user@aliyun.com を削除します (ロール Worker が割り当てられています)。
-- まず Worker ロールを取り消します。
revoke Worker from ALIYUN$5527xxxxxxxx5788;
-- 次にユーザーを削除します。
remove user ALIYUN$5527xxxxxxxx5788;RAM ユーザーの追加
構文
remove user `RAM$<account_id>:role/<RAM_role_name>`;add user RAM$[<account_id>:]<RAM user UID>;パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
account_id | いいえ | RAM ユーザーが属する Alibaba Cloud アカウントの ID です。例:5527xxxxxxxx5788。 |
RAM user UID | はい | RAM ユーザーの UID です。UID を取得するには、RAM コンソールにログインし、[ID] > [ユーザー] の順に選択します。対象 RAM ユーザーのログイン名をクリックし、[基本情報] セクションで UID を確認してください。 |
制限事項
自身の Alibaba Cloud アカウントに属する RAM ユーザーのみを直接追加できます。別の Alibaba Cloud アカウントから RAM ユーザーを追加するには、まずそのアカウントをプロジェクトに追加し (「Alibaba Cloud アカウントの追加」をご参照ください)、次にそのアカウントでログインして RAM ユーザーを追加します。
プロジェクトは RAM アカウントシステムをサポートしている必要があります。
list accountproviders;を実行して確認します。RAMがリストにない場合、add accountprovider ram;を実行して有効にします。
例
アカウント 5527xxxxxxxx5788 の下の RAM ユーザー ram_test (UID: 2763xxxxxxxxxx1649) をプロジェクト test_project_a に追加します。
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;「Use Account ID」が無効な場合
RAM ユーザーの削除
構文
remove user RAM$[<account_id>:]<RAM user UID>;パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
account_id | いいえ | RAM ユーザーを所有する Alibaba Cloud アカウントの ID (例: 5527xxxxxxxx5788)。 |
RAM user UID | はい | RAM ユーザーの UID。UID を取得するには、Resource Access Management (RAM) コンソールにログインし、[Identities] > [Users] に移動し、RAM ユーザーのログイン名をクリックして、[Basic Information] セクションで UID を表示します。 |
RAM ユーザーにロールが割り当てられている場合、ユーザーを削除する前にロールを取り消してください。この手順をスキップすると、エントリ p4_xxxxxxxxxxxxxxxxxxxx がプロジェクトに残存し、削除できなくなります。ただし、プロジェクトは正常に機能し続けます。どのロールが割り当てられているかを確認するには、「権限のクエリ」をご参照ください。ロールを取り消すには、「ユーザーからのロールの取り消し」をご参照ください。
例
例 1: アカウント 5527xxxxxxxx5788 の下の UID 2763xxxxxxxxxx1649 を持つ RAM ユーザーを削除します (ロールは割り当てられていません)。
remove user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;例 2: 同じ RAM ユーザーを削除します (ロール Worker が割り当てられています)。
-- まず Worker ロールを取り消します。
revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
-- 次に RAM ユーザーを削除します。
remove user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
-- RAM ユーザーを使用しなくなった場合は、RAM アカウントプロバイダーを削除します。
remove accountprovider ram;RAM ロールの追加
構文
コマンド内のバッククォート ( ) は必須です。パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
account_id | はい | RAM ロールを所有する Alibaba Cloud アカウントの ID (例: 5527xxxxxxxx5788)。 |
RAM role name | はい | RAM ロールの名前。名前を取得するには、RAM コンソール にログインし、[ID 管理] > [ロール] に移動して、[ロール] ページでロール名を確認します。 |
例
RAM ロール ram_role をプロジェクト test_project_a に追加します。
add user `RAM$5527xxxxxxxx5788:role/ram_role`;後続の操作は DataWorks で実行する必要があります。RAM ロールにアタッチされているポリシーを変更する際に、RAM ロールを DataWorks に割り当てる必要があります。これにより、DataWorks で定期的なスケジューリングジョブを MaxCompute に送信できます。
RAM ロールの削除
構文
remove user `RAM$<account_id>:role/<RAM role name>`;コマンド内のバッククォート ( ) は必須です。パラメーター
| パラメーター | 必須 | 説明 |
|---|---|---|
account_id | はい | RAM ロールを所有する Alibaba Cloud アカウントの ID (例: 5527xxxxxxxx5788)。 |
RAM role name | はい | RAM ロールの名前。名前を取得するには、Resource Access Management (RAM) コンソールにログインし、[Identities] > [Roles] に移動し、[Roles] ページでロール名を表示します。 |
例
RAM ロール ram_role をプロジェクト test_project_a から削除します。
remove user `RAM$5527xxxxxxxx5788:role/ram_role`;ユーザーのリスト表示
MaxCompute プロジェクトに追加されたすべてのユーザーを表示するには、次のコマンドを実行します。
list users;出力例:
ALIYUN$5527xxxxxxxx5788
RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649
RAM$5527xxxxxxxx5788:role/ram_role「Use Account ID」が無効な場合
次のステップ
ユーザーを追加した後、ビジネス要件に基づいて権限を付与します。「コマンドを使用したユーザー権限の管理」をご参照ください。