AWS Config 从 AWS CLI - AWS Config

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

AWS Config 从 AWS CLI

要从 AWS Config 开始 AWS CLI,请使用put-configuration-recorderput-delivery-channel、和start-configuration-recorder命令,如下所示:

  • put-configuration-recorder 命令可创建新的配置记录器以记录您指定的资源配置。

  • put-delivery-channel命令创建一个传送通道对象,用于向 S3 存储桶和SNS主题传送配置信息。

  • 创建传输通道后,start-configuration-recorder 开始记录您选择的资源配置,您可以在您的 AWS 账户中看到这些配置。

您可以指定记录器的名称以及配置记录器担任 AWS Config 和使用的IAM角色的 Amazon 资源名称 (ARN)。 AWS Config 创建配置记录器时会自动分配 “默认” 的名称。配置记录器在创建后,不能更改其名称。要更改配置记录器的名称,您必须删除该配置记录器,然后使用新名称创建一个新配置记录器。

要使用设置 AWS Config 多账户多区域数据聚合 AWS CLI,请参阅使用 AWS 命令行界面设置聚合器。您必须为要记录配置项目的每个区域创建单独 AWS 账户 的配置记录器。

注意事项

先决条件

在设置 AWS Config 之前 AWS CLI,您需要创建一个 S3 存储桶、一个SNS主题和一个将附加策略作为先决条件的IAM角色。然后,您可以使用 AWS CLI 为指定存储桶、主题和角色 AWS Config。要设置的先决条件 AWS Config,请参阅先决条件

每个账户每个区域一个配置记录器

AWS 区域 每个通道只能有一个配置记录器通道 AWS 账户,并且需要使用配置记录器 AWS Config。

每个账户每个地区一个配送渠道

每个 AWS 区域 区域只能有一个配送渠道 AWS 账户,并且需要使用配送渠道 AWS Config。

步骤 1:运行 put-configuration-recorder命令

您的 put-configuration-recorder 命令应类似于以下示例。

$ aws configservice put-configuration-recorder \ --configuration-recorder file://configurationRecorder.json \ --recording-group file://recordingGroup.json

此命令使用--configuration-recorder---recording-group字段。

注意

录制组和配置记录器

--recording-group 字段指定要记录哪些资源类型。

--configuration-recorder字段指定nameroleArn以及配置记录器的默认录制频率 (recordingMode)。您也可以使用此字段来覆盖特定资源类型的记录频率。

put-configuration-recorder--recording-group 参数使用以下选项:

  • allSupported=true— AWS Config 记录所有支持的资源类型的配置更改,不包括全局IAM资源类型。 AWS Config 添加对新资源类型的支持后, AWS Config 会自动开始记录该类型的资源。

  • includeGlobalResourceTypes=true— 此选项是一个捆绑包,仅适用于全局IAM资源类型:IAM用户、群组、角色和客户托管策略。这些全球IAM资源类型只能在 2022 年 2 月之前可用的 AWS Config 区域 AWS Config 中进行记录。2022 年 2 月 AWS Config 之后,您无法在支持的区域中记录全球IAM资源类型。有关这些区域的列表,请参阅录制 AWS 资源 | 全球资源

    重要

    Aurora 全局集群记录在所有已启用的区域中

    AWS::RDS::GlobalCluster资源类型将记录在启用配置记录器的所有支持 AWS Config 区域,即使设置includeGlobalResourceTypesfalse。该includeGlobalResourceTypes选项是一个仅适用于IAM用户、群组、角色和客户托管策略的捆绑包。

    如果您不想在所有已启用的区域中记录 AWS::RDS::GlobalCluster,请使用以下记录策略之一:

    1. 记录所有当前和未来的资源类型,排除项除外 (EXCLUSION_BY_RESOURCE_TYPES),或者

    2. 记录特定的资源类型 (INCLUSION_BY_RESOURCE_TYPES)。

    有关更多信息,请参阅选择将记录的资源

    重要

    includeGlobalResource类型和排除记录策略

    includeGlobalResourceTypes字段对EXCLUSION_BY_RESOURCE_TYPES录制策略没有影响。这意味着,当设置为exclusionByResourceTypesincludeGlobalResourceTypes,全局IAM资源类型(IAM用户、群组、角色和客户托管策略)不会自动添加为排除项。false

    includeGlobalResourceTypes字段只能用于修改该AllSupported字段,因为该字段的默认设置是记录除全局资源类型之AllSupported外的所有受支持IAM资源类型的配置更改。要在设置AllSupported为时包括全局IAM资源类型true,请确保将设置includeGlobalResourceTypestrue

    要排除EXCLUSION_BY_RESOURCE_TYPES录制策略的全局IAM资源类型,您需要手动将其添加到的resourceTypes字段中exclusionByResourceTypes

    注意

    必填字段和可选字段

    includeGlobalResourceTypes 设置为 true 之前,请先将 allSupported 字段设置为 true

    也可以将 RecordingStrategyuseOnly 字段设置为 ALL_SUPPORTED_RESOURCE_TYPES

    注意

    覆盖字段

    如果您在的字段中设置includeGlobalResourceTypesfalse但列出了全局IAM资源类型 RecordingGroup,则无论您是否 AWS Config 将该resourceTypes字段设置为 false,仍会记录这些指定资源类型的配置更改。includeGlobalResourceTypes

    如果您不想记录对全局IAM资源类型(IAM用户、群组、角色和客户托管策略)的配置更改,请确保除了将该字段设置为 false 之外,不要在resourceTypesincludeGlobalResourceTypes字段中列出这些更改。

  • recordingStrategy – 指定配置记录器的记录策略。recordingGroup.json 文件指定了 AWS Config 将记录的资源类型:

    • 如果将的useOnly字段设置RecordingStrategyALL_SUPPORTED_RESOURCE_TYPES,则会 AWS Config 记录所有支持的资源类型的配置更改,不包括全局IAM资源类型。或者,您可以将的allSupported字段设置RecordingGrouptrue。 AWS Config 添加对新资源类型的支持后, AWS Config 会自动开始记录该类型的资源。

    • 如果将的useOnly字段设置RecordingStrategyINCLUSION_BY_RESOURCE_TYPES,则仅 AWS Config 记录您在resourceTypes字段中指定的资源类型的配置更改RecordingGroup

    • 如果将的useOnly字段设置RecordingStrategyEXCLUSION_BY_RESOURCE_TYPES,则会 AWS Config 记录所有支持的资源类型的配置更改,但您指定要排除在resourceTypes字段中记录的资源类型除外ExclusionByResourceTypes

    注意

    必填字段和可选字段

    当您将 --recording-groupallSupported 字段设置为 true 时,recordingStrategy 字段是可选的。

    当您在 --recording-groupresourceTypes 字段中列出资源类型时,recordingStrategy 字段是可选的。

    如果您在 exclusionByResourceTypesresourceTypes 字段中列出了要从记录中排除的资源类型,recordingStrategy 字段为必填字段。

    注意

    覆盖字段

    如果您对记录策略选择 EXCLUSION_BY_RESOURCE_TYPES,则 exclusionByResourceTypes 字段将覆盖请求中的其他属性。

    例如,即使您设置为 includeGlobalResourceTypes false,全局IAM资源类型仍将自动记录在此选项中,除非这些资源类型在resourceTypes字段中被特别列为豁免exclusionByResourceTypes

    注意

    全局资源类型和资源排除记录策略

    默认情况下,如果您选择EXCLUSION_BY_RESOURCE_TYPES录制策略,则在设置配置记录器的区域中 AWS Config 添加对新资源类型(包括全局资源类型)的支持时,会自动 AWS Config 开始记录该类型的资源。

    除非特别列为排除项,否则AWS::RDS::GlobalCluster将在启用配置记录器的所有受支持 AWS Config 区域中自动记录。

    IAM用户、群组、角色和客户托管策略将记录在您设置配置记录器的区域(如果该区域在 2022 年 2 月之前可用)。 AWS Config 2022 年 2 月 AWS Config 之后,您无法在支持的区域中记录全球IAM资源类型。有关这些区域的列表,请参阅录制 AWS 资源 | 全球资源

    以下示例显示 recordingGroup.json 的请求语法:

    { "allSupported": boolean, "exclusionByResourceTypes": { "resourceTypes": [ Comma-separated list of resource types to exclude ] }, "includeGlobalResourceTypes": boolean, "recordingStrategy": { "useOnly": "Recording strategy for the configuration recorder" }, "resourceTypes": [ Comma-separated list of resource types to include] }
    注意

    AWS Organizations 可以阻止访问的授权策略

    如果您使用预先存在的IAM角色,请确保没有 AWS Config 禁止您拥有记录资源的权限的授权策略。 AWS Organizations 有关授权策略的更多信息 AWS Organizations,请参阅《AWS Organizations 用户指南》 AWS Organizations中的 “管理策略”。

    重复使用角色时保持最低权限 IAM

    如果您使用的是 AWS Config使用 AWS Security Hub 或之类的 AWS 服务 AWS Control Tower,并且已经创建了IAM角色,请确保您在设置时使用的IAM角色与先前存在的IAM角色 AWS Config 保持相同的最低权限。您必须这样做才能确保其他 AWS 服务继续按预期运行。

    例如 AWS Control Tower ,如果IAM角色允许 AWS Config 读取 S3 对象,请确保向设置时使用的IAM角色授予相同的权限 AWS Config。否则,它可能会干扰 AWS Control Tower 操作方式。

    注意

    AWS Config 评估次数多

    与随后的几个月相比,您可能会注意到,在使用 AWS Config 记录的最初一个月中,您的账户活动有所增加。在初始引导过程中, AWS Config 会对您账户中您选择 AWS Config 要记录的所有资源进行评估。

    如果您运行的是临时工作负载,则可能会看到活动增加, AWS Config 因为它记录了与创建和删除这些临时资源相关的配置更改。临时工作负载 是临时使用在需要时加载和运行的计算资源。示例包括亚马逊弹性计算云 (AmazonEC2) 竞价型实例、亚马逊EMR任务和 AWS Auto Scaling。如果要避免因运行临时工作负载而增加的活动,则可以设置配置记录器以将这些资源类型排除在记录之外,或者在 AWS Config 关闭的情况下在单独的帐户中运行这些类型的工作负载,以避免增加配置记录和规则评估。

    注意

    区域可用性

    在指定 AWS Config 要跟踪的资源类型之前,请检查按区域可用性划分的资源覆盖率,以查看您要设置的 AWS 区域是否支持该资源类型 AWS Config。如果至少有一个区域支持某种资源类型,则即使您设置的区域不支持指定的资源类型 AWS Config,您也可以在支持的所有 AWS 区域中启用该资源类型的记录 AWS Config。 AWS Config

put-configuration-recorder 使用 --configuration-recorder 参数的以下字段:

  • name— 配置记录器的名称。 AWS Config 创建配置记录器时会自动分配 “默认” 的名称。

  • roleARN— 由配置记录器担任 AWS Config 和使用的IAM角色的 Amazon 资源名称 (ARN)。

  • recordingMode— 指定用于记录配置更改的 AWS Config 默认录制频率。 AWS Config 支持连续录制每日录制。连续记录可让您在每次发生配置更改时连续记录更改。使用每日记录,您将收到代表过去 24 小时内资源的最新状态的配置项 (CI),前提是它与之前记录的 CI 不同。

    • recordingFrequency— AWS Config 用于记录配置更改的默认录制频率。

      注意

      AWS Firewall Manager 依赖于持续录制来监控您的资源。如果您使用的是 Firewall Manager,建议您将记录频率设置为“持续”。

    • recordingModeOverrides – 此字段允许您为记录模式指定覆盖。它是一个 recordingModeOverride 对象数组。recordingModeOverrides 数组中的每个 recordingModeOverride 对象都由三个字段组成:

      • description – 您为覆盖提供的描述。

      • recordingFrequency – 将应用于覆盖中指定的所有资源类型的记录频率。

      • resourceTypes— 以逗号分隔的列表,用于指定覆盖中 AWS Config 包含哪些资源类型。

注意

必填字段和可选字段

put-configuration-recorderrecordingMode 字段是可选的。默认情况下,配置记录器的记录频率被设置为连续记录。

注意

限制

以下资源类型不支持每日记录:

  • AWS::Config::ResourceCompliance

  • AWS::Config::ConformancePackCompliance

  • AWS::Config::ConfigurationRecorder

对于记录所有当前和未来支持的资源类型 (ALL_SUPPORTED_RESOURCE_TYPES) 记录策略,这些资源类型将设置为“连续记录”。

configurationRecorder.json文件指定nameroleArn以及配置记录器的默认录制频率 (recordingMode)。您也可以使用此字段来覆盖特定资源类型的记录频率。

{ "name": "default", "roleARN": "arn:aws:iam::123456789012:role/config-role", "recordingMode": { "recordingFrequency": CONTINUOUS or DAILY, "recordingModeOverrides": [ { "description": "Description you provide for the override", "recordingFrequency": CONTINUOUS or DAILY, "resourceTypes": [ Comma-separated list of resource types to include in the override ] } ] } }

步骤 2:运行 put-delivery-channel命令

以下代码示例演示如何使用 PutDeliveryChannel

CLI
AWS CLI

创建配送渠道

以下命令以JSON代码形式提供传送渠道的设置:

aws configservice put-delivery-channel --delivery-channel file://deliveryChannel.json

deliveryChannel.json文件指定了配送渠道属性:

{ "name": "default", "s3BucketName": "config-bucket-123456789012", "snsTopicARN": "arn:aws:sns:us-east-1:123456789012:config-topic", "configSnapshotDeliveryProperties": { "deliveryFrequency": "Twelve_Hours" } }

此示例设置了以下属性:

name-配送渠道的名称。默认情况下, AWS Config 会default将名称分配给新的交付渠道。您无法使用命令更新传递渠道名称。put-delivery-channel有关更改名称的步骤,请参阅重命名配送渠道。 s3BucketName- AWS Config 向其发送配置快照和配置历史记录文件的 Amazon S3 存储桶的名称。如果您指定的存储桶属于另一个 AWS 账户,则该存储桶必须具有授予对 Config AWS 的访问权限的策略。有关更多信息,请参阅 Amazon S3 存储桶的权限。

snsTopicARN-Amazon SNS 主题的亚马逊资源名称 (ARN), AWS Config 会向其发送有关配置变更的通知。如果您从其他账户中选择一个主题,则该主题必须具有授予对 Config AWS 的访问权限的策略。有关更多信息,请参阅 Amazon SNS 主题的权限。

configSnapshotDeliveryProperties-包含deliveryFrequency属性,该属性设置 AWS Config 提供配置快照的频率以及它为定期 Config 规则调用评估的频率。

如果命令成功, AWS Config 将不返回任何输出。要验证您的配送渠道的设置,请运行 describe-delivery-channels命令。

PowerShell
用于 PowerShell

示例 1:此示例更改了现有配送渠道的 deliveryFrequency 属性。

Write-CFGDeliveryChannel -ConfigSnapshotDeliveryProperties_DeliveryFrequency TwentyFour_Hours -DeliveryChannelName default -DeliveryChannel_S3BucketName amzn-s3-demo-bucket -DeliveryChannel_S3KeyPrefix my
  • 有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考PutDeliveryChannel中的。

步骤 3:运行 start-configuration-recorder命令

要完成开启 AWS Config,请使用start-configuration-recorder命令。

$ aws configservice start-configuration-recorder --configuration-recorder-name configRecorderName