AWS Config 自定义规则

此过程将引导您完成自定义规则的创建过程,该规则可以评估您的各个 EC2 实例是否为 t2.micro 类型。AWS Config 将针对此规则运行基于事件的评估,这意味着 AWS Config 每次检测到实例配置更改时,都会检查您的实例配置。AWS Config 会将 t2.micro 实例标记为合规实例,并将其他所有实例标记为不合规实例。合规性状态将显示在 AWS Config 控制台中。

为保证这一程序的最佳效果,您的 AWS 账户应该拥有一个或多个 EC2 实例。您的实例中应包含至少一个 t2.micro 实例和其他类型的实例。

要创建此规则,请先通过在 AWS Lambda 控制台中自定义一个蓝图来创建一个 AWS Lambda 函数。然后,您需要在 AWS Config 中创建一个自定义规则,并将此规则与函数相关联。

主题

为自定义 Config 规则创建 AWS Lambda 函数

  1. 通过以下网址登录 AWS 管理控制台并打开 AWS Lambda 控制台:https://console.aws.amazon.com/lambda/
  2. 在 AWS 管理控制台菜单上,验证区域选择器是否设置为支持 AWS Config 规则的区域。有关受支持区域的列表,请参阅 Amazon Web Services 一般参考 中的 AWS Config 区域和终端节点
  3. 在 AWS Lambda 控制台中,选择 Create a Lambda function (创建 Lambda 函数)
  4. 在 Select blueprint 页面,对于 filter,请键入 config-rule-change-triggered。选择筛选结果中的蓝图。
  5. 在 Configure triggers 页面上,选择 Next
  6. 在 Configure function 页面,完成以下步骤:
    1. 对于 Name (名称),键入 InstanceTypeCheck
    2. 对于 Runtime,请保留 Node.js
    3. 对于 Code entry type,请保留 Edit code inline。代码编辑器中带有用于您的函数的 Node.js 代码。在本程序中,您无需更改代码。
    4. 对于 Handler (处理程序),保留 index.handler
    5. 对于 Role,请选择 Create new role from template(s)
    6. 对于 Role name,请输入名称。
    7. 对于 Policy templates (策略模板),选择 AWS Config Rules permission (AWS Config 规则权限)
    8. 在 Configure function 页面,选择 Next
    9. 在 Review 页面,验证您的函数的详细信息,然后选择 Create function。AWS Lambda 控制台会显示您的函数。
  7. 要验证您的函数是否设置正确,请通过以下步骤进行测试:
    1. 选择 Actions,然后选择 Configure test event
    2. 在 Input test event 窗口中,对于 Sample event template,选择 AWS Config Change Triggered Rule
    3. 选择 Save and test (保存并测试)。AWS Lambda 将使用示例事件来测试您的函数。如果您的函数按预期运行,Execution result 下会出现与下面类似的错误消息:
      {
        "errorMessage": "Result Token provided is invalid",
        "errorType": "InvalidResultTokenException",
      . . .

      此处预期为 InvalidResultTokenException,因为仅当您的函数收到来自 AWS Config 的结果令牌 时,它才能成功运行。结果令牌可以识别 AWS Config 规则和引起评估的事件,并将评估与规则相关联。这一异常表示您的函数具备将结果发送至 AWS Config 所需的权限。否则,将出现这种错误消息:not authorized to perform: config:PutEvaluations。如果发生这一错误,请更新您分配给函数的角色以便支持 config:PutEvaluations 操作,然后再次测试您的函数。

创建自定义规则

  1. 从 https://console.aws.amazon.com/config/ 打开 AWS Config 控制台。
  2. 在 AWS 管理控制台菜单中,验证区域选择器中的区域是否与您为自定义规则创建 AWS Lambda 函数时使用的区域相同。
  3. 在 Rules 页面,选择 Add rule
  4. 在 Add rule 页面,选择 Add custom rule
  5. 在 Configure rule 页面,完成以下步骤:
    1. 对于 Name (名称),键入 InstanceTypesAreT2micro
    2. 对于描述,键入 Evaluates whether EC2 instances are the t2.micro type
    3. 对于 AWS Lambda function ARN (AWS Lambda 函数 ARN),请指定 AWS Lambda 分配给您的函数的 ARN。

      注意

      您在此步骤中指定的 ARN 不能包含 $LATEST 限定词。您指定的 ARN 可以不带有版本限定词,也可以带有除 $LATEST 之外的任何限定词。AWS Lambda 支持函数版本控制功能,并为每个版本都分配一个带有限定词的 ARN。AWS Lambda 对最新版本使用 $LATEST 限定词。

    4. 对于 Trigger type,请选择 Configuration changes
    5. 对于 Scope of changes,请选择 Resources
    6. 对于 Resources,请选择 Instance
    7. 在 Rule parameters (规则参数) 部分中,您必须指定 AWS Lambda 函数评估的规则参数和所需值。本程序中的函数会评估 desiredInstanceType 参数。

      对于 Key (键),键入 desiredInstanceType。对于 Value,键入 t2.micro

  6. 选择 Save。您的新规则将显示在 Rules 页面中。

    在 AWS Config 收到来自 AWS Lambda 函数的评估结果之前,Compliance (合规性) 将显示 Evaluating... (正在评估...)。如果规则和函数按预期运行,关于结果的汇总将在几分钟后显示。例如,2 noncompliant resource(s) 结果表示您的实例中有两个不是 t2.micro 实例,Compliant 结果表示所有实例均为 t2.micro 实例。您可以使用刷新按钮更新结果。

    如果规则或函数没有按预期运行,您可能会在 Compliance 中看到以下一项内容:

    • No results reported (未报告任何结果) - AWS Config 针对规则评估了您的资源。规则不适用于其范围内的 AWS 资源,指定的资源已删除,或者评估规则已删除。要获取评估结果,请更新规则、更改其范围或者选择Re-evaluate

      请验证范围中包含 Resources 的 Instance,然后重试。

    • No resources in scope (范围中没有资源) - AWS Config 无法对照规则来评估您记录的 AWS 资源,因为您的任何资源都不在规则范围内。要获取评估结果,请编辑规则并更改其范围,或者使用 Settings (设置) 页面添加 AWS Config 要记录的资源。

      请检查确认 AWS Config 是否在记录 EC2 实例。

    • Evaluations failed (评估失败) - 有关可帮助您确定问题的信息,请选择规则名称以打开其详细信息页面并查看错误消息。

如果您的规则正常运行并且 AWS Config 提供了评估结果,您可以了解哪些条件影响了规则的合规性状态。您可以了解哪些资源不合规 (如果有) 及其原因。

原文地址:https://www.cnblogs.com/cloudrivers/p/11372035.html

时间: 2024-08-29 03:14:50

AWS Config 自定义规则的相关文章

AWS Config 托管规则

AWS Config 提供了 AWS 托管规则(可自定义的预定义规则),AWS Config 使用这些规则来评估您的 AWS 资源是否符合常见的最佳实践.例如,您可以使用一个托管规则来快速开始评估您的 Amazon Elastic Block Store (Amazon EBS) 卷是否已加密,或者特定标签是否已应用于您的资源.您可以设置和激活这些规则而无需通过编写代码来创建 AWS Lambda 函数,如果您想要创建自定义规则这就是必需的.AWS Config 控制台可以引导您完成托管规则的配

1. PMD 使用,编译和自定义规则

一 PMD简介 PMD是一款代码静态检查工具,可以检查出很多代码中潜在的bug以及让人感到疑惑的代码,具体大家可以百度下. 二 PMD源代码下载 下载地址: https://github.com/pmd/pmd/tree/pmd/5.5.x 需要注意的是注意选择branch,一般选择最新的branch:然后可以用git clone下来,或者直接下载zip压缩包. 如下: 从上图也可以看到,pmd支持的语言有很多,java的检测那就是在pmd-java里面. 三 maven下载和环境变量配置 参考

StyleCop学习笔记——自定义规则

本文将简单的一步一步的指导这可能有助于学习如何创建自己的规则 1.创建一个项目. Visual Studio创建一个新的类库项目.NET3.5 2.引用两个DLL,StyleCop.dll和StyleCop.Csharp.dll. 3.添加自定义的规则. MyCustomAnalyzer.cs代码如下: using StyleCop; using StyleCop.CSharp; namespace MyCustomRules { /// <summary> /// Custom analyz

IIS7IIS7.5 通过WEB.CONFIG自定义404页面 返回404状态

在这里,阿D可以教你们通过web.config解决这个问题,说一下如何用web.config,自定义404: <configuration> <system.webServer> <httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" > <remove statusCode="404" /> <error st

【猪猪-后端】WebMagic框架搭建的爬虫,根据自定义规则,直接抓取,使用灵活,Demo部署即可查看。

原文:[猪猪-后端]WebMagic框架搭建的爬虫,根据自定义规则,直接抓取,使用灵活,Demo部署即可查看. 源代码下载地址:http://www.zuidaima.com/share/1581523414404096.htm 如果要使用注解方式实现,也是支持的. @TargetUrl("http://my.oschina.net/flashsword/blog/\\d+") public class OschinaBlog { @ExtractBy("//title&qu

如何使用PMD自定义规则

准备工作 首先在PMD官网下载最新版本的文件,目前最新版本是5.4.1. 下载pmd-bin-5.4.1.zip和pmd-src-5.4.1.zip之后解压备用. pmd-src-5.4.1是PMD源码包,是无法直接执行的. pmd-bin-5.4.1是PMD的可执行包 目录简介 pmd-src-5.4.1中除了pmd-core是PMD的核心执行调度模块,其他文件夹都是各种语言检查规则的模块. 其中pmd-bin-5.4.1\lib目录中是执行所依赖的jar包. pmd-bin-5.4.1\bi

yii 框架 自定义规则客户端验证

前提:yii 自定义规则不能通过失去焦点验证 view层中:设置form的3个属性,validationUrl 可以不设置,默认为当前页面,但是一般情况验证不会跟提交数据在一个方法中处理 $form = zActiveForm::begin([ 'id'=> 'validate', 'enableAjaxValidation'=> true, 'validationUrl' => \yii\helpers\Url::toRoute('/hotel/hotel-room/validate-

Python使用Mistune对markdown自定义规则解析

Mistune--更快的markdown解析器 在Python中有很多markdown解析器,以前我一直使用的是Python-markdown,一个纯Python实现的markdown解析器,别的不说,慢的要死倒是真的.每次点击保存后,都要响应很久,我开始一直以为是我的vps在国外导致的,后来还用了Mistune才知道,不是网速的问题,是解析器的速度问题. 没有对比就没有伤害,Mistune是所有纯Python实现中最快的一个.在纯Python环境中,几乎比Python- markdown快4倍

Web.config自定义节点configSections

原文地址:http://www.cnblogs.com/huc87/archive/2009/05/06/1450981.html 1.为什么需要自定义节点 为了增加应用程序的可移植性,通常网站需要配置一些自定义的节点,例如:文件上传的路径等,再深入的应用,可以定义工厂方法需要创建的类. 2.configSections使用方法 configSections节点下定义自定义节点可以帮我们实现我们自己的节点. 首先定义自己的节点,定义方法如下: <configSections>    <s