config: required-tags
最后更新于
最后更新于
使用Config规则required-tags可以发现ec2必须要打的标签没有打,则标记为不合规。假设要求ec2必须打上敏感数据相关的标签,也就是pii:true或者pii:false. 如果发现没有打上标签,则自动添加标签。
在config控制台,添加rule:required-tags。比如我想检查没有打标签pii:true或者pii:false的RDS,EBS和S3等资源,设置如下图所示:
但是在本例子中自动修复只能给EC2打标签,如果识别范围中含有其他资源,别的资源打标签无法生效。
参数设置如下:
设置完成后点击保存。
为了方便区分自动修复的是没有打标签的ec2,规则的名称可以命名为required-tags-ec2
。
首先,部署CloudFormation StackSet。打开以下的GitHub 页面, 下载 cf-iam.yaml
文件。
可选地,在CloudFormation template里你可以更改IAM角色名称或者策略名称,推荐可以将IAM 角色名称设置为 TagRemediationAutomationRole
,以及策略名称设置为TagRemediationAutomationPolicy
.
在你的管理账号,进入 AWS CloudFormation 控制台,选择 StackSets。
点击 Create StackSet button.
在页面 Choose a template ,使用默认的 Permissions 和 Prerequisite – Prepare template。在 Specify template 部分,选择 Upload a template file 找到你下载的 cf-iam.yaml
。点击 Next.
在页面 Specify StackSet details ,输入StackSet 名称,比如StackSetIAMRoleForRemediation
. 其余都使用默认值。点击 Next ,然后再点击 Next 。
在页面 Set deployment options ,对于 Specify regions, 选择你想要部署这个StackSet的region。本文使用 us-east-1 。其余都使用默认值,然后点击 Next.
在页面 Review ,还是都使用默认值,下拉到页面底部 ,勾选 I acknowledge that AWS CloudFormation might create IAM resources with custom names, 然后 Submit 部署。
首先,部署CloudFormation StackSet。打开以下的GitHub 页面, 下载 cf-automation-runbook.yaml
文件。
部署方式和第一个一样,StackSet 名称可以命名为StackRemediationRunbook。
安装完成后,打开控制台,进入Systems Manager,找到Documents这个菜单,进入Documents后检索 SsmDocumentTagRemediation,在页签Details中找到Permissions,添加共享给哪些Account。添加后点击Save保存。
首先,部署CloudFormation StackSet。打开以下的GitHub 页面, 下载 cf-conformancepack-doc-map.yaml
文件。
注意:需要修改yaml文件里面的<management-account-id>为您的管理账号id(可以在控制台右上角查到)。
IAM role还可以使用之前创建出来的role,复制arn留着使用;
我使用博客里的yaml文件会报错,所以我自己写了一个,也可以下载使用我写的部署SSM runbook,如果需要更改SSM::Document的名字,可以更改第21行的SsmDocumentTagRemediation
为自己想要使用的名字,并且需要修改yaml文件里面的<management-account-id>为您的管理账号id(可以在控制台右上角查到)。:
https://github.com/sikongwuying/Knowledge-Base-Reasource/blob/main/cf-automation-runbook.yaml
创建新的Config rules,过滤并选择AWS managed rule->required-tags,创建好Config rule以后选择Action->Manage redemiation。需要注意的是Resource type需要修改成EC2 instance和EC2 Volume并绑定刚才创建好的SSM::Document,我使用的名字是SsmDocumentTagRemediation,你如果改过名字就检索你命名的SSM Document。因为自动打标签的脚本仅支持EC2。选择其他资源类型检测出来后无法自动修复。
Parameters的含义:
AutomationAssumeRole:填写允许自动程序代为执行贴标签操作的角色是什么,需要填写arn;
ResourceID,引用config rule代入的ResourceID即可;
RuleName,要写你的config rule的名称,用于获取rule检查结果的;
RequiredTags,你希望给不合规的EC2自动添加的标签,比如{'pii': 'true'},如果是多个用逗号分隔,比如{'pii': 'true'},{'CostCenter': 'Security'}