AWS Config 从 AWS CLI - AWS Config

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

AWS Config 从 AWS CLI

注意

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

要从 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 区域都只能有一个配置记录器和一个传输通道。

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

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

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 资源类型。无法记录全局 IAM 资源类型的区域列表中包含以下区域:

    • 亚太地区(海得拉巴)

    • 亚太地区(墨尔本)

    • 加拿大西部(卡尔加里)

    • 欧洲(西班牙)

    • 欧洲(苏黎世)

    • 以色列(特拉维夫)

    • 中东(阿联酋)

    重要

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

    AWS::RDS::GlobalCluster资源类型将记录在启用配置记录器的所有支持 AWS Config 区域,即使设置includeGlobalResourceTypesfalseincludeGlobalResourceTypes 选项是一个捆绑包,仅适用于 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字段,因为该字段的默认设置是记录除全球 IAM 资源类型之AllSupported外的所有受支持资源类型的配置更改。要在设置为时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 用户、组、角色和客户管理型策略)的配置更改,那么除了将 includeGlobalResourceTypes 字段设置为 false 之外,切勿在 resourceTypes 字段中列出这些内容。

  • 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 资源类型仍将自动记录在此选项中,除非这些资源类型在 exclusionByResourceTypesresourceTypes 字段中被明确列为排除项。

    注意

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

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

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

    IAM 用户、群组、角色和客户托管策略将记录在您设置配置记录器的区域(如果该区域在 2022 年 2 月之前可用)。 AWS Config 2022 年 2 月 AWS Config 之后,您无法在支持的区域中记录全球 IAM 资源类型。无法记录全局 IAM 资源类型的区域列表中包含以下区域:

    • 亚太地区(海得拉巴)

    • 亚太地区(墨尔本)

    • 加拿大西部(卡尔加里)

    • 欧洲(西班牙)

    • 欧洲(苏黎世)

    • 以色列(特拉维夫)

    • 中东(阿联酋)

    以下示例显示 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 Config 的角色

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

    例如,如果 AWS Control Tower 拥有允许 AWS Config 读取亚马逊简单存储服务 (Amazon S3) Service 对象的 IAM 角色,请确保在设置时使用的 IAM 角色中授予的权限相同。 AWS Config否则,它可能会干扰 AWS Control Tower 操作方式。有关的 IAM 角色的更多信息 AWS Config,请参阅适用于 Ident ity and Access Managem en AWS Config t。

    注意

    AWS Config 评估次数多

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

    如果您运行的是临时工作负载,则可能会看到活动增加, AWS Config 因为它记录了与创建和删除这些临时资源相关的配置更改。临时工作负载 是临时使用在需要时加载和运行的计算资源。示例包括 Amazon Elastic Compute Cloud (Amazon EC2) 竞价型实例、Amazon 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 ] } ] } }

put-delivery-channel

要设置传输通道,请使用 put-delivery-channel 命令。

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

deliveryChannel.json 文件指定了传输通道的属性。

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

此示例设置了以下属性:

  • name – 传输通道的名称。默认情况下,会将的名称 AWS Config 分配default给新的交付渠道。

    您无法使用 put-delivery-channel 命令更新传递通道的名称。有关更改名称的步骤,请参阅 重命名传递通道

  • s3BucketName— 用于 AWS Config 提供配置快照和配置历史记录文件的 S3 存储桶的名称。

    如果您指定的存储桶属于另一个 AWS 账户,则该存储桶必须具有授予访问权限的策略 AWS Config。有关更多信息,请参阅 AWS Config 传送渠道的 Amazon S3 存储桶的权限

  • snsTopicARN— Amazon SNS 主题的亚马逊资源名称 (ARN),用于发送有关配置 AWS Config 更改的通知。

    如果您从其他账户中选择一个主题,则该主题必须具有授予访问权限的策略 AWS Config。有关更多信息,请参阅 Amazon SNS 主题的权限

  • configSnapshotDeliveryProperties— 包含deliveryFrequency属性,该属性用于设置配置快照的 AWS Config 交付频率。

start-configuration-recorder

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

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