目次
AWS Config 完全ガイド v2.0
初心者から実務者向けの包括的解説
AWS Config は、AWS リソースの 設定変更を継続的に記録・評価するサービス です。リソースの設定履歴・変更タイムライン・コンプライアンス評価(Config ルール)・自動修復を提供し、「誰が・いつ・何を変更したか」の監査証跡と「現在の設定がセキュリティ基準に準拠しているか」の継続評価を実現します。本ドキュメントは、Config の概念・アーキテクチャ・ルール・Conformance Pack・修復・集約・最新動向を体系的に解説する包括的ガイドです。
ドキュメントの目的
本ガイドは以下を対象としています。
- 初心者向け: AWS Config とは何か、CloudTrail との違いを学びたい方
- コンプライアンス実務者向け: Config ルール・Conformance Pack で ISO/PCI/NIST 準拠を整備したい方
- セキュリティ担当者向け: S3 パブリックアクセス・EC2 セキュリティグループ設定の継続監視
- SRE/インフラ向け: 自動修復(Remediation)で設定ドリフトを自動修正
- 意思決定者向け: HashiCorp Sentinel、OPA Gatekeeper、Cloud Custodian との比較
2025-2026 年の AWS Config エコシステム
- Conformance Pack 地域拡大(2025年11月): 追加リージョン対応で組織全体管理が容易化
- Resource Timeline の完全実装: リソース設定変更の時系列可視化強化
- Security Hub CSPM 統合拡大: Config ルール結果を Security Hub に自動連携
- カスタムルール Lambda 統合: Python 3.12 対応、実行時間短縮
- Remediation アクション拡大: AWS Systems Manager Automation との高度な連携
- AI 駆動のコンプライアンス提案(検討中): 生成 AI による Config ルール推奨
目次
- 概要
- AWS Config が解決する課題
- 主な特徴
- アーキテクチャ
- 主要コンポーネント詳細
- Recorder と Configuration Items
- Config ルール(Managed・Custom)
- Conformance Pack
- Resource Timeline
- Aggregator:マルチアカウント・マルチリージョン
- Remediation:自動修復
- CloudFormation ドリフト検出
- 主要ユースケース
- 設定・操作の具体例
- 類似ツール比較表
- ベストプラクティス
- トラブルシューティング
- 2025-2026 最新動向
- 学習リソース
- 実装例・導入ロードマップ
- 実装チェックリスト
- まとめ
- 参考文献
概要
初心者向けメモ: AWS Config は「AWS リソースの設定が時間とともにどう変わったか」を記録し、「現在の設定が基準に準拠しているか」を評価するサービスです。CloudTrail は「誰が API を呼び出したか」を記録しますが、Config は「その API 呼び出しの結果、リソースの設定がどう変わったか」を記録します。
AWS Config は リソース設定管理・コンプライアンス評価・セキュリティ監視の基盤 です:
【図 1】AWS Config の位置づけ:
graph TD
API["AWS リソース<br/>変更API"]
API -->|設定変更検出| Recorder["Config Recorder<br/>(設定スナップショット)"]
Recorder -->|Configuration Item<br/>保存| S3["S3 Bucket<br/>(設定履歴)"]
Recorder -->|ルール評価| Rules["Config ルール<br/>(Managed/Custom)"]
Rules -->|COMPLIANT/NON_COMPLIANT| Dashboard["Compliance Dashboard"]
Rules -->|ルール違反時| Remediation["Remediation Action<br/>(自動修復)"]
S3 -->|タイムライン| Timeline["Resource Timeline<br/>(変更履歴)"]
Dashboard -->|集約| Aggregator["Aggregator<br/>(マルチ<br/>アカウント)"]
Remediation -->|修復実行| SSM["Systems Manager<br/>Automation"]
Dashboard -->|通知| EventBridge["EventBridge"]
EventBridge -->|Alert| SNS["SNS/Slack"]
Aggregator -->|Security Hub| SH["Security Hub"]
SH -->|Dashboard| Security["セキュリティ<br/>チーム"]
Timeline -->|CloudTrail| CT["CloudTrail"]
AWS Config がカバーするスコープ
| 対象 | 詳細 |
|---|---|
| 設定記録 | 200+ AWS リソースタイプの設定スナップショット・変更履歴 |
| ルール評価 | マネージドルール(AWS 提供・200+)、カスタムルール(Lambda) |
| Conformance Pack | 業界標準(CIS/PCI/NIST)ルール集を一括デプロイ |
| タイムライン | リソース設定の時系列変更可視化 |
| 自動修復 | コンプライアンス違反を自動修正(Systems Manager Automation) |
| マルチアカウント | Aggregator で全アカウント設定を一元把握 |
AWS Config が解決する課題
1. 設定変更の履歴把握が困難
課題:
- EC2 セキュリティグループが 30 日前どういう状態だったか → 不明
- S3 バケットの暗号化がいつ有効になったか → CloudTrail には API 呼び出しがあるが、現在の設定との比較ができない
- CloudFormation スタックが誰かの手動変更で ドリフト → 検出できない
AWS Config の解決:
- Configuration Item(CI)として設定スナップショットを定期保存
- → Resource Timeline で「2024年1月:port 22 開放 → 2月:閉鎖」を可視化
- → CloudFormation ドリフト検出で「期待値と実際値」の差分を表示
2. セキュリティ基準への継続的準拠確認
課題:
- CIS ベンチマーク・PCI DSS・HIPAA への準拠確認を毎月手作業
- S3 バケットが全て public ではないか、全 EBS 暗号化か → 手動チェック不可能
- 新規作成された EC2 にセキュリティグループ設定が不適切 → 対応遅延
AWS Config ルールの解決:
- 事前に Config ルール定義(s3-bucket-public-read-prohibited など)
- → リソース変更時に自動評価
- → 違反時に自動アラート(EventBridge + SNS)
- → 修復ポリシー適用で自動修正
3. Organizations 全体のコンプライアンス状況把握
課題:
- 本社・支社・子会社の複数 AWS アカウント
- 各アカウントのセキュリティ設定を把握できない
- 監査時に「全アカウントのコンプライアンス状態」を集計するのに数週間
Aggregator + Organizations の解決:
- 一つの集約アカウントで全アカウント設定を一元管理
- → ダッシュボード一つで組織全体のコンプライアンス確認
- → Conformance Pack で基準を一括適用
4. 自動修復による運用効率化
課題:
- セキュリティグループが 0.0.0.0/0 を許可している(違反) → 誰が修正? → 手作業
- EC2 に不適切な IAM ロール → 修復手順が複雑 → 対応遅延
Remediation + Automation の解決:
- Config ルール違反を検出 → Systems Manager Automation Runbook 実行
- → セキュリティグループの削除・設定修正を自動実施
主な特徴
| 特徴 | 説明 |
|---|---|
| リアルタイム設定記録 | EventBridge で API 検出時に即座に Configuration Item 作成 |
| 200+ マネージドルール | AWS が提供するルール(CIS・セキュリティ基準) |
| カスタムルール | Lambda で任意の評価ロジックを実装 |
| Conformance Pack | CIS/PCI/NIST など業界標準をテンプレートで一括デプロイ |
| 自動修復 | Systems Manager Automation でコンプライアンス違反を自動修正 |
| Resource Timeline | リソース設定の変更履歴を時系列で表示 |
| Aggregator | マルチアカウント・マルチリージョンの設定を一元管理 |
| Security Hub 統合 | Config ルール結果を Security Hub に自動連携 |
| CloudFormation ドリフト検出 | 手動変更を検出 |
| Organizations 統合 | 組織内ルールを一括デプロイ |
アーキテクチャ
graph LR
A["AWS API<br/>(EC2, S3, IAM等)"] -->|EventBridge| B["Config Recorder<br/>(設定変更検出)"]
B -->|Configuration Item| C["S3 Bucket<br/>(設定スナップショット)"]
B -->|対象リソース| D["Config ルール<br/>評価エンジン"]
D -->|Lambda呼び出し| E["カスタムルール<br/>Lambda Function"]
D -->|評価結果<br/>COMPLIANT/<br/>NON_COMPLIANT| F["Compliance<br/>State DB"]
F -->|Dashboard表示| G["AWS Config<br/>Console"]
F -->|違反検出| H["Remediation<br/>Template"]
H -->|自動実行| I["Systems Manager<br/>Automation"]
I -->|修復アクション| J["AWS リソース<br/>修正"]
G -->|集約| K["Aggregator<br/>(複数アカウント)"]
F -->|通知| L["EventBridge"]
L -->|Alert| M["SNS/Lambda/<br/>Slack"]
K -->|Security Hub| N["Security Hub<br/>CSPM"]
主要コンポーネント詳細
Recorder:設定変更の検出・記録
Recorder の役割:
1. EventBridge で AWS API 検出
2. API の結果(Configuration Item)を S3 に保存
3. 定期的(24時間ごと)にスナップショット記録
Configuration Item(CI)の内容:
{
"configurationItemVersion": "1.3",
"configurationItemCaptureTime": "2024-01-15T10:30:45.000Z",
"configurationStateId": "abcdef123456",
"awsAccountId": "123456789012",
"configurationItemStatus": "OK",
"resourceType": "AWS::EC2::Instance",
"resourceId": "i-1234567890abcdef0",
"resourceName": "my-instance",
"awsRegion": "ap-northeast-1",
"configuration": {
"imageId": "ami-0c55b159cbfafe1f0",
"instanceType": "t3.micro",
"securityGroups": [{"groupId": "sg-123456"}]
},
"relationships": [...],
"relatedEvents": [...]
}
Config ルール:マネージド・カスタム
マネージドルール例(AWS 提供・200+):
セキュリティ関連:
✓ s3-bucket-public-read-prohibited
✓ s3-bucket-server-side-encryption-enabled
✓ ec2-security-group-ingress-restrictions(0.0.0.0/0 検出)
✓ iam-root-access-key-check
✓ mfa-enabled-for-iam-console-access
✓ vpc-flow-logs-enabled
✓ cloudtrail-enabled
✓ rds-instance-public-access-check
リソース設定:
✓ ec2-instance-no-public-ip
✓ ebs-optimized-instance
✓ rds-storage-encrypted
✓ encrypted-volumes(EBS 暗号化)
コンプライアンス:
✓ required-tags
✓ approved-amis-by-id
✓ iam-inline-policy-blocked-check
カスタムルール例(Lambda):
# EC2 インスタンスに特定タグが必須
def lambda_handler(event, context):
config = event['configurationItem']
required_tags = {'Project', 'Owner', 'CostCenter'}
if config['resourceType'] != 'AWS::EC2::Instance':
return {'compliance': 'NOT_APPLICABLE'}
resource_tags = set(config['tags'].keys()) if 'tags' in config else set()
if required_tags.issubset(resource_tags):
return {'compliance': 'COMPLIANT'}
else:
return {
'compliance': 'NON_COMPLIANT',
'annotation': f'Missing tags: {required_tags - resource_tags}'
}
Conformance Pack:業界標準ルール集
テンプレート例:
- CIS AWS Foundations Benchmark(200+ ルール)
- PCI DSS 3.2.1 Compliance(40+ ルール)
- NIST 800-53(100+ ルール)
- HIPAA Compliance(50+ ルール)
- SOC2(30+ ルール)
デプロイ:
aws configservice put-conformance-pack \
--conformance-pack-name MyConformancePack \
--conformance-pack-input-parameters ParameterKey1=value1 \
--delivery-s3-bucket my-config-bucket
デプロイ対象:
✓ 単一アカウント
✓ Organizations の特定 OU
✓ 全組織
Resource Timeline:設定変更の時系列可視化
利用シーン:
- EC2 セキュリティグループ ポート 22
2024-01-01: 開放(0.0.0.0/0)
2024-01-15: 制限(172.16.0.0/12)
2024-02-01: 閉鎖
- S3 バケット暗号化
2024-01-01: 無効
2024-02-15: AES-256 有効
取得方法:
aws configservice get-resource-config-history \
--resource-type AWS::EC2::SecurityGroup \
--resource-id sg-123456
Aggregator:マルチアカウント・マルチリージョン
設定例:
組織ルート → Account A(集約アカウント)に集約
→ Account B, C, D のリソース設定を Account A で一元管理
クエリ例:
"全 AWS 環境で S3 バケットが暗号化されているか" を一発で確認
ダッシュボード:
- Non-Compliant リソース数(全アカウント集計)
- 違反パターン(集約)
- 地域別・ルール別の分析
Remediation:自動修復
テンプレート例:
{
"Name": "RemediatePublicS3Bucket",
"TargetType": "SSM_DOCUMENT",
"TargetIdentifier": "AWS-PublishSNSMessage",
"TargetVersion": "1",
"Parameters": {
"AutomationAssumeRole": "arn:aws:iam::123456789012:role/ConfigRemediation",
"Automatic": true,
"MaximumAutomaticAttempts": 3,
"RetryAttemptSeconds": 60
}
}
修復パターン:
✓ EventBridge + Systems Manager Automation
✓ Lambda 関数(カスタム修復ロジック)
✓ Config Remediation テンプレート
具体例:設定・操作
Config Recorder 有効化
# 1. IAM ロール作成
aws iam create-role \
--role-name ConfigRecorder \
--assume-role-policy-document '{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"Service": "config.amazonaws.com"},
"Action": "sts:AssumeRole"
}]
}'
# 2. ポリシー をアタッチ
aws iam attach-role-policy \
--role-name ConfigRecorder \
--policy-arn arn:aws:iam::aws:policy/service-role/ConfigRole
# 3. Recorder 作成
aws configservice put-config-recorder \
--config-recorder-name default \
--role-arn arn:aws:iam::123456789012:role/ConfigRecorder \
--recording-group allSupported=true,includeGlobalResources=true
# 4. Recorder 開始
aws configservice start-config-recorder --config-recorder-names default
# 5. Delivery Channel(S3)設定
aws configservice put-delivery-channel \
--delivery-channel-name default \
--s3-bucket-name my-config-bucket
Config ルール 評価
# マネージドルール: S3 公開読み取り禁止
aws configservice put-config-rule \
--config-rule '{
"ConfigRuleName": "s3-bucket-public-read",
"Description": "Detects S3 public read permissions",
"Source": {
"Owner": "AWS",
"SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED"
},
"Scope": {
"ComplianceResourceTypes": ["AWS::S3::Bucket"]
}
}'
# カスタムルール: Lambda ベース
aws configservice put-config-rule \
--config-rule '{
"ConfigRuleName": "required-tags",
"Description": "Check for required tags",
"Source": {
"Owner": "CUSTOM_LAMBDA",
"SourceIdentifier": "arn:aws:lambda:ap-northeast-1:123456789012:function:CheckTags",
"SourceDetails": [{
"EventSource": "aws.config",
"MessageType": "ConfigurationItemChangeNotification"
}]
}
}'
# ルール評価実行
aws configservice start-config-rules-evaluation \
--config-rule-names s3-bucket-public-read required-tags
Conformance Pack デプロイ
# CIS Benchmark デプロイ
aws configservice put-conformance-pack \
--conformance-pack-name CIS-Benchmark \
--conformance-pack-input-parameters \
s3BucketName=my-config-bucket \
--template-body file://cis-benchmark-template.yaml
# Organizations に展開
aws configservice put-organization-conformance-pack \
--organization-conformance-pack-name OrgCISPack \
--template-body file://cis-benchmark-template.yaml \
--excluded-accounts 123456789013
Remediation テンプレート
{
"Name": "RemediateUnencryptedEBS",
"TargetType": "SSM_DOCUMENT",
"TargetIdentifier": "AWS-CreateEncryptedAMIFromUnencryptedInstance",
"TargetVersion": "1",
"Parameters": {
"AutomationAssumeRole": "arn:aws:iam::123456789012:role/ConfigRemediation",
"InstanceId": "{{ ResourceId }}",
"Automatic": true,
"MaximumAutomaticAttempts": 1
}
}
類似ツール比較表
| 機能 | AWS Config | HashiCorp Sentinel | OPA/Gatekeeper | Cloud Custodian | Prisma Cloud |
|---|---|---|---|---|---|
| 設定記録 | ✓ AWS リソース | ✗ | ✗ | ✓ マルチクラウド | ✓ マルチクラウド |
| マネージドルール | ✓ 200+ | ✗ | ✗ | ✓ ルール集 | ✓ 1000+ |
| カスタムルール | ✓ Lambda | ✓ Sentinel 言語 | ✓ Rego | ✓ Python | ✓ |
| 自動修復 | ✓ Systems Manager | ✓ | ✓ | ✓ Python | ✓ |
| Kubernetes | ✗ | ✗ | ✓ 専用 | ~ | ✓ |
| Terraform 対応 | ✗ | ✓ | ✓ | ✓ | ✓ |
| Organizations 統合 | ✓ 完全 | ✗ | ✗ | ✗ | ✗ |
| Security Hub 統合 | ✓ 完全 | ✗ | ✗ | ✗ | ✓ |
| GUI ダッシュボード | ✓ | ✗ | ✗ | ~ CLI | ✓ |
| コスト | AWS Config(従量制) | Terraform Cloud(有料) | 無料 OSS | 無料 OSS | 商用 |
ベストプラクティス
実装✓
-
✅ Conformance Pack で業界標準を一括導入
- CIS Benchmark・PCI DSS・NIST テンプレート活用
- 手作業でルール定義しない
-
✅ 自動修復で継続的なコンプライアンス維持
- Systems Manager Automation + Config ルール
- 違反検出時に自動修復(マニュアル確認付き)
-
✅ Aggregator で Organizations 全体を一元管理
- 本社・支社・子会社の複数アカウント集約
- 一つのダッシュボードで全体状況把握
-
✅ CloudFormation ドリフト検出を有効化
- IaC で定義した設定が手動変更されないか検出
- Resource Timeline で「いつ誰が変更したか」を確認
-
✅ EventBridge + SNS で即時通知
- ルール違反時にリアルタイム Slack 通知
- 対応の遅延を最小化
実装❌
-
❌ マネージドルールだけで十分と考える
- 自組織特有の要件に対応するカスタムルール必須
-
❌ Conformance Pack を組織全体に一括デプロイ
- テスト OU でまず評価、段階的に展開
-
❌ 自動修復を即座に有効化
- 意図しない修復リスク → 手動確認フロー経由で段階的有効化
-
❌ Resource Timeline を活用しない
- インシデント調査時に「設定変更のタイムライン」は重要な手がかり
-
❌ Aggregator を複数管理アカウント化
- 一つの集約アカウントに集中(複数の集約アカウント構成は複雑)
トラブルシューティング
| 問題 | 原因 | 解決方法 |
|---|---|---|
| Recorder が Configuration Item を記録しない | Recorder が停止中 | aws configservice start-config-recorder で再開 |
| ルール評価が実行されない | ルールが無効状態 | aws configservice start-config-rules-evaluation で再開 |
| Conformance Pack デプロイ失敗 | S3 バケット権限不足 | Config サービスロールに S3 GetObject・PutObject 権限追加 |
| Remediation アクション が失敗 | Automation 実行ロール権限不足 | IAM ロールに対象リソース操作権限(ec2:*など)追加 |
| Resource Timeline が表示されない | Config Recorder 未有効化 | Recorder を有効化後、24 時間待機 |
| Aggregator 統計が古い | 自動更新が無効 | Organizations 内の各アカウント Recorder を確認 |
2025-2026 最新動向
Conformance Pack 地域拡大(2025年11月)
- 新リージョン対応:Organization 内での Conformance Pack デプロイがより多くリージョンで利用可能
- 段階的な企業採用加速:大企業の多地域・多アカウント環境での統一化
Resource Timeline 強化
- 完全な時系列表示:リソース設定変更を分単位で追跡
- Conformance Pack コンプライアンス履歴:ルール評価結果の Timeline 化
Security Hub CSPM 統合深化
- Config ルール結果の自動連携:Security Hub ダッシュボード で統一表示
- CSPM スコア計算:Config ルール準拠度がセキュリティスコアに反映
カスタムルール Lambda 改善
- Python 3.12 対応:実行時間短縮、新機能活用
- ルール共有ライブラリ:複数ルール間でコード再利用
AI 駆動のルール推奨(検討中)
- 生成 AI による Config ルール自動生成:セキュリティ要件から自動ルール作成
- 異常検知:設定パターンから逸脱を AI が検出
学習リソース
AWS 公式ドキュメント
- What Is AWS Config
- Managing AWS Config Rules
- Conformance Packs
- Resource Timeline
- Remediation
- Aggregator
- AWS Config Custom Rules Lambda
- Config Rules Developer Guide
- AWS Config Security Hub Integration
- Document History
オープンソース・ベンダー
- Open Policy Agent (OPA) Gatekeeper
- Cloud Custodian Documentation
- HashiCorp Sentinel Policy Language
- Prisma Cloud Documentation
- AWS Config Conformance Packs Samples
実装例・導入ロードマップ
Phase 1(1-2 ヶ月):基礎構築
Week 1-2: 環境準備
- IAM ロール作成(Config Recorder・Remediation)
- S3 バケット作成(Config 設定スナップショット)
- Recorder 有効化(全リソースタイプ)
Week 3-4: ルール導入
- マネージドルール 20-30 個をテスト OU に適用
- コンプライアンス状態確認
- EventBridge + SNS アラート設定
Phase 2(2-3 ヶ月):Conformance Pack
Week 5-6: 標準化
- CIS Benchmark Conformance Pack をテスト OU に展開
- 違反リソース特定・修復計画立案
Week 7-8: 本番展開
- Production OU に Conformance Pack 展開
- ダッシュボード・レポート設定
- コンプライアンス監視開始
Phase 3(3-4 ヶ月):自動修復
Week 9-10: Remediation 設定
- 低リスク違反(タグ追加など)の自動修復 Runbook 設定
- テスト実行・動作確認
Week 11-12: 運用最適化
- Aggregator でマルチアカウント集約
- カスタムルール 5-10 個を開発
- CloudFormation ドリフト検出有効化
実装チェックリスト
-
[ ] IAM・リソース準備
- [ ] Config Recorder IAM ロール作成
- [ ] Remediation IAM ロール作成
- [ ] S3 バケット作成・暗号化設定
- [ ] SNS トピック作成(アラート用)
-
[ ] Recorder・ルール
- [ ] Recorder 有効化(全リソース記録)
- [ ] デフォルト Recorder スケジュール確認
- [ ] マネージドルール 20-30 個適用
-
[ ] Conformance Pack
- [ ] CIS Benchmark テンプレート選定
- [ ] テスト OU に展開・評価
- [ ] 違反リソース修復計画立案
-
[ ] 自動修復
- [ ] 低リスク違反の Remediation アクション設定
- [ ] Systems Manager Automation Runbook 準備
- [ ] テスト実行・動作確認
-
[ ] マルチアカウント管理
- [ ] Aggregator 作成(集約アカウント指定)
- [ ] 全メンバーアカウント登録
- [ ] 集約ダッシュボード確認
-
[ ] 監視・通知
- [ ] CloudFormation ドリフト検出有効化
- [ ] EventBridge ルール設定(ルール違反通知)
- [ ] Slack・Email 通知確認
まとめ
AWS Config は、リソース設定管理・コンプライアンス評価・セキュリティ監視の中核 です。CloudTrail とは異なり、「設定の履歴・現在値・期待値との差分」を記録し、CIS・PCI・NIST などの業界標準に自動準拠できます。
Conformance Pack で標準ルールを一括デプロイ、自動修復で継続的なコンプライアンス維持、Aggregator で Organizations 全体を一元管理することで、監査コスト削減・セキュリティ体制の自動化を実現できます。
Security Hub との統合で、Config ルール違反が CSPM スコアに反映され、セキュリティ状況の統一的な可視化が可能です。大企業の多ア カウント・多リージョン環境では、Aggregator + Conformance Pack で「一度の Conformance Pack デプロイで全組織を統制」できる強力なツールとなります。
参考文献
AWS 公式(10+)
- What Is AWS Config
- AWS Config Developer Guide
- Conformance Packs
- Resource Timeline
- Remediation Configuration
- Aggregators
- Managing Config Rules
- Custom Config Rules Lambda
- Security Hub Integration
- AWS Config conformance packs now available in additional AWS Regions (2025)
オープンソース・ベンダー(5+)
- Open Policy Agent (OPA) Gatekeeper Documentation
- Cloud Custodian Documentation
- HashiCorp Sentinel Policy Language
- Prisma Cloud (Palo Alto Networks)
- AWS Config Samples - GitHub
最終更新:2026-04-26 バージョン:v2.0