ApsaraMQ for RocketMQ は、メッセージングリソースを保護するために 2 つのメカニズムを提供します。1 つは、コンソールおよび API オペレーションに対するアカウントレベルの権限を管理する Resource Access Management (RAM) です。もう 1 つは、ネットワークアクセスとクライアント認証にインスタンスレベルの制限を適用するアクセス制御リスト (ACL) です。これらのメカニズムを単独で、または組み合わせて使用することで、メッセージングインフラストラクチャに階層化されたセキュリティを構築できます。
アクセス制御メカニズムの選択
次の表を参考に、要件に合ったメカニズムを選択してください。複数のメカニズムを組み合わせて、階層化されたセキュリティを構築することも可能です。
| 要件 | メカニズム | 制御対象 |
|---|---|---|
| コンソールまたは API を通じて ApsaraMQ for RocketMQ リソースを管理できるユーザーを制御します | RAM | API オペレーションとコンソールアクセス |
| Alibaba Cloud アカウントの AccessKey ペアの共有を避けたい | RAM | RAM ユーザーへのアカウントレベルの権限委譲 |
| インスタンスへのアクセスを特定の IP アドレスに制限する | ACL -- IP アドレスホワイトリスト | インスタンスへのネットワークレベルのアクセス |
| トピックまたはグループに対するクライアントのパブリッシュおよびサブスクライブ権限を制御する | ACL -- ユーザー認証 | クライアントレベルのパブリッシュおよびサブスクライブ権限 |
RAM
RAM はアカウントレベルの権限制御を提供します。Alibaba Cloud アカウント (root ユーザー) の AccessKey ペアを共有する代わりに、必要な権限のみを持つ RAM ユーザーを作成してください。
RAM を使用すると、RAM ユーザーまたはユーザーグループに対し、ApsaraMQ for RocketMQ コンソールでの特定の操作 (トピックの作成やグループの削除など) や API オペレーションを実行する権限を付与できます。
RAM の制御対象:API オペレーションおよび ApsaraMQ for RocketMQ コンソール。
デフォルトの権限:
Alibaba Cloud アカウント (root ユーザー) -- デフォルトですべての権限が付与されています。追加の権限付与は不要です。
RAM ユーザー -- デフォルトではいかなる権限もありません。RAM ユーザーは、必要な権限を明示的に付与された後にのみリソースにアクセスできます。
設定手順については、「RAM を使用したアクセス制御」をご参照ください。
ACL
ACL は、IP アドレスホワイトリストとユーザー認証という 2 つの独立したメカニズムを通じて、インスタンスレベルのアクセス制御を提供します。どちらか一方、または両方を組み合わせて使用することで、階層化されたセキュリティを実現できます。
IP アドレスホワイトリスト
IP アドレスホワイトリストは、ApsaraMQ for RocketMQ インスタンスに接続できるクライアントの IP アドレスを制限します。
IP アドレスホワイトリストは、クライアントがインターネット経由で接続する場合でも、VPC 経由で接続する場合でも、すべての接続に適用されます。
デフォルトの動作:すべてのクライアント IP アドレスがインスタンスにアクセスできます。
ホワイトリスト設定時:ホワイトリストに含まれる IP アドレスのみがインスタンスにアクセスできます。
ユーザー認証
ユーザー認証は、クライアントが ApsaraMQ for RocketMQ インスタンスにアクセスできるかどうか、また、特定のトピックやグループに対してメッセージをパブリッシュしたり、サブスクライブしたりできるかどうかを制御します。ApsaraMQ for RocketMQ は、2 つの認証方式をサポートしています:
| 方式 | 仕組み | スコープ |
|---|---|---|
| インテリジェント認証 (デフォルト) | システムは、インスタンスに割り当てられたユーザー名とパスワードを使用してクライアントを認証します。認証後、クライアントはインスタンス上のすべてのトピックとグループに対してパブリッシュおよびサブスクライブできます。 | すべてのトピックとグループ |
| ACL ベースの認証 | ACL ユーザーを作成し、特定のトピックやグループへのパブリッシュまたはサブスクライブ権限を付与します。クライアントは、その ACL ユーザーのユーザー名とパスワードを使用して認証します。 | 指定されたトピックとグループのみ |
インスタンス上のすべてのクライアントが同じレベルのアクセスを必要とする場合は、インテリジェント認証を使用します。同じインスタンス上でクライアントごとに異なる権限が必要な場合は、ACL ベースの認証に切り替えてください。
ユーザー認証機能は、デフォルトではすべての ApsaraMQ for RocketMQ インスタンスで有効になっているわけではありません。ご利用のインスタンスでユーザー認証が有効になっていない場合は、チケットを送信して有効化をリクエストしてください。コンソールのアクセス制御のエントリポイントは、申請が承認された後にのみ表示されます。
設定手順については、「ACL を使用したアクセス制御」をご参照ください。