コンテンツにスキップ

自動修復

本ページの情報は 2026 年 5 月時点のものです。AWS のサービス仕様(デフォルト値、条件キー、マネージド SSM Automation ドキュメントの提供状況等)は時間の経過とともに更新される可能性があります。

Security Hub CSPM のコントロールのうち、SCP / 宣言型ポリシー / Control Tower 予防コントロールによる予防が不可能なものに対して、検知後の自動修復による対応策を検証する。

自動修復の構成

本サイトでは、Security Hub finding をトリガーに EventBridge 経由で SSM Automation を起動する構成を採用する。

Config ルール評価
  → NON_COMPLIANT 検出
  → Security Hub finding → FAILED
  → EventBridge ルールで finding をフィルタ
  → SSM Automation を起動
  → リソースをコンプライアンス状態に修復
  → Config 再評価 → COMPLIANT
  → Security Hub finding → PASSED

Config 修復アクションを使わない理由

AWS Config には Remediation Action という機能があり、Config ルールに直接 SSM Automation を紐付けて自動修復を実行できる。ただし、AWS 公式ドキュメント PutRemediationConfigurations に明記の通り、Security Hub によってデプロイされた Config ルール(securityhub- プレフィックスのルール)には修復アクションを追加できない

This API does not support adding remediation configurations for service-linked AWS Config Rules such as Organization AWS Config rules, the rules deployed by conformance packs, and rules deployed by AWS Security Hub.

本サイトの対象コントロールはすべて Security Hub 管理の Config ルールに依存するため、Config 修復アクションは使用できない。代わりに EventBridge → SSM Automation の構成を採用する。

対象コントロール(検証対象 6 件 + 自動修復不可 2 件)

コントロール重大度カテゴリConfig ルールマネージド修復ドキュメント記事
RDS.1CRITICALスナップショット公開rds-snapshots-public-prohibitedAWSSupport-ModifyRDSSnapshotPermission(DB インスタンススナップショットのみ。クラスタースナップショットには非対応)RDS.1 自動修復(検証中)
DocumentDB.3CRITICALスナップショット公開docdb-cluster-snapshot-public-prohibitedなし(カスタムランブック必要)検証中
Neptune.3CRITICALスナップショット公開neptune-cluster-snapshot-public-prohibitedなし(カスタムランブック必要)検証中
DMS.1CRITICALインターネット到達性dms-replication-not-publicなし(カスタムランブック必要)検証中
Redshift.1CRITICALインターネット到達性redshift-cluster-public-access-checkAWSConfigRemediation-DisablePublicAccessToRedshiftCluster検証中
ES.2CRITICALインターネット到達性elasticsearch-in-vpc-only自動修復不可(再作成が必須、後述)対象外(自動修復不可)
Opensearch.2CRITICALインターネット到達性opensearch-in-vpc-only自動修復不可(再作成が必須、後述)対象外(自動修復不可)
SNS.4CRITICALリソースポリシーsns-topic-no-public-accessなし(カスタムランブック必要)検証中
ES.2 / Opensearch.2 は自動修復不可: AWS 公式ドキュメント Launching your Amazon OpenSearch Service domains within a VPC に「If you create a domain with a public endpoint, you can’t later place it within a VPC. You must instead create a new domain and migrate your data.」と明記されている。パブリックエンドポイントで作成されたドメインを VPC 内に移すことはできず、ドメインを削除して再作成しない限り COMPLIANT に戻せない。Config ルールによる検知は可能だが、自動修復は実質的に成立しない。代替策として VPC BPA による実害ブロック(既に対応)か、リソースポリシーでの IP 制限(finding は FAILED のまま残る)となる。
マネージド修復ドキュメントの分類: AWSConfigRemediation- プレフィックスは AWS Config が公式に修復アクション用として提供するランブック。AWSSupport- プレフィックスは AWS サポート用の汎用ランブックだが、SSM Automation として実行可能なため EventBridge 経由でも利用できる。本サイトでは Config 修復アクションを使わないため、両者の差は実装上は問題にならない。

SCP で予防できない理由

コントロール該当 APISCP 予防不可の理由
RDS.1rds:ModifyDBSnapshotAttributeパブリック共有を判定する条件キーが提供されていない
DocumentDB.3rds:ModifyDBClusterSnapshotAttribute同上
Neptune.3rds:ModifyDBClusterSnapshotAttribute同上
DMS.1dms:CreateReplicationInstanceパブリックアクセスを制御する条件キーが提供されていない
Redshift.1redshift:CreateCluster / redshift:ModifyCluster同上
ES.2es:CreateElasticsearchDomain(deprecated)/ es:CreateDomainVPC アクセスを制御する条件キーが提供されていない
Opensearch.2es:CreateDomain同上(OpenSearch Service の IAM サービスプレフィックスは es:
SNS.4sns:SetTopicAttributesアクセスポリシー内容を評価する条件キーが提供されていない

デフォルト挙動の補足

各サービスのリソース作成時のデフォルトのパブリック設定値は以下の通り(2026 年 5 月時点の AWS 公式ドキュメント・API リファレンスで確認)。デフォルトがパブリックのサービスは、明示的に対策を指定しない限り公開状態で作成される。

サービスデフォルトパブリック化の操作備考
RDS スナップショットプライベートmodify-db-snapshot-attribute --attribute-name restore --values-to-add allデフォルトで保護されている
DocumentDB / Neptune クラスタースナップショットプライベートmodify-db-cluster-snapshot-attribute --attribute-name restore --values-to-add allデフォルトで保護されている
DMS レプリケーションインスタンスパブリックcreate-replication-instance--no-publicly-accessible を省略API パラメータ PubliclyAccessible のデフォルト値が true。Config 検知の重要性が特に高い
Redshift クラスタープライベート(2025 年 1 月以降)create-cluster --publicly-accessible を明示指定2025 年 1 月から新規・復元したプロビジョン済みクラスターはデフォルトで非公開になった。デフォルト変更前の既存クラスターも検知対象
ES / OpenSearch ドメインパブリックcreate-elasticsearch-domain / create-domain--vpc-options を省略パブリックエンドポイントで作成された場合、後から VPC 内へ移行できない(再作成必須)
SNS トピックプライベートset-topic-attributes でアクセスポリシーに Principal: *(Condition なし)を明示設定デフォルトトピックポリシーは自アカウントのみ許可