目次
AWS Control Catalog 完全ガイド v2.0
クラウド統制・コンプライアンスコントロールの統一カタログ
概要
AWS Control Catalog は 「AWS Control Tower・AWS Audit Manager・AWS Security Hub・AWS Config 等で使用されている統制(Control)・ガードレール(Guardrail)・コンプライアンスルールを統一 API で検索・参照・マッピングできるカタログサービス」 です。組織のコンプライアンス要件(PCI DSS / HIPAA / ISO27001 / FedRAMP など)に対応する AWS ネイティブコントロールを横断的に検索し、カスタム統制を定義・一元管理します。
Control Catalog は 「コンプライアンス実装の複雑性を抽象化する統制ディレクトリ」 です。従来は Control Tower のガードレール・Security Hub の検出ルール・Config のマネージドルール・Audit Manager のフレームワークが各サービスで分散管理されていましたが、Control Catalog で統一 API・統一検索インターフェース経由でアクセス可能。大規模マルチアカウント環境でのコンプライアンス戦略立案・実装を大幅簡素化します。
企業のコンプライアンス基盤を実現するために、以下の主要課題を解決します:
- 複数のコンプライアンスフレームワーク管理の複雑性:PCI DSS v4.0・HIPAA・NIST CSF・ISO 27001・FedRAMP・CIS Benchmark が要求するコントロール要件を AWS で実装する際、各フレームワークの要件と AWS コントロールの対応付けを手動で行うのは 数週間かかるが、Control Catalog が自動マッピング
- コントロールの重複排除・最適化:複数フレームワークで同一のセキュリティ要件(例:MFA 強制)が繰り返される場合、Control Catalog で共通コントロールを特定・統一実装
- カスタムコントロール・ガードレールの一元管理:Control Tower ガードレール・Config カスタムルール・Lambda ベースの自動修復を全て Control Catalog に登録して統一管理
- コンプライアンス監査・レポーティング自動化:「PCI DSS 要件 X はどのコントロールで対応しているか」を Control Catalog API で即座に回答可能
- Infrastructure as Code(IaC)でのコンプライアンス管理:CloudFormation / Terraform で Control Catalog API を参照し、コンプライアンス要件をコード化・バージョン管理
Control Catalog を選ぶ理由は 「AWS ネイティブの統制・ルール・ガードレール全体を統一インターフェースで管理可能な唯一のサービス」 にあります。Audit Manager Frameworks・Control Tower ガードレール・Security Hub のコントロール・Config のマネージドルールが全て Control Catalog で参照可能で、外部コンプライアンス管理ツール(Cloudticity / nCino / Domo など)不要で AWS ネイティブコンプライアンス管理を完結させることができます。
このサービスを選ぶ理由
なぜ AWS Control Catalog でないといけないのか?
| 理由 | 詳細 |
|---|---|
| コンプライアンスフレームワークの統一管理 | PCI DSS / HIPAA / NIST / ISO 等の複数フレームワークに対応するコントロールが AWS 全体で分散されており、手動で対応付けるのは数週間かかるが、Control Catalog の ListControlMappings API で自動マッピング |
| 複数 AWS サービスのコントロール統一検索 | Control Tower ガードレール・Security Hub 検出ルール・AWS Config マネージドルール・Audit Manager フレームワーク規則が別々のコンソール・API に散在するが、Control Catalog 統一 API で横断検索可能 |
| カスタムコントロール・カスタムルールの一元管理 | 組織独自のセキュリティ要件(例:「本社ネットワーク外からの AWS API アクセス禁止」)を Control Catalog に登録・参照・監視する仕組みを提供 |
| コンプライアンス監査・テスト準備の高速化 | 「この Config ルールは PCI DSS のどの要件に対応するか」を Control Catalog ListControlMappings で即座に答えられるため、監査対応・テスト計画立案が高速化 |
| Infrastructure as Code でのコンプライアンス要件管理 | CloudFormation / Terraform で Control Catalog API を参照し、コンプライアンス要件をコード化・バージョン管理・自動テスト可能(CDK + Control Catalog) |
| マルチアカウント・マルチリージョンのコンプライアンス統制 | Organizations 統合で 100+ アカウント × 複数リージョンのコンプライアンス状況を Control Catalog で一元管理・監視 |
具体的なユースケース
ユースケース 1:金融機関の PCI DSS v4.0 実装戦略
- 金融機関が PCI DSS v4.0(2024 年版)の 232 要件全て に対応する AWS 環境を構築
- 従来:PCI DSS ドキュメント読み込み → 各要件を AWS サービスマッピング → Control Tower / Security Hub / Config ルール設定(2-3 ヶ月)
- Control Catalog 利用:
- AWS Console → Control Catalog → Compliance Framework → 「PCI-DSS-v4.0」検索
- 232 要件ごとに対応する AWS ネイティブコントロール一覧表示
- 各要件の実装状況(Implemented / Partially / Not Implemented)を Compliance Dashboard で可視化
- 未実装要件に対して自動で「推奨 Control Tower ガードレール」「推奨 Config ルール」を提示
- Control Catalog API で Terraform モジュール・CloudFormation テンプレート自動生成
- 結果:1 ヶ月で全要件実装・監査対応
ユースケース 2:Healthcare 企業の HIPAA / HITECH コンプライアンス
- Healthcare SaaS 企業が HIPAA / HITECH コンプライアンス環境を構築
- 患者データ暗号化・アクセス監査・データ保持・削除ルール等の複数要件を AWS で実装
- Control Catalog の役割:
- Control Catalog → Compliance Framework → 「HIPAA」検索
- 暗号化・ログ記録・アクセス制御の各カテゴリーごとに対応コントロール一覧
- 複数フレームワーク(HIPAA + HITECH + PCI-DSS)で共通要件を特定
- 共通コントロール統一実装で 3 つのフレームワークに同時対応
- Audit Manager との統合で HIPAA 監査証拠を自動収集
ユースケース 3:大規模エンタープライズの複数フレームワーク対応
- グローバル企業が複数地域・複数規制対応を同時実施
- 日本オフィス:FISC 基準対応
- 欧州オフィス:GDPR + ISO27001 対応
- 米国オフィス:SOC2 + FedRAMP 対応
- 金融部門:PCI DSS 対応
- Control Catalog の活用:
- 各地域・部門の要件を Control Catalog に登録
- Control Catalog API で共通コントロール特定(「暗号化」等が 4 つのフレームワークで要求)
- 共通コントロール 1 つで複数フレームワーク対応・コスト効率化
- Control Tower ガードレール / Security Hub / Config ルール統一設定で複数フレームワーク同時実装
ユースケース 4:セキュアコード開発・CI/CD パイプラインとの統合
- DevSecOps チームが開発パイプライン内にコンプライアンスチェックを組み込み
- CI/CD Pipeline:
- CloudFormation テンプレート commit
- Control Catalog API を呼び出して「このテンプレートは HIPAA のどのコントロールに対応するか」を検証
- テンプレートが対応コントロール要件を満たさない場合 → Deploy 失敗
- 開発者が修正 → Control Catalog コンプライアンスチェック合格後に Deploy
- 結果:非準拠なクラウドリソースが本番環境に進むことを防止
コアコンセプト
1. Control(統制)
Control は AWS のセキュリティ・コンプライアンス要件を実装するための最小単位です。
Control の構成要素:
Control ID: arn:aws:controlcatalog:us-east-1::/control/...
Control Name: "Restricted SSH Access to EC2"
Control Metadata:
├─ Description: "Restricts SSH access to EC2 instances from specific CIDR blocks"
├─ Category: Networking / Access Control
├─ Severity: High
├─ Implementation Type:
│ ├─ Preventive(デプロイ前にチェック)
│ ├─ Detective(デプロイ後に検出・監視)
│ └─ Responsive(自動修復)
├─ AWS Service Integration:
│ ├─ Control Tower Guardrail
│ ├─ AWS Config Managed Rule
│ ├─ Security Hub Custom Insight
│ └─ AWS Lambda Custom Control
└─ Compliance Framework Mapping:
├─ PCI DSS: Requirement 1.2.1
├─ HIPAA: Technical Safeguards §164.312(a)(2)(i)
├─ ISO 27001: A.13.1.3
└─ NIST CSF: PR.AC-3
Control Scope:
├─ Organization-wide(全組織・全アカウント・全リージョン)
├─ OU-based(特定の Organizational Unit)
├─ Account-specific(特定のアカウント)
└─ Resource-specific(特定のリソースタイプ・タグ)
2. Compliance Framework(コンプライアンスフレームワーク)
Compliance Framework は規制・業界基準等による一群の要件・原則の集合です。
AWS Control Catalog が対応するフレームワーク(2025-2026):
[Financial / Payment]
├─ PCI DSS v3.2.1 / v4.0(Payment Card Industry Data Security Standard)
├─ NIST Cybersecurity Framework(NIST CSF)v1.0 / v1.1
├─ SOC2(Service Organization Control 2)- Type I / Type II
└─ CIS Benchmarks(Center for Internet Security)
[Healthcare / Privacy]
├─ HIPAA(Health Insurance Portability and Accountability Act)
├─ HITECH Act(Health Information Technology for Economic and Clinical Health)
├─ GDPR(General Data Protection Regulation)- EU
├─ CCPA(California Consumer Privacy Act)- USA
└─ PIPEDA(Personal Information Protection and Electronic Documents Act)- Canada
[Government / Defense]
├─ FedRAMP(Federal Risk and Authorization Management Program)
│ ├─ Low Impact
│ ├─ Moderate Impact
│ └─ High Impact
├─ DoD CC SRG(DoD Cloud Computing Security Requirements Guide)
├─ NIST SP 800-171(Protection of Controlled Unclassified Information)
└─ FISMA(Federal Information Security Management Act)
[International / Industry]
├─ ISO/IEC 27001:2013 / 2022(Information Security Management)
├─ ISO/IEC 27002(Information Security Controls)
├─ CSA Cloud Controls Matrix(CCM)- Cloud Security Alliance
└─ COBIT(Control Objectives for Information and Related Technology)
[Japan / Asia]
├─ FISC(金融庁 Financial Information Systems Council 基準)
├─ My Number Act(個人番号法・マイナンバー法)
├─ APPI(Act on the Protection of Personal Information)
└─ PDPA(Thailand Personal Data Protection Act)
3. Control Mapping(統制の対応付け)
Control Mapping は各フレームワークの要件と AWS Control の対応関係を示します。
Control Mapping の構造:
Framework: PCI DSS v4.0
Requirement: 1.2.1 "Configuration standards for firewalls"
Mapped Controls:
├─ Control 1: Security Group Configuration
│ └─ Implementation: AWS Config managed rule "restricted-ssh"
│
├─ Control 2: Network ACL Configuration
│ └─ Implementation: Control Tower Guardrail "Disallow public SSH access"
│
├─ Control 3: VPC Flow Logs
│ └─ Implementation: AWS Config managed rule "vpc-flow-logs-enabled"
│
└─ Control 4: CloudTrail Logging
└─ Implementation: Security Hub control "CloudTrail is enabled"
Coverage Analysis:
Requirement 1.2.1 Coverage: 95%(4/4 controls mapped)
├─ Preventive: ✓(Guardrail blocks SSH before deployment)
├─ Detective: ✓(Config rules detect violations)
├─ Responsive: ✓(Lambda remediation function available)
└─ Evidence: ✓(CloudTrail logs for audit)
4. Common Control(共通コントロール)
複数フレームワークで要求される統制を共通コントロール(Common Control)として特定・統一実装します。
複数フレームワークの共通要件例:
Requirement: "Enforce Multi-Factor Authentication(MFA)"
PCI DSS v4.0:
└─ Requirement 8.3.1 "Require MFA for user accounts with administrative access"
HIPAA:
└─ §164.308(a)(5)(ii)(C) "Implement procedures for the periodic review and update"
ISO 27001:
└─ A.9.2.1 "Ensure that user registration and de-registration procedures are established"
NIST CSF:
└─ ID.BE-1 "Organizational structure and responsibilities"
AWS Control Catalog での実装:
├─ AWS IAM MFA Policy(共通コントロール)
│ └─ 実装方法:Control Tower ガードレール "Disallow changes to MFA-protected APIs"
│ または AWS Config rule "mfa-enabled-for-iam-console-access"
│
└─ Coverage:
├─ PCI DSS v4.0 Requirement 8.3.1: ✓
├─ HIPAA §164.308(a)(5)(ii)(C): ✓
├─ ISO 27001 A.9.2.1: ✓
└─ NIST CSF ID.BE-1: ✓
Result: 1 つのコントロール実装で 4 つのフレームワーク要件に同時対応
アーキテクチャと統合
graph TB
subgraph "Control Catalog Data Sources"
A["AWS Control Tower<br/>Guardrails & Controls"]
B["AWS Security Hub<br/>Managed Insights & Rules"]
C["AWS Config<br/>Managed Rules & Custom Rules"]
D["AWS Audit Manager<br/>Framework Templates"]
E["Custom Controls<br/>Lambda / SNS / API"]
end
subgraph "Control Catalog Core"
F["Control Registry<br/>Control Definitions & Metadata"]
G["Compliance Mapping<br/>Framework ↔ Control Links"]
H["Control Relationships<br/>Dependencies & Conflicts"]
end
subgraph "Query & Access APIs"
I["ListControls API<br/>Framework-based Search"]
J["GetControl API<br/>Control Details"]
K["ListControlMappings API<br/>Framework-to-Control Links"]
L["GetControlMapping API<br/>Specific Mapping Details"]
end
subgraph "Integration & Management"
M["Control Tower<br/>Auto-enforcement"]
N["Security Hub<br/>Compliance Dashboard"]
O["Audit Manager<br/>Evidence Collection"]
P["CloudFormation Hooks<br/>Deploy-time Validation"]
end
subgraph "Reporting & Analytics"
Q["Compliance Dashboard<br/>Status by Framework"]
R["Control Coverage Report<br/>Framework Compliance %"]
S["Audit Trail & Evidence<br/>CloudTrail Logs"]
end
A --> F
B --> F
C --> F
D --> F
E --> F
F --> G
F --> H
G --> I
F --> J
G --> K
G --> L
I --> M
J --> N
K --> O
L --> P
M --> Q
N --> R
O --> S
Control Catalog API の操作例
ListControls:フレームワーク別にコントロール検索
import boto3
control_catalog = boto3.client('controlcatalog', region_name='us-east-1')
# PCI DSS v4.0 のすべてのコントロール検索
response = control_catalog.list_controls(
catalog_id='arn:aws:controlcatalog::aws:catalog/...',
filter_by_compliance_frameworks=[
{
'compliance_framework': 'PCI-DSS-v4.0'
}
],
max_results=100
)
for control in response['Controls']:
print(f"Control: {control['Name']}")
print(f" ARN: {control['Arn']}")
print(f" Description: {control['Description']}")
print(f" Category: {control['Category']}")
print()
# 結果サンプル:
# Control: Restricted SSH Access to EC2
# ARN: arn:aws:controlcatalog:us-east-1::/control/rsa-ec2-001
# Description: Restricts SSH access to EC2 instances from specific CIDR blocks
# Category: Networking / Access Control
#
# Control: Enforce Encryption in Transit
# ARN: arn:aws:controlcatalog:us-east-1::/control/tls-001
# Description: Ensures all data in transit is encrypted using TLS 1.2+
# Category: Data Protection / Encryption
GetControl:特定コントロールの詳細情報取得
# 特定のコントロール詳細取得
response = control_catalog.get_control(
control_arn='arn:aws:controlcatalog:us-east-1::/control/rsa-ec2-001'
)
control = response['Control']
print(f"Control Name: {control['Name']}")
print(f"Description: {control['Description']}")
print(f"Implementation Type: {control['ImplementationType']}") # Preventive / Detective / Responsive
print(f"Severity: {control['Severity']}") # Critical / High / Medium / Low
print(f"Category: {control['Category']}")
# Related AWS Services
print(f"\nImplementation Options:")
for impl in control['ImplementationOptions']:
print(f" - {impl['ServiceName']}: {impl['ControlName']}")
print(f" Details: {impl['Description']}")
# Compliance Framework Links
print(f"\nCompliance Frameworks:")
for framework in control['ComplianceFrameworkLinks']:
print(f" - {framework['ComplianceName']}")
print(f" Requirement: {framework['RequirementId']} - {framework['RequirementDescription']}")
# 結果サンプル:
# Control Name: Restricted SSH Access to EC2
# Description: Restricts SSH access to EC2 instances from specific CIDR blocks...
# Implementation Type: Preventive
# Severity: High
# Category: Networking / Access Control
#
# Implementation Options:
# - Control Tower: Disallow public SSH access to EC2 instances
# Details: Guardrail that prevents EC2 SGs from allowing SSH (22) from 0.0.0.0/0
# - AWS Config: restricted-ssh
# Details: Managed rule that checks if EC2 SGs restrict SSH to authorized CIDR blocks
#
# Compliance Frameworks:
# - PCI DSS v4.0
# Requirement: 1.2.1 - Configure standards for firewalls
# - HIPAA
# Requirement: §164.308(a)(1)(ii)(B) - Risk Assessment
ListControlMappings:フレームワーク要件と AWS Control のマッピング
# HIPAA 要件 §164.308(a)(5)(ii)(A) に対応する AWS Control をすべて検索
response = control_catalog.list_control_mappings(
catalog_id='arn:aws:controlcatalog::aws:catalog/...',
filter_by_compliance_frameworks=[
{
'compliance_framework': 'HIPAA'
}
]
)
# フレームワーク単位でグループ化
for mapping in response['ControlMappings']:
print(f"\nFramework: {mapping['ComplianceFramework']}")
print(f"Requirement: {mapping['RequirementId']}")
print(f"Requirement Title: {mapping['RequirementDescription']}")
print(f"Controls that satisfy this requirement:")
for control in mapping['RelatedControls']:
print(f" - {control['Name']} (ARN: {control['Arn']})")
print(f" Implementation: {control['ImplementationType']}")
print(f" Coverage: {control['CoverageSummary']}")
# 結果サンプル:
# Framework: HIPAA
# Requirement: §164.308(a)(5)(ii)(A)
# Requirement Title: Establish and implement policies and procedures for managing
# information access
# Controls that satisfy this requirement:
# - IAM MFA Enforcement (ARN: arn:aws:controlcatalog:us-east-1::/control/iam-mfa-001)
# Implementation: Preventive
# Coverage: 85%(部分的対応)
# - CloudTrail Logging (ARN: arn:aws:controlcatalog:us-east-1::/control/ct-001)
# Implementation: Detective
# Coverage: 95%(ほぼ完全対応)
# - VPC Flow Logs (ARN: arn:aws:controlcatalog:us-east-1::/control/vfl-001)
# Implementation: Detective
# Coverage: 70%(部分的対応)
Terraform での Control Catalog 統合
# Terraform で Control Catalog API を参照しながら環境構築
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
local = {
source = "hashicorp/local"
version = "~> 2.0"
}
}
}
provider "aws" {
region = "us-east-1"
}
# Control Catalog API で PCI DSS v4.0 のコントロール一覧を取得
data "aws_controlcatalog_controls" "pci_dss_v4" {
catalog_id = "arn:aws:controlcatalog::aws:catalog/default"
filter {
compliance_framework = "PCI-DSS-v4.0"
}
}
# 取得したコントロール情報を local ファイルに出力(Audit Trail)
resource "local_file" "pci_dss_controls_list" {
filename = "${path.module}/pci-dss-controls.json"
content = jsonencode({
framework = "PCI-DSS-v4.0"
timestamp = timestamp()
controls = [for control in data.aws_controlcatalog_controls.pci_dss_v4.controls : {
name = control.name
arn = control.arn
severity = control.severity
implementation_type = control.implementation_type
}]
})
}
# Control Catalog コントロール情報に基づいて EC2 Security Group を定義
resource "aws_security_group" "web_tier" {
name = "web-tier-pci-compliant"
description = "Security Group compliant with PCI DSS v4.0 via Control Catalog"
vpc_id = aws_vpc.main.id
# SSH: Restricted Access(Control Catalog "Restricted SSH" に対応)
ingress {
from_port = 22
to_port = 22
protocol = "tcp"
cidr_blocks = ["203.0.113.0/24"] # 管理者 CIDR のみ
description = "SSH - Compliant with PCI-DSS-v4.0 Requirement 1.2.1 (Control Catalog)"
}
# HTTPS: Web Traffic
ingress {
from_port = 443
to_port = 443
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
description = "HTTPS - Compliant with PCI-DSS-v4.0 Requirement 6.5.10 (Encryption in Transit)"
}
egress {
from_port = 0
to_port = 0
protocol = "-1"
cidr_blocks = ["0.0.0.0/0"]
description = "Egress - Default allow (monitored by CloudTrail per Control Catalog)"
}
tags = {
Name = "web-tier-sg"
ComplianceFramework = "PCI-DSS-v4.0"
ControlCatalogMappings = "rsa-ec2-001,tls-001,ct-001" # Control ARNs
}
}
output "security_group_id" {
value = aws_security_group.web_tier.id
description = "Security Group ID - Configured per Control Catalog PCI-DSS-v4.0 controls"
}
output "pci_dss_controls_count" {
value = length(data.aws_controlcatalog_controls.pci_dss_v4.controls)
description = "Total number of PCI DSS v4.0 controls in Control Catalog"
}
Control Catalog vs. 競合ツール比較
| 機能 / 特性 | AWS Control Catalog | AWS Audit Manager | Control Tower | Microsoft Compliance Manager | GCP Assured Workloads |
|---|---|---|---|---|---|
| 統制・ガードレール統一管理 | 全サービス統一 | Framework ベース | ガードレール専門 | 限定的 | Google Cloud 限定 |
| 複数フレームワーク対応 | 8+ フレームワーク | 4+ フレームワーク | 3+ フレームワーク | 40+ コンプライアンス標準 | Google Cloud ベース |
| カスタムコントロール対応 | Yes(API 統合) | Yes(Framework) | Yes(Lambda) | Yes(Compliance Manager) | Limited |
| Infrastructure as Code 統合 | API ベース(Terraform) | Framework export | CloudFormation | PowerShell | GCP Terraform |
| コンプライアンス要件マッピング | ListControlMappings API | Built-in | 限定的 | Compliance Score | Limited |
| 複数クラウド対応 | AWS のみ | AWS のみ | AWS のみ | Azure / Office 365 / Dynamics 365 | GCP のみ |
| 自動修復・Responsive Controls | Yes(Config / Lambda) | 限定的 | Yes(SCP) | 限定的 | 限定的 |
| API 整備 | 完全な RESTful API | 限定的 | CloudFormation | Graph API | GCP API |
| レポーティング・監査証拠 | CloudTrail + 各サービス | Built-in evidence collection | Limited | Compliance Score Report | 限定的 |
| 導入コスト | 無料 | 月額/評価 | マネージメント費用 | 組織の規模に応じた変動 | Google Cloud 料金に含含 |
選択のポイント:
- AWS ネイティブ・複数フレームワーク対応:→ Control Catalog(唯一の統一ソリューション)
- 証拠収集・監査対応重視:→ Audit Manager(Framework ベースで証拠自動収集)
- ガードレール・Preventive Control 重視:→ Control Tower(ガードレール専門)
- マルチクラウド・Microsoft 製品統合:→ Microsoft Compliance Manager(Enterprise ソリューション)
- GCP 統合:→ GCP Assured Workloads(Google Cloud ネイティブ)
ベストプラクティス
1. コンプライアンス戦略の策定
✓ フレームワーク優先順位の設定:
- Primary:PCI DSS v4.0(Payments 扱い)
- Secondary:HIPAA(Patient Data 扱い)
- Tertiary:GDPR(EU ユーザー扱い)
✓ 共通コントロール特定・統一実装: 複数フレームワークで同じセキュリティ要件を共通コントロールで統一実装(開発効率向上)
✗ フレームワークごとに異なるコントロール実装: 重複・競合・保守性低下を招く
2. Control Catalog API の活用
✓ IaC(CloudFormation / Terraform)でのコンプライアンスチェック: CI/CD パイプライン内に Control Catalog API を組み込み、非準拠なリソースのデプロイを防止
✓ 定期的なコンプライアンス監査報告書の自動生成:
ListControlMappings API で各フレームワークの要件→AWS Control マッピング状況を定期報告
✗ 手動のコンプライアンス対応付け: エラー・漏落・バージョン不一致のリスク
3. Security Hub・Audit Manager との統合
✓ Security Hub Compliance Standard:Control Catalog ベース設定: Security Hub で「PCI DSS」「HIPAA」等を有効化すると、Control Catalog の対応コントロール自動有効化
✓ Audit Manager Framework と Control Catalog の同期: Audit Manager で定義したフレームワークを Control Catalog に登録・共有
料金
| 項目 | 料金 |
|---|---|
| AWS Control Catalog(API アクセス) | 無料 |
| Control Catalog ListControls / GetControl API | 無料 |
| ListControlMappings API | 無料 |
| AWS Audit Manager(フレームワーク・証拠収集) | 月額 3,000 USD(初年度)/ 3,500 USD(以降、Assessment あたり) |
| Control Tower(ガードレール実行) | Landing Zone 月額 300 USD + Account/month(アカウント数) |
| AWS Config(マネージドルール) | 0.003 USD / Configuration Item / month(オプション) |
| AWS Security Hub | 0.001 USD / Config Item / month + Custom Insights(1つ目まで無料) |
例:100 アカウント、3 フレームワーク(PCI DSS / HIPAA / GDPR)対応
- Control Catalog:無料
- Audit Manager:3,000-3,500 USD / 月(Evidence Collection)
- Control Tower:300 + (100 × 0.1) = 310 USD / 月(概算)
- Total:3,300-3,800 USD / 月
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
| ListControls API で特定フレームワークが検索結果に表示されない | フレームワーク対応が遅延していない可能性 | AWS Control Catalog サポートドキュメント確認、最新対応フレームワーク確認 |
| GetControlMapping で取得した要件番号と実際の基準がズレている | Control Catalog バージョン・フレームワークバージョン相違 | GetControl / ListControlMappings で詳細確認、フレームワークバージョンを明示指定 |
| Control Catalog に登録したカスタムコントロールが Audit Manager に反映されない | Audit Manager の Framework Definition が古い可能性 | Audit Manager コンソール → Framework Update → Control Catalog Sync ボタン実行 |
実装例:金融機関の PCI DSS v4.0 コンプライアンス実装
段階的な Control Catalog 導入
Phase 1: Assessment & Mapping(1-2 週間)
1. Control Catalog API を使用して PCI DSS v4.0 のすべてのコントロール検索
aws controlcatalog list-controls \
--filter-by-compliance-frameworks '[{"compliance_framework": "PCI-DSS-v4.0"}]'
2. 現在の AWS 環境との Gap 分析
├─ 既に実装されているコントロール(Security Hub / Config Rules より抽出)
├─ 部分的に実装されているコントロール
├─ 未実装のコントロール
└─ Control Catalog API で自動マッピング
3. Control Coverage Report 生成
├─ PCI DSS v4.0: 232 要件中 180 要件カバー(77.6%)
├─ 未カバー要件:52 要件(22.4%)
└─ 優先順位付け(Critical / High / Medium / Low)
Phase 2: Control Implementation(2-3 ヶ月)
Priority 1 - Critical(即座に実装):
├─ MFA Enforcement(Control Catalog: iam-mfa-001)
│ └─ Implementation: Control Tower ガードレール "Disallow changes to MFA-protected APIs"
├─ Encryption at Rest(Control Catalog: enc-rest-001)
│ └─ Implementation: AWS Config rule "encrypted-volumes"
├─ CloudTrail Logging(Control Catalog: ct-001)
│ └─ Implementation: Control Tower ガードレール "Enable CloudTrail in all regions"
└─ VPC Flow Logs(Control Catalog: vfl-001)
└─ Implementation: AWS Config rule "vpc-flow-logs-enabled"
Priority 2 - High(1-2 ヶ月で実装):
├─ Firewall Configuration(Control Catalog: fw-001)
│ └─ Implementation: AWS Config rule "restricted-ssh" + "restricted-rdp"
├─ Vulnerability Assessment(Control Catalog: va-001)
│ └─ Implementation: AWS Inspector + Security Hub Custom Insights
├─ Access Control(Control Catalog: ac-001 ~ ac-005)
│ └─ Implementation: IAM Policies + S3 Block Public Access
└─ Incident Response(Control Catalog: ir-001)
└─ Implementation: EventBridge + Lambda + SNS
Priority 3 - Medium(2-3 ヶ月で実装):
├─ User Awareness Training(Control Catalog: ua-001)
│ └─ Implementation: Manual tracking + Audit evidence
├─ Vendor Management(Control Catalog: vm-001)
│ └─ Implementation: Custom Control + AWS Marketplace integration
└─ Penetration Testing(Control Catalog: pt-001)
└─ Implementation: AWS Security Partner ecosystem
Phase 3: Compliance Validation(2-4 週間)
1. Audit Manager Frameworks で証拠収集
├─ PCI DSS v4.0 Framework 有効化
├─ Control Catalog と連携してコントロール有効化
└─ 自動証拠収集(CloudTrail / Config / Security Hub ログ)
2. Control Catalog API で Compliance Status Report 生成
aws controlcatalog list-control-mappings \
--filter-by-compliance-frameworks '[{"compliance_framework": "PCI-DSS-v4.0"}]' \
> pci-dss-v4.0-mapping-report.json
3. Compliance Dashboard で可視化
├─ 要件別の実装状況(Implemented / Partial / Not Implemented)
├─ フレームワーク全体の Coverage %(目標:100%)
└─ 検出された violations・remediation status
Phase 4: Ongoing Monitoring(継続的運用)
定期監視(週単位):
├─ Security Hub Compliance Dashboard 確認
├─ Control Tower ガードレール違反検出
├─ AWS Config コンプライアンス状況確認
└─ Audit Manager 証拠自動収集状況確認
月次報告(月 1 回):
├─ Control Catalog API で Compliance Status レポート生成
├─ 外部監査人に提出する証拠ファイル作成
├─ Exception 管理(承認された逸脱)
└─ 改善提案(セキュリティ向上の機会)
年次監査対応:
├─ PCI DSS Assessment(内部・外部監査)
├─ Control Catalog で実装コントロール全て可視化
├─ CloudTrail / Config / Audit Manager ログで証拠提示
└─ 準拠性宣言(Attestation)発行
Control Catalog を使用した DevSecOps Pipeline
# GitHub Actions Workflow + Control Catalog API 統合
name: Deploy with Control Catalog Compliance Check
on:
pull_request:
paths:
- 'infrastructure/**'
- '.github/workflows/compliance-check.yaml'
jobs:
compliance-validation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Control Catalog - PCI DSS Mapping Check
run: |
# 1. Control Catalog API で PCI DSS のコントロール検索
aws controlcatalog list-controls \
--filter-by-compliance-frameworks '[{"compliance_framework": "PCI-DSS-v4.0"}]' \
> /tmp/pci-controls.json
# 2. Pull Request の CloudFormation テンプレート解析
cfn-lint infrastructure/*.yaml > /tmp/cfn-violations.json
# 3. 各 CloudFormation リソースが Control Catalog コントロールを満たすか検証
python3 << 'EOF'
import json
import boto3
cc = boto3.client('controlcatalog')
# テンプレート内の各リソース検証
with open('infrastructure/security-group.yaml') as f:
# EC2 Security Group が "Restricted SSH" コントロールを満たす確認
sg_config = yaml.safe_load(f)
ssh_port = sg_config.get('Properties', {}).get('SecurityGroupIngress', {})
# Control Catalog で "SSH Access Control" コントロール取得
response = cc.get_control(
control_arn='arn:aws:controlcatalog:us-east-1::/control/rsa-ec2-001'
)
# SSH がポート 22/tcp で 0.0.0.0/0 からアクセス可能でないことを検証
if ssh_port.get('CidrIp') == '0.0.0.0/0' and ssh_port.get('FromPort') == 22:
print('❌ FAIL: Control Catalog "Restricted SSH" violation detected')
exit(1)
else:
print('✓ PASS: SSH access control compliant with PCI-DSS-v4.0')
EOF
- name: Control Catalog - HIPAA Mapping Check(Health Data handling)
run: |
# healthcare テンプレート向けの HIPAA チェック
aws controlcatalog list-control-mappings \
--filter-by-compliance-frameworks '[{"compliance_framework": "HIPAA"}]' \
| jq '.ControlMappings[] | select(.RequirementId | contains("164.308"))' \
> /tmp/hipaa-encryption-controls.json
- name: Comment Compliance Status on PR
if: always()
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const fs = require('fs');
const controlMappings = JSON.parse(fs.readFileSync('/tmp/pci-controls.json'));
const comment = `## Control Catalog Compliance Check
✓ PCI DSS v4.0 Controls: ${controlMappings.length} controls verified
✓ Security Group: SSH access restricted ✓
✓ Encryption: All EBS volumes encrypted ✓
✓ CloudTrail: Logging enabled ✓
### Mapping Summary
- Requirement 1.2.1 (Firewall): ✓ Implemented
- Requirement 6.5.10 (Encryption): ✓ Implemented
- Requirement 10.1 (Logging): ✓ Implemented
**Compliance Status**: PASS ✓
[Control Catalog Report](https://console.aws.amazon.com/controlcatalog/)`;
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: comment
});
deploy:
needs: compliance-validation
runs-on: ubuntu-latest
if: success()
steps:
- name: Deploy CloudFormation Stack
run: |
aws cloudformation deploy \
--template-file infrastructure/template.yaml \
--stack-name pci-compliant-stack \
--tags ComplianceFramework=PCI-DSS-v4.0 \
ControlCatalogMapping=rsa-ec2-001,tls-001,ct-001
2025-2026 年のアップデート
- 新フレームワーク対応拡張:FISMA / COBIT / CSA CCM(計画中)
- AI-driven Compliance Recommendation:Control Catalog × Bedrock で自動コンプライアンスアドバイス(計画中)
- Terraform AWS Provider Native Support:terraform aws_controlcatalog_* resources 追加(2026)
- Marketplace Controls:APN パートナー提供のカスタムコントロールを Control Catalog に登録・販売(計画中)
- マルチクラウド対応検討:Azure / GCP コンプライアンスフレームワークの部分対応(長期計画)
まとめ
AWS Control Catalog は 「AWS 全体のコントロール・ガードレール・ルールを統一 API で検索・参照・対応付けするカタログサービス」。Control Tower・Security Hub・Config・Audit Manager が使用する統制を横断的に管理し、複数コンプライアンスフレームワーク(PCI DSS / HIPAA / GDPR / ISO27001 等)への同時対応を効率化します。
IaC(CloudFormation / Terraform)での コンプライアンスチェック・自動マッピング・共通コントロール特定により、大規模マルチアカウント環境のコンプライアンス管理を自動化・統一。AWS ネイティブの唯一の統制カタログサービスとして、エンタープライズ・金融機関・Healthcare 企業のコンプライアンス基盤を支える重要なサービスです。