説明
Ansible の validate_certs を false にすると、AWS 管理 API との通信でサーバー証明書を検証しません。通信経路に介入してサーバーを偽装できる攻撃者により、自動化で使用する資格情報の漏えいや管理要求・応答の改ざんにつながるおそれがあります。
このオプションは、API 利用者と API Gateway 間の TLS やバックエンド証明書を設定するものではありません。既定値は true なので、省略するだけで証明書検証が無効になるわけではありません。
想定される影響
- サーバーの偽装によって管理要求や応答が改ざんされる可能性があります。
- 自動化の資格情報や処理データが漏えいするおそれがあります。
対処方法
validate_certs: true を維持してください。証明書エラーが出る場合は検証を無効にせず、エンドポイントと証明書チェーンを確認し、対応するモジュールの aws_ca_bundle などで必要な信頼 CA を指定してください。API 利用者とバックエンドの TLS 設定も別途確認してください。
例
従来の aws_api_gateway 名を使うタスクの抜粋です。インストールした Ansible コレクションに対応するモジュール名を使い、api_id と my_api.yml を実環境に合わせて指定してください。
変更前
yaml
- name: update API
aws_api_gateway:
api_id: abc123321cba
state: present
swagger_file: my_api.yml
validate_certs: no
validate_certs: no は、Ansible と AWS API 間のサーバー証明書検証を無効にします。
変更後
yaml
- name: update API
aws_api_gateway:
api_id: abc123321cba
state: present
swagger_file: my_api.yml
validate_certs: yes
validate_certs: yes でサーバー証明書を検証します。AWS API エンドポイントの証明書チェーンを信頼できる必要があります。