管理传递通道 - AWS Config

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

管理传递通道

由于 AWS Config 持续记录您的 AWS 资源发生的变化,它会通过交付渠道发送通知和更新的配置状态。您可以管理交付渠道以控制配置更新的 AWS Config 发送位置。

每个 AWS 账户在每个 AWS 地区只能有一个配送渠道,并且必须使用配送渠道 AWS Config。

当 AWS Config 检测到资源的配置更改并且通知超过 Amazon SNS 允许的最大大小时,通知中会包含配置项目的简短摘要。您可以在 s3BucketLocation 字段中指定的 Amazon S3 存储桶位置查看完整通知。有关更多信息,请参阅过大配置项更改通知示例

注意

AWS Config 支持对使用的 Amazon S3 存储桶进行 AWS KMS 加密 AWS Config

您可以提供 AWS Key Management Service (AWS KMS) 密钥或别名亚马逊资源名称 (ARN) 来加密传输到您的亚马逊简单存储服务 (Amazon S3) 存储桶的数据。默认情况下,将配置历史记录和快照文件 AWS Config 传送到您的 Amazon S3 存储桶,并使用 S3 AES-256 服务器端加密 SSE-S3 对静态数据进行加密。但是,如果您提供 AWS Config 了 KMS 密钥或别名 ARN,则 AWS Config 使用该 KMS 密钥而不是 AES-256 加密。

AWS Config 不支持向 Amazon S3 存储桶的传送渠道,其中启用了对象锁定并启用了默认保留。有关更多信息,请参阅 S3 对象锁定的工作原理

术语

配置项目表示您账户中存在的受支持 AWS 资源的各种属性的 point-in-time 视图。配置项目的组件包括元数据、属性、关系、当前配置和相关事件。 AWS Config 每当它检测到正在记录的资源类型发生变化时,都会创建一个配置项目。例如,如果 AWS Config 正在记录 Amazon S3 存储桶,则每当创建、更新或删除存储桶时,都会 AWS Config 创建一个配置项目。您也可以选择 AWS Config 以您设置的录制频率创建配置项目。

配置历史记录是指定资源在某个时间段的配置项集合。配置历史记录包含多种信息,例如资源首次创建的时间、过去一个月的资源配置情况以及昨天上午 9 点发生了哪些配置更改等。配置历史记录有多种格式可供您使用。 AWS Config 自动将正在记录的每种资源类型的配置历史记录文件传输到您指定的 Amazon S3 存储桶。您可以在 AWS Config 控制台中选择给定资源,然后使用时间轴导航到该资源的所有先前配置项目。此外,您还可以从 API 访问资源的历史配置项。

配置快照是您账户中受支持资源的配置项的集合。配置快照可以完整展示被记录的资源及其配置的相关信息。配置快照是验证您的配置的有效工具。例如,您可以定期检查配置快照,以便找出配置错误的资源或可能不应存在的资源。配置快照具有多种格式。您可以将配置快照传输到您指定的 Amazon Simple Storage Service (Amazon S3) 存储桶。此外,您还可以在 AWS Config 控制台中选择一个时间点,并使用资源之间的关系浏览配置项目的快照。

配置流是自动更新的列表,列出了 AWS Config 正在录制的资源的所有配置项目。每当资源被创建、修改或删除时, AWS Config 会创建一条配置项并将其添加到配置流。配置流使用您选择的 Amazon Simple Notification Service (Amazon SNS) 主题工作。配置流有助于观察配置更改的发生,这样您就可以发现潜在的问题,在某些资源发生更改时生成通知,或者更新需要反映 AWS 资源配置的外部系统。

更新传递通道

更新传递通道时,您可以设置以下选项:

  • 向其 AWS Config 发送配置快照和配置历史记录文件的 Amazon S3 存储桶。

  • 将配置快照 AWS Config 发送到您的 Amazon S3 存储桶的频率。

  • 向其 AWS Config 发送有关配置更改的通知的 Amazon SNS 主题。

您可以使用 AWS Config 控制台为您的交付渠道设置 Amazon S3 存储桶和 Amazon SNS 主题。有关管理这些设置的步骤,请参阅 使用控制 AWS Config 台进行设置

控制台不提供用于重命名传递通道、设置配置快照频率或删除传递通道的选项。要执行这些任务,必须使用 AWS CLI、 AWS Config API 或其中一个 AWS 软件开发工具包。

以下代码示例演示如何使用 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 config-bucket-NA -DeliveryChannel_S3KeyPrefix my
  • 有关 API 的详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考PutDeliveryChannel中的。

(可选) 您可以使用 describe-delivery-channels 命令验证传递通道设置是否已更新:

$ aws configservice describe-delivery-channels { "DeliveryChannels": [ { "configSnapshotDeliveryProperties": { "deliveryFrequency": "Twelve_Hours" }, "snsTopicARN": "arn:aws:sns:us-east-2:123456789012:config-topic", "name": "default", "s3BucketName": "config-bucket-123456789012" } ] }

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

CLI
AWS CLI

获取有关配送渠道的详细信息

以下命令返回有关交付渠道的详细信息:

aws configservice describe-delivery-channels

输出:

{ "DeliveryChannels": [ { "snsTopicARN": "arn:aws:sns:us-east-1:123456789012:config-topic", "name": "default", "s3BucketName": "config-bucket-123456789012" } ] }
PowerShell
用于 PowerShell

示例 1:此示例检索该地区的配送渠道并显示详细信息。

Get-CFGDeliveryChannel -Region eu-west-1 | Select-Object Name, S3BucketName, S3KeyPrefix, @{N="DeliveryFrequency";E={$_.ConfigSnapshotDeliveryProperties.DeliveryFrequency}}

输出:

Name S3BucketName S3KeyPrefix DeliveryFrequency ---- ------------ ----------- ----------------- default config-bucket-NA my TwentyFour_Hours

重命名传递通道

要更改传递通道的名称,您必须删除该传递通道,然后使用所需名称创建一个新传递通道。在删除传递通道之前,您必须暂时停止配置记录器。

AWS Config 控制台不提供删除传送渠道的选项,因此您必须使用 AWS CLI、 AWS Config API 或其中一个 AWS SDK。

使用重命名配送渠道 AWS CLI
  1. 使用 stop-configuration-recorder 命令停止配置记录器:

    $ aws configservice stop-configuration-recorder --configuration-recorder-name configRecorderName
  2. 使用 describe-delivery-channels 命令,并记下您的传递通道属性:

    $ aws configservice describe-delivery-channels { "DeliveryChannels": [ { "configSnapshotDeliveryProperties": { "deliveryFrequency": "Twelve_Hours" }, "snsTopicARN": "arn:aws:sns:us-east-2:123456789012:config-topic", "name": "default", "s3BucketName": "config-bucket-123456789012" } ] }
  3. 使用 delete-delivery-channel 命令删除传递通道:

    $ aws configservice delete-delivery-channel --delivery-channel-name default
  4. 使用 put-delivery-channel 命令以所需名称创建传递通道:

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

    deliveryChannel.json 文件指定了传递通道的属性:

    { "name": "myCustomDeliveryChannelName", "s3BucketName": "config-bucket-123456789012", "snsTopicARN": "arn:aws:sns:us-east-2:123456789012:config-topic", "configSnapshotDeliveryProperties": { "deliveryFrequency": "Twelve_Hours" } }
  5. 使用 start-configuration-recorder 命令恢复记录:

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