Alibaba Cloud アカウント (root ユーザー) の AccessKey ペアを共有する代わりに、Resource Access Management (RAM) ユーザーを作成し、必要な権限のみを個別に付与してください。権限が付与された RAM ユーザーは、コンソールで ApsaraMQ for MQTT リソースを管理したり、SDK や API オペレーションを通じてメッセージをパブリッシュまたはサブスクライブしたりできます。
ApsaraMQ for MQTT は、クロスアカウント認証をサポートしていません。
RAM ユーザーの使用タイミング
チームメンバーごとに、ApsaraMQ for MQTT に対するアクセスレベルが異なることが一般的です。
| ロール | 典型的な権限 |
|---|---|
| リソース管理者 | インスタンス、トピック、グループの作成および管理 |
| パブリッシャー | 特定のトピックへのメッセージ送信 |
| サブスクライバー | 特定のトピックからのメッセージ受信 |
RAM を使用すると、Alibaba Cloud アカウント所有者は以下の操作が可能です。
アカウントの AccessKey ペアを共有する代わりに、各チームメンバー用に個別の RAM ユーザーを作成する
インスタンス、トピック、またはグループ単位で詳細な権限を付与する
いつでも権限を取り消すか、RAM ユーザーを削除できます。
RAM ユーザーによるすべてのリソース使用量は、Alibaba Cloud アカウントに対して請求されます。
前提条件
作業を開始する前に、以下の条件を満たしていることを確認してください。
ApsaraMQ for MQTT が有効化された Alibaba Cloud アカウント
RAM コンソール への管理者アクセス権限
RAM ユーザーへの権限付与
ワークフローは、RAM ユーザーの作成、(オプション)カスタムポリシーの作成、ユーザーへのポリシーのアタッチの 3 ステップで構成されます。
RAM ユーザーを作成します。 ApsaraMQ for MQTT へのアクセスが必要な各チームメンバーに対して RAM ユーザーを作成します。「RAM ユーザーの作成」をご参照ください。
(オプション)カスタムポリシーを作成します。 システムポリシーが要件を満たさない場合は、特定のインスタンス、トピック、またはグループに対する詳細なアクセス権限を定義するカスタムポリシーを作成します。「カスタムポリシーの作成」をご参照ください。利用可能な操作とリソースの完全な一覧については、「ポリシー」をご参照ください。
RAM ユーザーにポリシーをアタッチします。 適切なシステムポリシーまたはカスタムポリシーを RAM ユーザーにアタッチします。「RAM ユーザーへの権限付与」をご参照ください。
コンソールアクセス権限
ApsaraMQ for MQTT コンソールの 概要 ページには、ご利用のすべてのインスタンスのメタデータが表示されます。このページにアクセスするには、RAM ユーザーに以下の操作を許可する必要があります。
| アクション | 必要な操作対象 |
|---|---|
mq:MqttMetaData | [概要] ページおよびインスタンスメタデータを表示するホームページの表示 |
mq:ListMqttInstance | [概要] ページでのインスタンス一覧表示 |
RAM ユーザーは、mq:MqttMetaData 権限が付与された後にのみ、[概要] ページとホームページにアクセスできます。この権限がない場合、これらのページにアクセスするとエラーが返されます。インスタンスのリストを表示するには、[概要] ページにアクセスした後、mq:ListMqttInstance 権限も付与する必要があります。
RAM ユーザーとして ApsaraMQ for MQTT にアクセス
RAM ユーザーを作成し、適切な権限を付与したら、ログイン認証情報(ユーザー名とパスワード)または AccessKey ペアをチームメンバーと共有します。RAM ユーザーは、以下の 2 つの方法で ApsaraMQ for MQTT にアクセスできます。
コンソールへのログイン
RAM User Logon ページを開きます。
ユーザー名 フィールドに RAM ユーザーのログイン名を入力し、次へ をクリックします。パスワードを入力し、ログイン をクリックします。
説明ログイン名は、
<$username>@<$AccountAlias>または<$username>@<$AccountAlias>.onaliyun.comのフォーマットを使用します。ここで、<$AccountAlias>はアカウントエイリアスです。エイリアスが設定されていない場合は、Alibaba Cloud アカウント ID が使用されます。RAM ユーザーセンター ページで、アクセスしたいサービスをクリックしてそのコンソールを開きます。
API オペレーションの呼び出し
コード内で RAM ユーザーの AccessKey ID および AccessKey Secret を指定して、API リクエストを認証します。