API Gateway を管理する Ansible の証明書検証の確認

AWS 管理 API への接続では、サーバー証明書の検証を維持してください。

説明

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 エンドポイントの証明書チェーンを信頼できる必要があります。

参考資料