implementing-aws-config-rules-for-compliance
实施 AWS Config 规则,对 AWS 资源进行持续合规监控,部署符合 CIS 和 PCI DSS 框架的托管和自定义规则,使用 SSM Automation 配置自动修复,并在多账户之间聚合合规数据。
Best use case
implementing-aws-config-rules-for-compliance is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
实施 AWS Config 规则,对 AWS 资源进行持续合规监控,部署符合 CIS 和 PCI DSS 框架的托管和自定义规则,使用 SSM Automation 配置自动修复,并在多账户之间聚合合规数据。
Teams using implementing-aws-config-rules-for-compliance should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/implementing-aws-config-rules-for-compliance/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How implementing-aws-config-rules-for-compliance Compares
| Feature / Agent | implementing-aws-config-rules-for-compliance | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
实施 AWS Config 规则,对 AWS 资源进行持续合规监控,部署符合 CIS 和 PCI DSS 框架的托管和自定义规则,使用 SSM Automation 配置自动修复,并在多账户之间聚合合规数据。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 实施 AWS Config 规则以实现合规
## 适用场景
- 为 AWS 资源建立针对监管标准的持续合规监控时
- 实施配置漂移的自动检测和修复时
- 使用 AWS Organizations 构建跨多个 AWS 账户的合规仪表盘时
- 审计团队需要持续合规证据而非时点评估时
- 部署能在资源创建后几分钟内检测不合规资源的护栏时
**不适用于**:实时威胁检测(使用 GuardDuty)、应用漏洞扫描(使用 Inspector),或一次性合规评估(使用 Prowler 进行更快的即席审计)。
## 前置条件
- 在所有目标账户和区域启用 AWS Config 记录
- 具有 `config:*`、`ssm:*` 和 `lambda:*` 权限的 IAM 角色用于规则管理
- 配置 AWS Organizations 委派管理员,用于 Config 聚合
- S3 存储桶用于 Config 传输通道,SNS 主题用于通知
- CloudFormation StackSets 或 Terraform 用于多账户规则部署
## 工作流程
### 步骤 1:启用 AWS Config 记录
在每个目标账户中设置 Config 记录器和传输通道。
```bash
# 创建用于 Config 数据的 S3 存储桶
aws s3api create-bucket \
--bucket config-compliance-data-ACCOUNT_ID \
--region us-east-1
# 创建 Config 服务关联角色
aws iam create-service-linked-role --aws-service-name config.amazonaws.com
# 启动 Config 记录器
aws configservice put-configuration-recorder \
--configuration-recorder name=default,roleARN=arn:aws:iam::ACCOUNT:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig \
--recording-group allSupported=true,includeGlobalResourceTypes=true
# 设置传输通道
aws configservice put-delivery-channel \
--delivery-channel '{
"name": "default",
"s3BucketName": "config-compliance-data-ACCOUNT_ID",
"snsTopicARN": "arn:aws:sns:us-east-1:ACCOUNT:config-notifications",
"configSnapshotDeliveryProperties": {"deliveryFrequency": "TwentyFour_Hours"}
}'
# 启动记录
aws configservice start-configuration-recorder --configuration-recorder-name default
```
### 步骤 2:部署用于 CIS 合规的托管 Config 规则
启用映射到 CIS AWS Foundations Benchmark 控制项的 AWS 托管 Config 规则。
```bash
# S3 存储桶安全规则
aws configservice put-config-rule --config-rule '{
"ConfigRuleName": "s3-bucket-public-read-prohibited",
"Source": {"Owner": "AWS", "SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED"}
}'
aws configservice put-config-rule --config-rule '{
"ConfigRuleName": "s3-bucket-server-side-encryption-enabled",
"Source": {"Owner": "AWS", "SourceIdentifier": "S3_BUCKET_SERVER_SIDE_ENCRYPTION_ENABLED"}
}'
aws configservice put-config-rule --config-rule '{
"ConfigRuleName": "s3-bucket-ssl-requests-only",
"Source": {"Owner": "AWS", "SourceIdentifier": "S3_BUCKET_SSL_REQUESTS_ONLY"}
}'
# IAM 安全规则
aws configservice put-config-rule --config-rule '{
"ConfigRuleName": "iam-root-access-key-check",
"Source": {"Owner": "AWS", "SourceIdentifier": "IAM_ROOT_ACCESS_KEY_CHECK"}
}'
aws configservice put-config-rule --config-rule '{
"ConfigRuleName": "mfa-enabled-for-iam-console-access",
"Source": {"Owner": "AWS", "SourceIdentifier": "MFA_ENABLED_FOR_IAM_CONSOLE_ACCESS"}
}'
aws configservice put-config-rule --config-rule '{
"ConfigRuleName": "iam-password-policy",
"Source": {"Owner": "AWS", "SourceIdentifier": "IAM_PASSWORD_POLICY"},
"InputParameters": "{\"RequireUppercaseCharacters\":\"true\",\"RequireLowercaseCharacters\":\"true\",\"RequireSymbols\":\"true\",\"RequireNumbers\":\"true\",\"MinimumPasswordLength\":\"14\"}"
}'
# 网络安全规则
aws configservice put-config-rule --config-rule '{
"ConfigRuleName": "restricted-ssh",
"Source": {"Owner": "AWS", "SourceIdentifier": "INCOMING_SSH_DISABLED"}
}'
aws configservice put-config-rule --config-rule '{
"ConfigRuleName": "vpc-flow-logs-enabled",
"Source": {"Owner": "AWS", "SourceIdentifier": "VPC_FLOW_LOGS_ENABLED"}
}'
# 加密规则
aws configservice put-config-rule --config-rule '{
"ConfigRuleName": "rds-storage-encrypted",
"Source": {"Owner": "AWS", "SourceIdentifier": "RDS_STORAGE_ENCRYPTED"}
}'
aws configservice put-config-rule --config-rule '{
"ConfigRuleName": "encrypted-volumes",
"Source": {"Owner": "AWS", "SourceIdentifier": "ENCRYPTED_VOLUMES"}
}'
```
### 步骤 3:使用 Lambda 创建自定义 Config 规则
针对组织特定的合规要求构建自定义规则。
```python
# custom_config_rule.py - 确保 EC2 实例具有必需的标签
import json
import boto3
config = boto3.client('config')
REQUIRED_TAGS = ['Environment', 'Owner', 'CostCenter', 'Project']
def lambda_handler(event, context):
invoking_event = json.loads(event['invokingEvent'])
configuration_item = invoking_event.get('configurationItem', {})
if configuration_item['resourceType'] != 'AWS::EC2::Instance':
return
tags = {t['key']: t['value'] for t in configuration_item.get('tags', [])}
missing_tags = [tag for tag in REQUIRED_TAGS if tag not in tags]
if missing_tags:
compliance = 'NON_COMPLIANT'
annotation = f"缺少必需标签: {', '.join(missing_tags)}"
else:
compliance = 'COMPLIANT'
annotation = '所有必需标签均已存在'
config.put_evaluations(
Evaluations=[{
'ComplianceResourceType': configuration_item['resourceType'],
'ComplianceResourceId': configuration_item['resourceId'],
'ComplianceType': compliance,
'Annotation': annotation,
'OrderingTimestamp': configuration_item['configurationItemCaptureTime']
}],
ResultToken=event['resultToken']
)
```
```bash
# 部署自定义规则
aws configservice put-config-rule --config-rule '{
"ConfigRuleName": "ec2-required-tags",
"Source": {
"Owner": "CUSTOM_LAMBDA",
"SourceIdentifier": "arn:aws:lambda:us-east-1:ACCOUNT:function:config-required-tags",
"SourceDetails": [{
"EventSource": "aws.config",
"MessageType": "ConfigurationItemChangeNotification"
}]
},
"Scope": {"ComplianceResourceTypes": ["AWS::EC2::Instance"]}
}'
```
### 步骤 4:配置自动修复
设置 SSM Automation 文档,自动修复不合规资源。
```bash
# 自动修复公开访问的 S3 存储桶
aws configservice put-remediation-configurations --remediation-configurations '[{
"ConfigRuleName": "s3-bucket-public-read-prohibited",
"TargetType": "SSM_DOCUMENT",
"TargetId": "AWS-DisableS3BucketPublicReadWrite",
"Parameters": {
"S3BucketName": {"ResourceValue": {"Value": "RESOURCE_ID"}},
"AutomationAssumeRole": {"StaticValue": {"Values": ["arn:aws:iam::ACCOUNT:role/ConfigRemediationRole"]}}
},
"Automatic": true,
"MaximumAutomaticAttempts": 3,
"RetryAttemptSeconds": 60
}]'
# 自动修复未加密的 EBS 卷
aws configservice put-remediation-configurations --remediation-configurations '[{
"ConfigRuleName": "encrypted-volumes",
"TargetType": "SSM_DOCUMENT",
"TargetId": "AWS-EnableEBSEncryptionByDefault",
"Parameters": {
"AutomationAssumeRole": {"StaticValue": {"Values": ["arn:aws:iam::ACCOUNT:role/ConfigRemediationRole"]}}
},
"Automatic": true,
"MaximumAutomaticAttempts": 1,
"RetryAttemptSeconds": 300
}]'
# 自动修复允许来自 0.0.0.0/0 SSH 访问的安全组
aws configservice put-remediation-configurations --remediation-configurations '[{
"ConfigRuleName": "restricted-ssh",
"TargetType": "SSM_DOCUMENT",
"TargetId": "AWS-DisablePublicAccessForSecurityGroup",
"Parameters": {
"GroupId": {"ResourceValue": {"Value": "RESOURCE_ID"}},
"AutomationAssumeRole": {"StaticValue": {"Values": ["arn:aws:iam::ACCOUNT:role/ConfigRemediationRole"]}}
},
"Automatic": true,
"MaximumAutomaticAttempts": 3,
"RetryAttemptSeconds": 60
}]'
```
### 步骤 5:设置多账户聚合
将所有组织账户的合规数据聚合到中央视图。
```bash
# 为组织创建 Config 聚合器
aws configservice put-configuration-aggregator \
--configuration-aggregator-name org-compliance-aggregator \
--organization-aggregation-source '{
"RoleArn": "arn:aws:iam::ACCOUNT:role/ConfigAggregatorRole",
"AllAwsRegions": true
}'
# 跨所有账户查询聚合合规情况
aws configservice get-aggregate-compliance-details-by-config-rule \
--configuration-aggregator-name org-compliance-aggregator \
--config-rule-name s3-bucket-public-read-prohibited \
--compliance-type NON_COMPLIANT \
--query 'AggregateEvaluationResults[*].[AccountId,AwsRegion,EvaluationResultIdentifier.EvaluationResultQualifier.ResourceId,ComplianceType]' \
--output table
# 按账户获取合规摘要
aws configservice get-aggregate-compliance-summary-by-source \
--configuration-aggregator-name org-compliance-aggregator \
--query 'AggregateComplianceCounts[*].[GroupName,ComplianceSummary.CompliantResourceCount.CappedCount,ComplianceSummary.NonCompliantResourceCount.CappedCount]' \
--output table
```
## 核心概念
| 术语 | 定义 |
|------|------|
| AWS Config 规则(Config Rule) | 持续或按计划评估 AWS 资源配置是否满足特定要求的合规检查 |
| 托管规则(Managed Rule) | AWS 提供的预构建 Config 规则,包含用于常见合规检查(如加密和公开访问)的标准化逻辑 |
| 自定义规则(Custom Rule) | 由 Lambda 函数支持的组织专用 Config 规则,评估自定义合规逻辑 |
| 修复操作(Remediation Action) | SSM Automation 文档或 Lambda 函数,用于自动修复不合规资源 |
| 配置聚合器(Configuration Aggregator) | AWS Config 功能,将多个账户和区域的合规数据汇总到集中视图 |
| 合规包(Conformance Pack) | 打包为可部署单元的 Config 规则和修复操作集合,用于特定合规框架 |
## 工具与系统
- **AWS Config**:用于 AWS 资源的持续配置记录和合规评估服务
- **SSM Automation**:AWS Systems Manager 文档,用于对不合规资源执行自动修复操作
- **Config 合规包(Config Conformance Packs)**:适用于 CIS、PCI DSS、NIST 800-53 和 HIPAA 合规的预构建规则集合
- **CloudFormation StackSets**:跨 AWS Organizations 多账户部署 Config 规则的机制
- **Config 聚合器(Config Aggregator)**:跨账户和跨区域的合规数据整合
## 常见场景
### 场景:在 30 个 AWS 账户中部署 CIS 合规监控
**场景背景**:一家金融服务公司需要在其所有 30 个生产账户中持续证明 CIS AWS Foundations Benchmark 合规,以通过年度 SOC 2 审计。
**方法**:
1. 通过 CloudFormation StackSets 在所有账户中启用 AWS Config 记录
2. 使用 StackSets 将 CIS 合规包部署到所有账户
3. 在安全账户中设置 Config 聚合器,实现全组织可见性
4. 为安全可自动修复的规则(公开 S3、未加密卷)配置自动修复
5. 创建 EventBridge 规则,在出现新的 NON_COMPLIANT 评估时发送告警
6. 构建每周合规报告,聚合所有账户的合规得分
7. 将 Config 快照存储在具有生命周期策略的 S3 中,用于审计留存
**常见陷阱**:Config 记录按记录的配置项收费。在资源众多的账户中,成本可能较高。使用有针对性的记录组,专注于与合规相关的资源类型,而不是记录所有资源。网络规则(安全组)的自动修复如果规则是有意设置为宽泛的,可能会中断应用程序。
## 输出格式
```
AWS Config 合规报告
===============================
组织: Acme Financial(30 个账户)
框架: CIS AWS Foundations 1.4
报告日期: 2026-02-23
活跃 Config 规则数: 48
合规摘要:
总体合规率: 87%
合规资源数: 4,234
不合规资源数: 612
不适用: 189
不合规情况最多的规则:
encrypted-volumes: 89 个资源(14 个账户)
vpc-flow-logs-enabled: 67 个资源(12 个账户)
mfa-enabled-for-iam-console: 45 个资源(8 个账户)
s3-bucket-ssl-requests-only: 34 个资源(6 个账户)
restricted-ssh: 28 个资源(5 个账户)
自动修复情况(过去 30 天):
已修复的公开 S3 存储桶: 12 个
已限制的安全组: 8 个
已启用 EBS 默认加密: 6 个
自动修复总计: 26 个
修复失败: 3 次
账户合规排名:
1. prod-core(account-001): 96% 合规
2. prod-data(account-002): 94% 合规
...
30. dev-sandbox(account-030): 68% 合规
```Related Skills
testing-cors-misconfiguration
在安全评估期间,识别和利用跨源资源共享(CORS)错误配置,这些配置允许未经授权的跨域数据访问和凭证窃取。
remediating-s3-bucket-misconfiguration
本技能提供识别和修复 Amazon S3 存储桶错误配置(这些错误配置会将敏感数据暴露给未授权访问)的分步操作流程。涵盖在账户和存储桶级别启用 S3 阻止公开访问(Block Public Access)、审计存储桶策略和 ACL、强制加密、配置访问日志记录,以及使用 AWS Config 和 Lambda 部署自动化修复措施。
performing-threat-hunting-with-yara-rules
使用 YARA 模式匹配规则在文件系统和内存转储中狩猎恶意软件、可疑文件和入侵指标。 涵盖规则编写、yara-python 扫描以及与威胁情报源的集成。
performing-ssl-tls-inspection-configuration
在网络安全设备上配置 SSL/TLS 检查,对 HTTPS 流量进行解密、检查和重加密以用于威胁检测,同时管理证书、豁免项和隐私合规要求。
implementing-zero-trust-with-hashicorp-boundary
使用 HashiCorp Boundary 实现具备动态凭据代理、会话录制和 Vault 集成的身份感知零信任基础设施访问管理。
implementing-zero-trust-with-beyondcorp
使用身份感知代理(IAP,Identity-Aware Proxy)、上下文感知访问策略、设备信任验证和 Access Context Manager,部署 Google BeyondCorp Enterprise 零信任访问控制,对 GCP 资源和内部应用强制执行基于身份和安全态势的访问。
implementing-zero-trust-network-access
通过配置身份感知代理、微分段、基于条件访问策略的持续验证,以及在 AWS、Azure 和 GCP 环境中以 BeyondCorp 风格的架构替代传统 VPN 访问,在云环境中实施零信任网络访问(ZTNA)。
implementing-zero-trust-network-access-with-zscaler
使用 Zscaler 实施零信任网络访问(Zero Trust Network Access,ZTNA),通过 Zscaler Private Access(ZPA)配置应用分段、访问策略和连接器,替代传统 VPN 架构
implementing-zero-trust-in-cloud
本技能指导组织按照 NIST SP 800-207 和 Google BeyondCorp 原则在云环境中实施零信任(Zero Trust)架构,涵盖以身份为中心的访问控制、微分段(Micro-Segmentation)、持续验证、设备信任评估,以及部署身份感知代理(Identity-Aware Proxy)以消除 AWS、Azure 和 GCP 环境中的隐式网络信任。
implementing-zero-trust-for-saas-applications
使用 CASB、SSPM、条件访问策略、OAuth 应用治理和会话控制,为 SaaS 应用实施零信任访问控制, 对云托管服务强制执行身份验证、设备合规性检查和数据保护。
implementing-zero-trust-dns-with-nextdns
将 NextDNS 实施为零信任 DNS 过滤层,提供加密解析、威胁情报阻断、隐私保护,以及跨所有端点的组织策略执行。
implementing-zero-standing-privilege-with-cyberark
部署 CyberArk Secure Cloud Access,通过基于时间、权限和审批控制的即时访问,在混合云和多云环境中消除常设权限。