Redis ファイアウォールの許可範囲の確認

Azure Cache for Redis のファイアウォールが必要なクライアントの送信元だけを許可するよう、公開接続とプライベート接続の設定も併せて確認します。

説明

Azure Cache for Redis のファイアウォールルールでは、開始・終了アドレスを含む IPv4 範囲を許可します。Ansible の start_ip_address と end_ip_address には、アクセスが必要なクライアントが実際に使う送信元アドレスの範囲を指定してください。パブリックエンドポイントが必要でも、無関係なアドレスまで許可する必要はありません。

許可されたクライアントの固定パブリック IP だけを登録する構成は、適切な選択になり得ます。ファイアウォールにプライベートアドレスを記入するだけでは、プライベート接続は構成されず、パブリックネットワークアクセスの設定も変わりません。許可範囲に加え、パブリックネットワークアクセス、接続経路、認証、データへの権限を確認してください。

想定される影響

  • パブリックネットワークアクセスが有効で、ファイアウォールの許可範囲が必要以上に広い場合、想定外の送信元からもキャッシュへの接続を試みることができます。データへのアクセスには、別途、認証と権限の条件が適用されます。
  • 必要な送信元を遮断すると、アプリケーションの接続が途切れるおそれがあります。許可範囲を変更するときは、実際の接続経路とサービスの要件を確認する必要があります。

対処方法

  • 両端が有効な IPv4 アドレスで、開始アドレスが終了アドレスを超えていないことを確認してください。パブリックエンドポイントが必要な場合は、必要なクライアントの送信元だけを許可し、不要に広い範囲を縮小してください。
  • 内部からの接続に限定する場合は、対応するプランで Private Link などの接続経路を構成し、パブリックネットワークアクセスの設定も確認してください。ファイアウォールにプライベートアドレスの範囲を指定するだけでは、キャッシュはプライベートネットワークに配置されず、パブリックネットワークアクセスの設定も無効になりません。
  • デプロイ済みキャッシュのすべてのファイアウォールルールとネットワーク設定を確認し、許可した送信元と許可していない送信元からの接続結果を確かめてください。認証情報とデータへのアクセス権限も別途点検してください。

例

以下は、広いアドレス範囲と狭いプライベートアドレス範囲を比較する抜粋です。キャッシュの作成や、プライベート接続、パブリックネットワークアクセスの設定は含まれていません。プライベートアドレスに置き換えるだけで接続設定が完了するわけではありません。

広い IPv4 範囲

yaml
- name: Create a Firewall rule for Azure Cache for Redis
  azure_rm_rediscachefirewallrule:
    resource_group: myResourceGroup
    cache_name: myRedisCache
    name: myRule
    start_ip_address: 1.2.3.4
    end_ip_address: 2.3.4.5

狭いプライベート IPv4 範囲

yaml
- name: Create a Firewall rule for Azure Cache for Redis
  azure_rm_rediscachefirewallrule:
    resource_group: myResourceGroup
    cache_name: myRedisCache
    name: myRule
    start_ip_address: 192.168.1.1
    end_ip_address: 192.168.1.4

説明:

  • 最初の例: 1.2.3.4 から 2.3.4.5 までの広い範囲を許可します。実際にアクセスが必要なクライアントの送信元アドレスに制限してください。
  • 2 番目の例: 192.168.1.1 から 192.168.1.4 までの四つのプライベートアドレスを指定しています。この範囲が、実際の接続経路でクライアントの送信元アドレスに当たるかを確認してください。このコードだけでは Private Link は構成されず、パブリックネットワークアクセスの設定も無効になりません。

参考資料