Amazon Config Managed Rules 自动修正测试

Amazon Config
Amazon Lambda
技领云博主
0
0
> 文章作者:全是亚马逊云科技干货 ![image.png](https://dev-media.amazoncloud.cn/e8d2063982474bd593d3abdc1f23b902_image.png "image.png") | 往期推荐 | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Amazon Config Managed Rules 测试 下篇](http://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247497463&idx=1&sn=aff297935d070b0b8b61c984d8cf4c94&chksm=c1c8bfa5f6bf36b3a6d765caba13a3d64d743c4affaa4aaaa273852915f3acb4f756a54cbbe2&scene=21#wechat_redirect?trk=cndc-detail) | | [Amazon Config Managed Rules 测试 上篇](http://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247497431&idx=1&sn=8b5bfcf8301c10082c6a12ee04dcc954&chksm=c1c8bf85f6bf3693f045b730c62654611ddc41e84f7d59dd0522b3c24fd3c8709cec1b906fed&scene=21#wechat_redirect?trk=cndc-detail) | | [Amazon Config rule 介绍](http://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247497409&idx=1&sn=64cc71ee3ab78d9a45f77e4902b979ef&chksm=c1c8bf93f6bf3685508f72878c91e4441b0241b548a100278f8f6a62d1498475bfbcefd9f157&scene=21#wechat_redirect?trk=cndc-detail) | | [ALB EC2 上配置 Apache shibboleth SSO 单点登录测试 下篇](http://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247497391&idx=1&sn=e750309e912a1b91c6b4feb6a682a104&chksm=c1c8bffdf6bf36eb8d6fe53fcbb9fc1e5780c1750f884844c8b2ef68f828db7033581ccda238&scene=21#wechat_redirect?trk=cndc-detail) | | [ALB EC2 上配置 Apache shibboleth SSO 单点登录测试 上篇](http://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247497349&idx=1&sn=ce6d4b6276a15650c4d5ea5c007e24f4&chksm=c1c8bfd7f6bf36c1536a62aacd313ec508fb2c0ec169eb2fa138eca956dd7908ef5e83b4247e&scene=21#wechat_redirect?trk=cndc-detail) | | [利用 Amazon Config 高级查询删除有关联对象的 Security group](http://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247497309&idx=1&sn=24580f7a6a6dcd169c0e8e3c1886c341&chksm=c1c8bf0ff6bf36194c27c97e6342da6f5499efa47a551b7042b6d99fbf06513544502d90797a&scene=21#wechat_redirect?trk=cndc-detail) | | [Amazon Config 高级查询测试](http://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247497276&idx=1&sn=2a69480b31e87d75ca06d530882324fb&chksm=c1c8bf6ef6bf3678ffc6e5b7c7d4b73b9a6d1993330ea5e174bca4c926c14130f736a3542672&scene=21#wechat_redirect?trk=cndc-detail) | | [Amazon Config 高级查询介绍](http://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247497248&idx=1&sn=0c3592583eea9cf25e47dc1678f24105&chksm=c1c8bf72f6bf3664d06703a6da06988bae3fe5a4476c8f8dd41252b9f6fb28ccde5223248340&scene=21#wechat_redirect?trk=cndc-detail) | | [Amazon Config 启动及资源信息查看测试](http://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247497228&idx=1&sn=10491f8b670581cd5789dc5c51287094&chksm=c1c8bf5ef6bf3648684d391607acb3a70d3609bd09a98518f94731745d3f491d37a4201b69af&scene=21#wechat_redirect?trk=cndc-detail) | | [Amazon Config 介绍](http://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247497022&idx=1&sn=abc520eb33d498b36d074c9e487a84d6&chksm=c1c8bc6cf6bf357a129c4cd52bce57fb7a9ef601b1c303fc837deef4839e4bdcea4d3f066988&scene=21#wechat_redirect?trk=cndc-detail) | | [Amazon CDK v1 迁移到 v2 测试 下篇](http://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247497013&idx=1&sn=c6726dad6d07f47b6bbae6695f4ee400&chksm=c1c8bc67f6bf357169de1c73679fd965115bd18f9f3866361d44ad87c5de17474fb20d243f52&scene=21#wechat_redirect?trk=cndc-detail) | | [Amazon CDK v1 项目迁移到 v2 测试 上篇](https://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247496973&idx=1&sn=874c5624f18e4abea59575f413566523&chksm=c1c8bc5ff6bf3549bb13ec106226fe54876672b72ac96918e763ae14ed22cbedcec4e2221d3d&scene=21#wechat_redirect?trk=cndc-detail) | | [Amazon Lambda 函数使用实例文章列表](https://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247496941&idx=1&sn=da561bacc4f2f94a12e674014c719f33&chksm=c1c8bdbff6bf34a94dc1c205c2575d5c7417ef423c1a96bf7708d5fef64a7e653f6d455dba0a&scene=21#wechat_redirect?trk=cndc-detail) | | [Amazon Lambda 启动任务再介绍](https://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247496894&idx=1&sn=30bea4db31654e56e8c4167878d50d38&chksm=c1c8bdecf6bf34fab8828453e7176794d9ce65bee1d55f1e5ca930431c95e5aa1c0f832975ed&scene=21#wechat_redirect?trk=cndc-detail) | | [Amazon Lambda 函数 URLs 安全访问测试](https://mp.weixin.qq.com/s?__biz=MzkyNTIxMjczMw==&mid=2247496880&idx=1&sn=23d8546f3d52977d5296831f38f0e9bb&chksm=c1c8bde2f6bf34f43ada9f8dfa9228fe5e57e76c3ba88e1b69dbbadb9f7ddc9e9397937984a2&scene=21#wechat_redirect?trk=cndc-detail) | ### 简介 我们在《[Amazon Config Managed Rules 测试 下篇](http://mp.weixin.qq.com/s?\\__biz=MzkyNTIxMjczMw==\\&mid=2247497463\\&idx=1\\&sn=aff297935d070b0b8b61c984d8cf4c94\\&chksm=c1c8bfa5f6bf36b3a6d765caba13a3d64d743c4affaa4aaaa273852915f3acb4f756a54cbbe2\\&scene=21#wechat_redirect?trk=cndc-detail)》一文中,介绍了 Amazon Config Managed Rules Remediation(修正)功能,并测试了一个通知不合规(noncompliant)资源的 Remediation。 但只是通知不合规,有时候并不能满足业务的要求。本文在上一篇文章的环境上测试一个具体的修正过程——自动挂载空闲 EBS 卷。 同样也是用 system manager document 来实现修正,使用的 document 是 “Amazon-AttachEBSVolume”。 “Amazon-AttachEBSVolume” 可以把空闲的 EBS 挂载到指定的 [EC2](https://aws.amazon.com/cn/ec2/?trk=cndc-detail) 上面。 正常情况下,我们最好还是先在 system manager 里单独测试一下这个 document,然后再在 Config 的修正功能中使用它,不过这个过程我们在上一篇文章中介绍过了,所以这里就不重复了。 ### 目录 * 实战步骤 1. 创建一个 EBS 2. 创建 IAM role 3. 添加 Remediation 4. 观察测试结果 5. 为 IAM role 添加 policy 6. 再次测试 7. 检查 EBS 内容 * 总结 * 后记 ### 实战步骤 #### 1. 创建一个 EBS 创建 EBS 的具体步骤请参考《[Amazon Config Managed Rules 测试 上篇](http://mp.weixin.qq.com/s?\\__biz=MzkyNTIxMjczMw==\\&mid=2247497431\\&idx=1\\&sn=8b5bfcf8301c10082c6a12ee04dcc954\\&chksm=c1c8bf85f6bf3693f045b730c62654611ddc41e84f7d59dd0522b3c24fd3c8709cec1b906fed\\&scene=21#wechat_redirect?trk=cndc-detail)》,下图是新建的 EBS。记下 Volume ID “vol-092e213f328017402” ![image.png](https://dev-media.amazoncloud.cn/27046405c5904b529b430ddae50f8c28_image.png "image.png") image-20240229134443377 #### 2. 创建 IAM role 与《Amazon Config Managed Rules 测试 下篇》中一样,我们需要为 config 创建一个 IAM role,这次的 role 负责提供 document 调用 “AttachEBS” 的权限。 有关IAM权限的详细介绍可参考《[一文搞懂 Amazon IAM 权限 基础篇上 理论](https://mp.weixin.qq.com/s?\\__biz=MzkyNTIxMjczMw==\\&mid=2247487795\\&idx=1\\&sn=3d38ac6fb4a8fa9da060e84c442ac266\\&chksm=c1cb5861f6bcd1772bf0fae42565247e2875de119afef4c6322c58a160abe9633e2f8594b3cb\\&scene=21#wechat_redirect?trk=cndc-detail)》和《[一文搞懂 Amazon IAM 权限 基础篇下 实战](https://mp.weixin.qq.com/s?\\__biz=MzkyNTIxMjczMw==\\&mid=2247488028\\&idx=1\\&sn=c67ca3c5e455d2feda0efe8bbbe90823\\&chksm=c1cb5b4ef6bcd258c585d447477799631a9e19181367e5518fe47232c4de8497c66029ad79e6\\&scene=21#wechat_redirect?trk=cndc-detail)》。 role 的具体创建过程与前文相同,只是在选择 policy 时,我们需要选择的是 “AmazonEBSCSIDriverPolicy”。记下创建好的 role Arn “arn:amazon:iam::252557384592:role/tstestAttachEBStoEC2” ![image.png](https://dev-media.amazoncloud.cn/7831ce735a8a49a59f37daa61d8af7a7_image.png "image.png") image-20240229134948073 #### 4. 添加 Remediation 在 Config 界面,点击我们在上一篇文章中添加的 rule “ec2-volume-inuse-check” ![image.png](https://dev-media.amazoncloud.cn/3658aaf4c76e40d19f0979c6b583211e_image.png "image.png") image-20240215132021686 然后在 Action 中点击 “Manage remediation” ![image.png](https://dev-media.amazoncloud.cn/0235915982754722b12c836a1ecba01c_image.png "image.png") image-20240215132127928 在配置页面进行以下配置,然后点击 “Save changes” * 选择 Automatic remediation * 在 Remediation action details 中选择 “Amazon-AttachEBSVolume” * Resource ID parameter 中选择 VolumeId。把不合规的 VolumeId 就会做输入参数传到 System manager document。**注意**:这项不要选错了,不然 document 运行时就找不到需要挂载的 EBS 了 * 在 Parameters 中 * Device:这个是挂载到 [EC2](https://aws.amazon.com/cn/ec2/?trk=cndc-detail) 时显示的设备名子,这个名子虽然是我们自己定义的,但要符合 [EC2](https://aws.amazon.com/cn/ec2/?trk=cndc-detail) 的要求,具体要求可查看官网 Available device names,这里我们使用 “/dev/sdf” * InstanceId:添加被挂载 EBS 的 [EC2](https://aws.amazon.com/cn/ec2/?trk=cndc-detail) 的 instance id * AutomationAssumeRole:添写上面创建的 IAM role 的 ARN ![image.png](https://dev-media.amazoncloud.cn/431d56a0c6c44c58bf37a899a8716c18_image.png "image.png") image-20240229135326787 新增加的 Remediation action ![image.png](https://dev-media.amazoncloud.cn/08fd4e7a21be4604bf450aa3c391ed67_image.png "image.png") image-20240229140317378 #### 4. 观察测试结果 刚添加的 Remediation,所以上面 status 会先显示 No evaluation results,过一会儿再刷新,可以看到以下结果。 ![image.png](https://dev-media.amazoncloud.cn/a839c536e4734d0d96ad30abba437982_image.png "image.png") image-20240229142149050 发现一个不合规(空闲)的 EBS,这个就是我们上面添加的那个的 EBS,status 显示的是 “Action execution failed”,说明我们的修正动作失败了(document 运行失败)。但这里并没有更详细的错误信息,那么应该如何排查问题? 对于 Remediation 失败,我们需要用 **Amazon CLI** 去查看具体的失败原因。 运行以下命令,注意添加以下参数过滤结果,不然所有 rule 的修正结果都会显示出来 * \--config-rule-name:config rule 的名称 * \--resource-keys:这里用 resourceId 和 recourceType 来筛选 EBS ``` amazon configservice describe-remediation-execution-status \\ --config-rule-name ec2-volume-inuse-check \\ --resource-keys resourceId=vol-092e213f328017402,resourceType="Amazon::EC2::Volume" ``` ![image.png](https://dev-media.amazoncloud.cn/2b49a78cce584721bb0bbaa294e88b1d_image.png "image.png") image-20240229145331444 ``` because no identity-based policy allows the cloudformation:CreateStack action ``` 说明:可以看到具体原因是修正动作中配置的 role “tstestAttachEBStoEC2” 没有执行 cloudformation “CreateStack” 的权限 #### 5. 为 IAM role 添加 policy 下面我们给 IAM role 添加执行 cloudformation 的权限。 在 IAM 界面,进入我们在上面创建的 role “tstestAttachEBStoEC2”,在 “Add permissions” 下,点击 “Attach policies” ![image.png](https://dev-media.amazoncloud.cn/cd91f06b65384c9fbe512125fd5b2e67_image.png "image.png") image-20240229150048877 搜索 “cloudformation” 后,勾选 “AmazonCloudFormationFullAccess” 后点击 “Add permission” ![image.png](https://dev-media.amazoncloud.cn/25939e03d9264d8390dcb2a372ab1a2b_image.png "image.png") image-20240229150229679 **注意**:这里为方便选择了 Fullaccess,在生产中还需要遵循最小权限原则 #### 6. 再次测试 回到 Rule 界面,我们在 Actions 下点击 “Re-evaluate” ![image.png](https://dev-media.amazoncloud.cn/d140613f3e2b4c57b8d014bf89ec6004_image.png "image.png") image-20240229150536316 ![image.png](https://dev-media.amazoncloud.cn/eba6231fafd54d9d96e95f4f0fc4407a_image.png "image.png") image-20240229150639301 过一会儿刷新 ![image.png](https://dev-media.amazoncloud.cn/afe7759a68d64b9fae2ec2a3b590ddfe_image.png "image.png") image-20240229150753492 可以看到这次修正动作执行成功了 ![image.png](https://dev-media.amazoncloud.cn/f8e8dfd2700245e7a5bb0988612191a3_image.png "image.png") image-20240229150851652 但是右边 Compliance 一栏还是显示 “Nocompliant”,我们过一会儿再刷新,这次所有信息都没有了,说明没有不合规的 EBS 了 ![image.png](https://dev-media.amazoncloud.cn/a7f0fc5a72b448359e37c95f8df2f0a5_image.png "image.png") image-20240229151104310 在 Config dashboard 中也没有不合规的内容了 ![image.png](https://dev-media.amazoncloud.cn/dd01252a38da41d48198d1c2a0ac491f_image.png "image.png") image-20240229151304108 同样的在 [EC2](https://aws.amazon.com/cn/ec2/?trk=cndc-detail) 的 EBS 页面,可以看到上面创建的空闲 EBS 现在已经挂载到指定的 [EC2](https://aws.amazon.com/cn/ec2/?trk=cndc-detail) 上了 ![image.png](https://dev-media.amazoncloud.cn/2b9678b613cd4085bcb184318973fefe_image.png "image.png") image-20240229150942821 #### 7. 检查 EBS 内容 下面我们检查一下这个 EBS 里有没有内容。我们先要登录到被挂载 EBS 的 C2 上。 在 [EC2](https://aws.amazon.com/cn/ec2/?trk=cndc-detail) 界面,勾选被挂载 EBS 的 [EC2](https://aws.amazon.com/cn/ec2/?trk=cndc-detail),然后点击 “Connect” ![image.png](https://dev-media.amazoncloud.cn/169488d838724db78f9375690d86b4bd_image.png "image.png") image-20240229151743321 选择 “Session Manager”,然后点击 “Connect”。(如果 “Connect” 是灰的,说明 [EC2](https://aws.amazon.com/cn/ec2/?trk=cndc-detail) 的 profile 没有配置完成,不能使用 System manger 从网页上登录,有关配置的具体内容请参考《[一文搞懂 Amazon EC2, IGW, RT, NAT, SG 基础篇下](http://mp.weixin.qq.com/s?\\__biz=MzkyNTIxMjczMw==\\&mid=2247486617\\&idx=1\\&sn=1c3a2811884c0b7a0b1bad7f943f244e\\&chksm=c1cb45cbf6bcccddc01aa1a45ffd0e110c4e9c5f91c211e2b2dfb115b8ebaa7037661b6275f5\\&scene=21#wechat_redirect?trk=cndc-detail)》) ![image.png](https://dev-media.amazoncloud.cn/15fc07b05ac24361bd261803f1c9cdb3_image.png "image.png") image-20240229151837987 登录进去后,我们可以用以下两个命令查看下持载的 EBS ``` #列出 EBS 的信息,我们给的设备名子是/dev/sdf,挂载后EC2会自动创建一个新的名子,比如下面的“nume2n1” ls -l /dev/sdf #检查 EBS 上是否有文件系统,如果像下面只显示'data',那么说明这个 EBS 上没有内容 file -s /dev/nume2n1 ``` ![image.png](https://dev-media.amazoncloud.cn/a4420c67511a47ef80a687f98d07a94b_image.png "image.png") image-20240229152345506 说明:以下内容说明这个 EBS 的空的,还没有安装文件系统 下面我们在这个 EBS 设备上创建一个文件系统,然后 mount 到一个事先建好的文件夹下面,并在里面创建一个文件。 依次运行以下命令 ``` #创建文件系统 mkfs -t xfs /dev/sdf #把 EBS 挂到/mountts 文件夹下(只有挂到文件夹下,才能通过文件夹访问 EBS) mount /dev/sdf /mountts #进入 EBS,并创建了一个文件 cd /mountts echo "this is test file">testfile ls -l ``` 下面我们 umount 这个 EBS,并从 EC2 上 detach 这个 EBS ``` #先退出当前 root 用户,如果直接 umount,就会出现下面 “target is bush” 的错误 exit #需要 root 权限执行 umount 动作,所以要加 sudo sudo umount /mountts ``` ![image.png](https://dev-media.amazoncloud.cn/1d443fff47114af8ab80c8b8631908bf_image.png "image.png") image-20240229153342219 在 EC2 界面 detach EBS ![image.png](https://dev-media.amazoncloud.cn/c1e6967a893e452aa639f3633983b1e9_image.png "image.png") 刷新一下,“Available” 就说明 EBS 处在没有挂载到 EC2 上的空闲状态 ![image.png](https://dev-media.amazoncloud.cn/2e2296473af64663a971f460c5984813_image.png "image.png") image-20240229153637875 不过这个状态不会持续很久,因为我们在上面配的 rule 修正动作会再一次自动运行 ![image.png](https://dev-media.amazoncloud.cn/d5689d496ffb491988a123fee887b1d8_image.png "image.png") image-20240229153915825 很快这个 EBS 又会回到 “In-use” 的状态,即又挂载到了同样的 EC2 上 ![image.png](https://dev-media.amazoncloud.cn/8e556bbaa717435eaeedd52a781e21f3_image.png "image.png") image-20240229154028960 登录到 EC2 中查看,可以看到这次用 file 命令检查时,结果不只是 data 了,而是 “SGI XFS filesystem data ..” 说明这个 EBS 上是有内容的 ![image.png](https://dev-media.amazoncloud.cn/23ab9343a8594f67bdd17a7fae1ff92e_image.png "image.png") image-20240229154153848 EBS 中有文件系统,那就不需要格式化(创建文件系统)直接就可以把 EBS 挂到文件夹中后查看,可以看到我们上次建的文件还在 ![image.png](https://dev-media.amazoncloud.cn/f4cfe0d9fee3451e83fe012cbc30cd7f_image.png "image.png") image-20240229154316863 ### 总结 亚马逊云科技提供的 Remediation 有很多,具体内容可以参考官网。使用方法大同小异,需要注意的就是给 config role 加上适当的权限,如果出现修正失败,利用 Amazon CLI 来查看具体报错原因并改正。 ### 后记 春天来了 喜欢请点赞,禁止转载,转发请标明出处 关注 B 站 UP 主“我是手拉面” 观看更多视频 51CTO 博客 https\://blog.51cto.com/tansong?trk=cndc-detail 微信公众号“全是亚马逊云科技干货” ![image.png](https://dev-media.amazoncloud.cn/188f128893674c18a01d18f8822aea09_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/b861536045a04aa1992c3153f7ff1e1d_image.png "image.png") [![5.png](https://dev-media.amazoncloud.cn/8666fe52015f4d23aebee429b70ba095_5.png "5.png")](https://summit.amazoncloud.cn/2024/register.html?source=DSJAVfG2GS7gEk2Osm6kYXAa+8HnSEVdbCVjkuit7lE= )
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭