RDS のポートとアクセス制御の確認

データベースのポート選択と実際のアクセス制御を区別して管理してください。

説明

エンジンの既定ポートの利用自体は脆弱性ではありません。例えば MySQL、MariaDB、Aurora MySQL は 3306、PostgreSQL と Aurora PostgreSQL は 5432 が既定値です。別のポートにしてもサービスの探索や不正アクセスを防げるわけではなく、実際のリスクはネットワーク範囲、認証、権限によって変わります。

想定される影響

  • アクセス範囲が広いと、データベースが不要な接続試行にさらされる場合があります。
  • ポート変更をアクセス制御と誤解したり、接続設定を併せて変更しなかったりすると、保護の不足やサービス停止につながる場合があります。

対処方法

  • セキュリティグループ、サブネット、ルーティングで必要なクライアントだけを許可し、データベース認証、最小権限、通信の暗号化を適用してください。
  • 運用上、別のポートが必要なら対応する値を設定し、クライアント、ファイアウォール、監視を併せて変更してください。Aurora のポートは個々のインスタンスではなくクラスターで設定します。既存接続への影響を確認し、切り替えを計画してください。

例

Aurora MySQL クラスターのポートだけを比較する部分例です。管理者の認証情報を安全に渡し、実際のネットワーク、セキュリティグループ、クラスターのインスタンスは別途用意してください。

変更前

yaml
- name: Aurora 클러스터 포트 설정
  amazon.aws.rds_cluster:
    engine: aurora-mysql
    password: "{{ password }}"
    username: "{{ username }}"
    cluster_id: ansible-test-cluster
    backup_retention_period: 7
    port: 3306

Aurora MySQL の既定ポート 3306 を指定します。既定ポートだけでデータベースが公開されたり認証が弱くなったりするわけではありません。

変更後

yaml
- name: Aurora 클러스터 포트 설정
  amazon.aws.rds_cluster:
    engine: aurora-mysql
    password: "{{ password }}"
    username: "{{ username }}"
    cluster_id: ansible-test-cluster
    backup_retention_period: 7
    port: 3307

クラスターのポートを 3307 に変更します。ネットワークとデータベースの権限は変わらないため、別途アクセス制御とクライアントの接続設定変更が必要です。

参考資料