説明
HTTPS・TLSリスナーのセキュリティポリシーは、許可するTLSプロトコルと暗号スイートを決めます。古いポリシーや要件に合わないポリシーでは、必要な通信保護を提供できない場合があります。SslPolicyには個別の暗号スイート名ではなく、そのロードバランサーで使用できるAWSセキュリティポリシー名を指定します。
通常のHTTP・TCPリスナーにTLS専用の設定を一律に追加しないでください。暗号化が必要な接続では、適切なリスナープロトコルと有効な証明書を併せて構成してください。
想定される影響
- 弱いプロトコルや暗号スイートを許可すると、通信の保護が不十分になる可能性があります。
- 非対応のポリシーや誤った証明書設定は、デプロイの失敗やクライアント接続の中断につながる場合があります。
対処方法
- ロードバランサーの種類とリスナープロトコルを確認し、AWSのプロトコル・暗号スイート一覧から要件に合うポリシーを選んでください。ALBはカスタムセキュリティポリシーに対応していません。
- 変更前にクライアント互換性と証明書の有効性・ドメインを確認してください。使用するAnsibleコレクションの必須入力とリスナー更新動作も確認してください。
- 適用後に実際のリスナーポリシーとTLSネゴシエーションをテストしてください。クライアントとロードバランサー間のTLSポリシーだけでは、バックエンド接続まで検証したことにはなりません。
例
同じALBのHTTPSリスナーポリシーを変更する別々の構成案です。実際のセキュリティグループ、異なるアベイラビリティーゾーンのサブネット、証明書ARN、ターゲットグループを指定してください。既存リスナーや必要な設定を維持するため、使用するコレクションの更新動作を確認してください。
変更前
yaml
- name: elb3
community.aws.elb_application_lb:
name: myelb
security_groups:
- "{{ alb_security_group_id }}"
subnets:
- "{{ alb_subnet_a_id }}"
- "{{ alb_subnet_b_id }}"
listeners:
- Protocol: HTTPS
Port: 443
SslPolicy: ELBSecurityPolicy-2016-08
Certificates:
- CertificateArn: "{{ certificate_arn }}"
DefaultActions:
- Type: forward
TargetGroupName: "{{ target_group_name }}"
state: present
ELBSecurityPolicy-2016-08はTLS 1.0・1.1も許可する古いポリシーです。これらのプロトコルを許可する必要があるか確認してください。
変更後
yaml
- name: elb1
community.aws.elb_application_lb:
name: myelb
security_groups:
- "{{ alb_security_group_id }}"
subnets:
- "{{ alb_subnet_a_id }}"
- "{{ alb_subnet_b_id }}"
listeners:
- Protocol: HTTPS
Port: 443
SslPolicy: ELBSecurityPolicy-TLS13-1-2-2021-06
Certificates:
- CertificateArn: "{{ certificate_arn }}"
DefaultActions:
- Type: forward
TargetGroupName: "{{ target_group_name }}"
state: present
TLS 1.2・1.3に対応し、TLS 1.0・1.1を許可しないポリシーへ変更します。暗号スイートとクライアント互換性が実際の要件に合うことを確認してください。