IP アドレスホワイトリストは、クライアントが ApsaraMQ for RocketMQ インスタンスにアクセスできるかどうかを指定します。インスタンスに IP アドレスホワイトリストを設定することで、特定の CIDR ブロック内のクライアントのみがインスタンスにアクセスできるように許可できます。
デフォルトでは、ホワイトリストには 0.0.0.0/0 が含まれており、すべての IP アドレスからの接続を許可します。特定のエントリを追加すると、インスタンスはそれらの IP アドレスからの接続のみを受け入れます。
以下のエントリタイプがサポートされています:
| エントリタイプ | 例 |
|---|---|
| パブリック IP アドレス | 203.0.113.1 |
| 内部 IP アドレス | 192.168.1.100 |
| CIDR ブロック | 10.0.0.0/24 |
エントリを削除すると、対応するクライアントは即座にブロックされます。ホワイトリストを変更する前に、自身をロックアウトしないように、自身の IP アドレスがリストに残っていることを確認してください。
前提条件
開始する前に、以下が準備できていることを確認してください:
ApsaraMQ for RocketMQ インスタンス
インスタンスのアクセス制御設定を管理する権限
注意事項
IP アドレスホワイトリストを設定する前に、以下の項目に注意してください:
接続スコープ — IP アドレスホワイトリストは、クライアントがインスタンスへの新しい接続を確立できるかどうかのみを制御します。ホワイトリストから IP アドレスを削除しても、アクティブなクライアントセッションはすぐには切断されません。特定のクライアントを分離するには、異なるグループ ID を割り当てるか、統一されたサブスクリプションロジックを実装します。
バージョン要件 — ApsaraMQ for RocketMQ 4.0 シリーズのインスタンスは、コンソールでの IP アドレスホワイトリスト設定をサポートしていません。この機能を使用するには、5.0 シリーズにアップグレードする必要があります。
トラフィック追跡 — IP アドレスホワイトリストには、パブリックインターネットのトラフィックソースをリアルタイムで追跡する機能はありません。ホワイトリストは、インスタンスへのアクセスが許可されている IP アドレス範囲を指定するだけです。特定のトラフィックソースを特定するには、アプリケーション側のログを参照してください。
設定対象 — IP アドレスホワイトリストとセキュリティグループの設定は、アプリケーションで使用される ECS インスタンスではなく、ApsaraMQ for RocketMQ インスタンス自体に適用されます。設定が正しくないと、接続に失敗する可能性があります。
IP アドレスまたは CIDR ブロックの追加
ApsaraMQ for RocketMQコンソールにログインします。 左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。 [インスタンス] ページで、管理するインスタンスの名前をクリックします。
左側のナビゲーションウィンドウで、アクセス制御 をクリックします。
アクセス制御 ページで、IP アドレスホワイトリスト タブをクリックし、IP アドレスホワイトリストの追加 をクリックします。
IP アドレスホワイトリストの追加 パネルで、IP アドレスまたは CIDR ブロックを入力し、[OK] をクリックします。
説明複数のエントリはセミコロン (;) またはカンマ (,) で区切ります。
IP アドレスホワイトリストの表示
ApsaraMQ for RocketMQコンソールにログインします。 左側のナビゲーションウィンドウで、インスタンス数 をクリックします。
上部のナビゲーションバーで、中国 (杭州) などのリージョンを選択します。 [インスタンス] ページで、管理するインスタンスの名前をクリックします。
左側のナビゲーションウィンドウで、アクセス制御 をクリックします。
アクセス制御 ページで、IP アドレスホワイトリスト タブをクリックしてすべてのエントриを表示します。
IP アドレスまたは CIDR ブロックの削除
エントリを削除すると、その IP アドレスまたは CIDR ブロックを持つクライアントはインスタンスにアクセスできなくなります。続行する前に、そのエントリを必要とするアクティブなクライアントがないことを確認してください。
アクセス制御 ページで、IP アドレスホワイトリスト タブをクリックします。
削除したいエントリを見つけ、[操作] 列の [削除] をクリックします。
[削除の確認] ダイアログボックスで、[OK] をクリックします。
よくある質問 (FAQ)
Q:IP アドレスホワイトリストを設定した後に接続がタイムアウトしたり失敗したりした場合はどうすればよいですか?
以下の手順でトラブルシューティングを行ってください:
パブリックインターネット経由で接続している場合は、コンソールでインスタンスのパブリックネットワークアクセスが有効になっていることを確認してください。
ローカルの出口 IP アドレスが、ホワイトリストに設定された IP アドレスまたは CIDR ブロックと完全に一致することを確認してください。わずかな不一致でも接続はブロックされます。
telnetまたはncを使用して、クライアントとインスタンス間のネットワーク接続をテストします。 たとえば、nc -zv <endpoint> 8080またはcurl -v telnet://<endpoint>:8080を実行します。No route infoエラーを受信した場合は、アプリケーションコードで指定されている名前空間 (インスタンス ID)、ユーザー名、パスワードが正しいことを確認してください。接続タイプを考慮してください:
パブリックインターネット接続:認証のために AccessKey ID と AccessKey Secret を設定する必要があります。
VPC (内部ネットワーク) 接続:認証情報は不要ですが、VPC のルーティングとセキュリティグループの設定が正しいことを確認する必要があります。
Q:クライアントと ApsaraMQ for RocketMQ インスタンス間のネットワーク接続をテストするにはどうすればよいですか?
コンテナまたはサーバー環境から接続をテストするには、次のコマンドを使用できます:
nc コマンド:
nc -zv <endpoint> 8080curl コマンド:
curl -v telnet://<endpoint>:8080
<endpoint> を、インスタンスの実際のエンドポイントアドレスに置き換えてください。
接続テストが失敗した場合は、以下を確認してください:
コンテナのネットワーク設定 (コンテナ化されたデプロイメントを使用している場合)
ECS セキュリティグループのアウトバウンドルール
Kubernetes NetworkPolicy の設定 (Kubernetes を使用している場合)
Q:同じアカウントの異なる VPC にある ECS インスタンスは、どのようにして ApsaraMQ for RocketMQ インスタンスに接続できますか?
(推奨) VPC ピアリング接続を使用して、クロス VPC 接続を有効にします:
2 つの VPC 間に VPC ピアリング接続を作成してください。同一リージョン内の接続は無料です。
両方の VPC のルートテーブルにルートを追加してください。宛先 CIDR ブロックをピア VPC の CIDR ブロックに設定し、ネクストホップをピアリング接続に設定します。
両側のセキュリティグループを設定し、ApsaraMQ for RocketMQ のポート (9876、10911 など) へのインバウンドトラフィックを許可します。
これらの手順を完了すると、両方の VPC の ECS インスタンスが内部ネットワーク経由で ApsaraMQ for RocketMQ インスタンスに接続できるようになります。
Q:サーバーレスインスタンスではセキュリティグループをどのように設定すればよいですか?
(推奨) サーバーレスインスタンスには、以下のセキュリティグループ設定を適用してください:
任意の送信元からのトラフィックを許可するため、セキュリティグループのインバウンドルールとして
0.0.0.0/0を使用しないでください。アプリケーションが存在する VPC の CIDR ブロックからのインバウンドトラフィックのみを許可してください。
ApsaraMQ for RocketMQ の標準ポートであるポート 9876 および 10911 でのインバウンドトラフィックを許可してください。
この設定により、既知の IP 範囲にアクセスが制限され、インスタンスが不正な接続から保護されます。
Q:ACL を有効にすると、既存の IP アドレスホワイトリストの設定や使用に影響はありますか?
いいえ。ACL を有効にしても、既存の IP アドレスホワイトリストの設定には影響しません。2 つのアクセス制御メカニズムは独立しており、同時に使用できます。
関連 API
以下の API を使用して、IP アドレスホワイトリストをプログラムで管理できます:
| API 操作 | 説明 |
|---|---|
| CreateInstanceIpWhitelist | ホワイトリストにエントリを追加 |
| ListInstanceIpWhitelist | ホワイトリストのエントリを照会 |
| DeleteInstanceIpWhitelist | ホワイトリストからエントリを削除 |