コンテンツにスキップ

自動修復

本ページの情報は 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 の構成を採用する。

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

コントロール重大度カテゴリConfig ルールマネージド修復ドキュメント記事
RDS.1CRITICALスナップショット公開rds-snapshots-public-prohibitedAWSSupport-ModifyRDSSnapshotPermission(DB インスタンススナップショットのみ。クラスタースナップショットには非対応)RDS.1 自動修復
DocumentDB.3CRITICALスナップショット公開docdb-cluster-snapshot-public-prohibitedなし(カスタムランブック必要)DocumentDB.3 自動修復
Neptune.3CRITICALスナップショット公開neptune-cluster-snapshot-public-prohibitedなし(カスタムランブック必要)Neptune.3 自動修復
DMS.1CRITICALインターネット到達性dms-replication-not-public自動修復不可(再作成が必須、後述)対象外(自動修復不可)
Redshift.1CRITICALインターネット到達性redshift-cluster-public-access-checkAWSConfigRemediation-DisablePublicAccessToRedshiftClusterRedshift.1 自動修復
ES.2CRITICALインターネット到達性elasticsearch-in-vpc-only自動修復不可(再作成が必須、後述)対象外(自動修復不可)
Opensearch.2CRITICALインターネット到達性opensearch-in-vpc-only自動修復不可(再作成が必須、後述)対象外(自動修復不可)
SageMaker.1HIGHインターネット到達性sagemaker-notebook-no-direct-internet-access自動修復不可(再作成が必須、後述)対象外(自動修復不可)
SNS.4CRITICALリソースポリシーsns-topic-no-public-accessなし(カスタムランブック必要)SNS.4 自動修復

ES.2 / Opensearch.2 / DMS.1 / SageMaker.1 は自動修復不可:

  • 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.」と明記されている。
  • DMS.1: Security Hub DMS.1 コントロール公式ドキュメント の Remediation セクションで「You can’t change the public access setting for a DMS replication instance after creating it. To change the public access setting, delete your current instance, and then recreate it.」と明記されている。
  • SageMaker.1: UpdateNotebookInstance API リファレンス の Request Syntax に DirectInternetAccess パラメータが含まれていない。作成後にこの設定を変更できないため、再作成が必須となる。

いずれもリソースを削除して再作成しない限り COMPLIANT に戻せない。Config ルールによる検知は可能だが、自動修復は実質的に成立しない。代替策として VPC BPA による実害ブロック(既に対応)か、リソース再作成の運用手順を整備する。

マネージド修復ドキュメントの分類: 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:
SageMaker.1sagemaker:CreateNotebookInstanceDirectInternetAccess を制御する条件キーが提供されていない
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 内へ移行できない(再作成必須)
SageMaker ノートブックインスタンスパブリック(DirectInternetAccess=Enabled)create-notebook-instance--direct-internet-access を省略DirectInternetAccess のデフォルト値が EnabledDisabled に設定するには SubnetId(VPC 配置)の指定が必須。作成後の変更不可
SNS トピックプライベートset-topic-attributes でアクセスポリシーに Principal: *(Condition なし)を明示設定デフォルトトピックポリシーは自アカウントのみ許可