记录第三方资源的配置 - Amazon Config
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

记录第三方资源的配置

记录第三方资源或自定义资源类型的配置,例如本地服务器、SaaS 监控工具和版本控制系统(例如 GitHub)上的配置。您可以使用 Amazon Config 控制台和 API,将第三方资源的配置数据发布到 Amazon Config 中并查看和监控资源清单及配置历史记录。现在,您可以使用 Amazon Config 管理所有资源,并使用 Amazon Config 规则评估资源配置是否符合最佳实践。您还可以创建 Amazon Config 规则或一致性包,以根据最佳实践、内部策略和监管策略评估这些第三方资源。

注意

如果您已将 Amazon Config 配置为记录所有资源类型,则系统会自动在 Amazon Config 中将通过 Amazon CloudFormation 管理(创建、更新或删除)的第三方资源作为配置项目进行跟踪。

先决条件:必须使用 Amazon CloudFormation 注册第三方资源或自定义资源类型。

步骤 1:设置开发环境

安装和配置 Amazon CloudFormation Amazon CLI。Amazon CLI 允许您建模和注册自定义资源。有关更多信息,请参阅自定义资源什么是 CloudFormation 命令行界面?

步骤 2:资源建模

创建符合资源类型配置的资源提供程序架构,并验证该架构。

  1. 使用 init 命令创建资源提供程序项目并生成所需的文件。

    $ cfn init Initializing new project
  2. init 命令将启动一个向导,引导您完成项目的设置,包括指定资源名称。在此演练中,指定 MyCustomNamespace::Testing::WordPress

    Enter resource type identifier (Organization::Service::Resource): MyCustomNamespace::Testing::WordPress
  3. 输入资源的包名称。

    Enter a package name (empty for default 'com.custom.testing.wordpress'): com.custom.testing.wordpress Initialized a new project in /workplace/user/custom-testing-wordpress
    注意

    为了确保正确解析任何项目依赖关系,您可以将生成的项目导入支持 Maven 的 IDE 中。

    例如,如果您使用的是 IntelliJ IDEA,则需要执行以下操作:

    • 文件菜单中,选择新建,然后选择现有源中的项目

    • 导航到项目目录。

    • 导入项目对话框中,选择从外部模型导入项目,然后选择 Maven

    • 选择下一步,并接受所有默认设置以完成项目导入。

  4. 打开包含您资源的架构的 mycustomnamespace-testing-wordpress.json 文件。将以下架构复制并粘贴到 mycustomnamespace-testing-wordpress.json 中。

    { "typeName": "MyCustomNamespace::Testing::WordPress", "description": "An example resource that creates a website based on WordPress 5.2.2.", "properties": { "Name": { "description": "A name associated with the website.", "type": "string", "pattern": "^[a-zA-Z0-9]{1,219}\\Z", "minLength": 1, "maxLength": 219 }, "SubnetId": { "description": "A subnet in which to host the website.", "pattern": "^(subnet-[a-f0-9]{13})|(subnet-[a-f0-9]{8})\\Z", "type": "string" }, "InstanceId": { "description": "The ID of the instance that backs the WordPress site.", "type": "string" }, "PublicIp": { "description": "The public IP for the WordPress site.", "type": "string" } }, "required": [ "Name", "SubnetId" ], "primaryIdentifier": [ "/properties/PublicIp", "/properties/InstanceId" ], "readOnlyProperties": [ "/properties/PublicIp", "/properties/InstanceId" ], "additionalProperties": false }
  5. 验证架构。

    $ cfn validate
  6. 更新资源提供程序包中自动生成的文件以查看资源提供程序架构更新。启动资源提供程序项目后,Amazon CLI 为资源提供程序生成支持文件和代码。重新生成代码以查看更新的架构。

    $ cfn generate
    注意

    使用 Maven 时,作为编译过程的一部分,generate 命令会在编译代码之前自动运行。因此,您的更改永远不会与生成的代码不同步。

    请注意,CloudFormation CLI 必须位于 Maven/系统可以找到的位置。有关更多信息,请参阅设置用于开发扩展的环境

有关整个过程的更多信息,请参阅对资源提供程序进行建模以在 Amazon CloudFormation 中使用

步骤 3:生成构件

运行以下命令以生成 cfn submit 的构件。

$ mvn package

步骤 4:注册资源

Amazon Config 不需要资源提供程序的处理程序为您的资源执行配置跟踪。运行以下命令来注册您的资源。

$ cfn submit

有关更多信息,请参阅注册资源提供程序以在 Amazon CloudFormation 模板中使用

步骤 5:发布资源配置

确定 MyCustomNamespace::Testing::WordPress 的配置。

{ "Name": "MyWordPressSite", "SubnetId": "subnet-abcd0123", "InstanceId": "i-01234567", "PublicIp": "my-wordpress-site.com" }

从 Amazon CloudFormation DescribeType 中确定架构版本 ID。

在 Amazon Config 中,查看是否接受了此资源配置。要评估合规性,您可以编写使用此资源的 Amazon Config 规则。有关更多信息,请参阅使用 Amazon CLI 记录和删除第三方资源的配置状态

可选:要自动记录配置,请实施定期配置收集器或基于更改的配置收集器。