説明
エンジンの既定ポートの利用自体は脆弱性ではありません。例えば 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 に変更します。ネットワークとデータベースの権限は変わらないため、別途アクセス制御とクライアントの接続設定変更が必要です。