ApsaraMQ for RabbitMQ は、ネイティブのオープンソース認証と Resource Access Management (RAM) という 2 つの認証・権限付与モードをサポートしています。オープンソースクライアントが ApsaraMQ for RabbitMQ サーバーに接続する際、選択したモードに基づいて認証用のユーザー名とパスワードを提供する必要があります。認証が成功した場合にのみ、アクセスが許可されます。
背景情報
ApsaraMQ for RabbitMQ は、オープンソースの認証と権限管理と Alibaba Cloud Resource Access Management (RAM) という 2 つの認証・権限モードをサポートしています。インスタンスを作成する際に、これらのモードのいずれか 1 つのみを選択でき、後で変更することはできません。2 つのモードの比較は次のとおりです。
|
認証モード |
説明 |
範囲 |
長所と短所 |
|
カスタムのユーザー名とパスワードを作成し、ユーザーに権限を付与します。 |
クライアント SDK |
|
|
|
ユーザー名とパスワードは、RAM の AccessKey ペア (AccessKey ID と AccessKey Secret) から生成されます。詳細については、後述の「静的認証情報の作成」をご参照ください。 |
|
|
注意事項
-
オープンソースの認証と権限管理
-
新規に購入した排他クラスターのサーバーレスインスタンスのみがサポートされます。
-
認証情報の漏洩を防ぐため、弱いパスワードの使用は避けてください。
-
デフォルトの guest アカウントを無効にしてください。
-
-
Resource Access Management (RAM)
-
ApsaraMQ for RabbitMQ コンソールにログインするために使用するアカウントは、Alibaba Cloud アカウント、または少なくとも静的なユーザー名とパスワードの表示、作成、削除の権限が付与された RAM ユーザーです。静的なユーザー名とパスワードの権限および権限付与操作の詳細については、「RAM 権限ポリシー」および「RAM プリンシパルとサブアカウントの権限付与」をご参照ください。
-
静的なユーザー名とパスワードを作成または削除するには、インスタンスが「実行中」状態である必要があります。
-
同じ AccessKey ペアを使用している場合でも、システムはインスタンスごとに一意のユーザー名とパスワードを生成します。
-
静的なユーザー名とパスワードを更新するには、既存のものを削除して新しいものを作成する必要があります。
-
クライアントが SDK を呼び出してメッセージを送受信する場合、長時間接続を使用することを推奨します。これにより、クライアントがメッセージごとに新しい接続を作成することを防ぎ、大量のネットワークリソースとサーバーリソースの消費や、サーバーでの SYN フラッド保護のトリガーを回避できます。詳細については、「接続」をご参照ください。
オープンソースの認証と権限
ユーザー名とパスワードの作成
ApsaraMQ for RabbitMQ コンソールにログインします。左側のナビゲーションウィンドウで、インスタンスリスト をクリックします。
インスタンスリスト ページの上部のナビゲーションバーで、管理したいインスタンスが存在するリージョンを選択します。次に、インスタンスリストで、管理したいインスタンスの名前をクリックします。
左側のナビゲーションウィンドウで、ユーザーと権限の管理 をクリックします。
-
ユーザーと権限の管理 ページで、ユーザ名とパスワードの作成 をクリックします。
-
ユーザ名とパスワードの作成 パネルで、ユーザ名、パスワード、パスワードの確認 を入力し、OK をクリックします。
ユーザーパスワードの編集
-
ユーザーと権限の管理 ページで、パスワードを編集したいユーザーを見つけます。操作 列で、編集 をクリックします。
-
ユーザー名とパスワードの編集 パネルで、新しい パスワード と パスワードの確認 を入力し、OK をクリックします。
ユーザーの削除
ユーザーが削除されると、そのユーザーのユーザー名とパスワードを使用して ApsaraMQ for RabbitMQ に接続するクライアントは拒否されます。
-
ユーザーと権限の管理 ページで、削除したいユーザーを見つけます。操作 列で、削除 をクリックします。
-
削除 ダイアログボックスで、OK をクリックします。
権限管理
ApsaraMQ for RabbitMQ のオープンソースの認証と権限管理は、バーチャルホストを範囲とします。ユーザー権限は、ユーザーが割り当てられているバーチャルホスト内でのみ有効です。Exchange とキューに対する操作のユーザー権限のきめ細かい制御は、正規表現 (Regex) を使用して実装されます。詳細については、「オープンソースの認証と権限管理」をご参照ください。
権限の追加
-
ユーザーと権限の管理 ページで、権限を追加したいユーザーを見つけます。操作 列で、権限の管理 をクリックします。
-
権限の管理 パネルで、権限の新規追加 をクリックします。
-
ドロップダウンリストから設定したいバーチャルホストを選択し、関連する操作の正規表現を入力して、OK をクリックします。
-
正規表現は、Exchange とキューの名前にマッチします。
-
.*はすべてのリソースにマッチします。 -
^$は空の文字列にのみマッチします。これはすべてのリソースアクセスをオーバーライドし、ユーザーがいかなる操作も実行できないようにブロックします。 -
'^(amq\.gen.*|amq\.default)$'は、システムが生成したリソースとデフォルトの Exchange へのアクセスを許可します。
重要パブリックエンドポイントを使用する場合、権限を設定した後に、パブリック IP アドレスホワイトリストも設定する必要があります。
-
権限の更新
ユーザーの バーチャルホスト に対する権限を変更すると、そのユーザーの認証情報でその バーチャルホスト に接続しているクライアントが、メッセージの送信または消費時にエラーに遭遇する可能性があります。
-
権限の管理 パネルで、変更したい バーチャルホスト の権限を見つけます。操作 列で、更新 をクリックします。
-
更新された操作の正規表現を入力し、OK をクリックします。
権限の削除
ユーザーの バーチャルホスト に対する権限が削除されると、サーバーはその認証情報を使用してその バーチャルホスト に接続しようとするクライアントからの接続試行を拒否します。
-
権限の管理 パネルで、削除したい バーチャルホスト の権限を見つけます。操作 列で、削除 をクリックします。
-
削除 ダイアログボックスで、OK をクリックします。
Resource Access Management (RAM)
静的認証情報の作成
ApsaraMQ for RabbitMQ コンソールにログインします。左側のナビゲーションウィンドウで、インスタンスリスト をクリックします。
インスタンスリスト ページの上部のナビゲーションバーで、管理したいインスタンスが存在するリージョンを選択します。次に、インスタンスリストで、管理したいインスタンスの名前をクリックします。
左側のナビゲーションウィンドウで、ユーザーと権限の管理 をクリックします。
-
ユーザーと権限の管理 ページで、ユーザ名とパスワードの作成 をクリックします。
-
ユーザ名とパスワードの作成 パネルで、AccessKey ID と AccessKey Secret を入力し、OK をクリックします。
説明AccessKey ID と AccessKey Secret は、Alibaba Cloud の RAM コンソールから取得できます。詳細については、「AccessKey ペアの作成」をご参照ください。
認証情報が作成されると、ユーザーと権限の管理 ページに新しい静的なユーザー名とパスワードが表示されます。パスワードはデフォルトで非表示になっています。新しいエントリは、Instance ID、AccessKey、Username、Password、Creation Time などの列を持つ認証情報リストに表示されます。操作 列の 削除 をクリックして、認証情報を削除できます。
-
作成された静的認証情報の パスワード 列で、パスワードの表示 をクリックしてパスワードを表示します。
RAM ユーザーの AccessKey から作成された静的なユーザー名とパスワードを使用して ApsaraMQ for RabbitMQ に接続し、メッセージを送受信する場合、その RAM ユーザーにメッセージを送受信する権限が付与されていることを確認してください。詳細については、「RAM 権限ポリシー」をご参照ください。
静的認証情報の削除
静的なユーザー名とパスワードは、削除された場合、またはそれを作成するために使用された AccessKey が無効化または削除された場合に無効になります。クライアントがこの静的なユーザー名とパスワードを使用して ApsaraMQ for RabbitMQ に接続しようとすると、接続は拒否されます。
-
ユーザーと権限の管理 ページで、削除する静的なユーザー名とパスワードを見つけ、操作 列で 削除 をクリックします。
-
プロンプト ダイアログボックスで、メッセージを注意深く読み、OK をクリックします。
削除された静的なユーザー名とパスワードは、ユーザーと権限の管理 ページに表示されなくなります。
関連操作
ユーザー名とパスワードを作成した後、クライアントはオープンソースの RabbitMQ クライアントを直接使用して ApsaraMQ for RabbitMQ に接続できます。詳細については、「SDK リストとサンプルコード」をご参照ください。