AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

配置清单的资源数据同步

您可以使用 Systems Manager 资源数据同步将从所有托管实例收集的清单数据存储到单个 Amazon S3 存储桶。收集新的清单数据后,资源数据同步自动更新集中式数据。所有清单数据存储在目标 Amazon S3 存储桶中后,您可以使用 Amazon Athena 和 Amazon QuickSight 等服务查询和分析聚合数据。

例如,假设您将清单配置为收集关于操作系统 (OS) 和 150 个托管实例机群上运行的应用程序的数据。其中部分实例位于混合数据中心,而其他实例在多个 AWS 区域中的 Amazon EC2 中运行。如果您配置清单的资源数据同步,则您需要手动收集已收集的每个实例的清单数据,或者必须创建脚本来收集这些信息。然后您需要将数据传输到应用程序中,以便运行查询和分析数据。

使用资源数据同步,您可以通过一次性操作同步所有托管实例中的所有清单数据。在成功创建同步后,Systems Manager 创建所有清单数据的基准,并将其保存在目标 Amazon S3 存储桶中。收集新的清单数据后,Systems Manager 自动更新 Amazon S3 存储桶中的数据。然后您可以快速有效地将数据传输到 Amazon Athena 和 Amazon QuickSight。

图 1 说明资源数据同步如何将 Amazon EC2 和混合环境中的托管实例的清单数据聚合到目标 Amazon S3 存储桶。该图还显示了资源数据同步如何处理多个 AWS 账户和 AWS 区域。

图 1:对多个 AWS 账户和 AWS 区域进行资源数据同步


                Systems Manager 资源数据同步架构

如果删除托管实例,资源数据同步会保留删除的实例的清单文件。但是,对于正在运行的实例,当新文件创建并写入到 Amazon S3 存储桶中时,资源数据同步自动覆盖旧清单文件。如果要随着时间推移跟踪清单变化,您可以使用 AWS Config 服务跟踪 SSM:MangagedInstanceInventory 资源类型。有关更多信息,请参阅 AWS Config 入门

创建清单的资源数据同步

通过 Amazon S3 和 AWS Systems Manager 控制台,使用以下过程创建清单的资源数据同步。您也可以使用 AWS CloudFormation 创建或删除资源数据同步。要使用 AWS CloudFormation,请将 AWS::SSM::ResourceDataSync 资源添加到 AWS CloudFormation 模板。有关信息,请参阅以下文档资源:

注意

您可以使用 AWS Key Management Service (AWS KMS) 加密 Amazon S3 存储桶中的清单数据。有关如何使用 AWS CLI 创建加密同步和如何处理 Amazon Athena 和 Amazon QuickSight 中的集中式数据的示例,请参阅演练:使用资源数据同步聚合清单数据

创建和配置一个 Amazon S3 存储桶用于资源数据同步

  1. Open the Amazon S3 console at https://console.amazonaws.cn/s3/.

  2. 创建用来存储聚合清单数据的存储桶。有关更多信息,请参阅 Amazon Simple Storage Service Getting Started Guide 中的创建存储桶。请记下存储桶名称和创建此存储桶的 AWS 区域。

  3. 选择 Permissions 选项卡,然后选择 Bucket Policy

  4. 将下面的存储桶策略复制并粘贴到策略编辑器中。使用您创建的 Amazon S3 存储桶的名称和有效的 AWS 账户 ID 替换 bucket-nameaccount-id

    要让多个 AWS 账户将清单数据发送到中央 Amazon S3 存储桶,请在策略中指定每个账户,如下面的 Resource 示例所示:

    "Resource": [ "arn:aws:s3:::MyTestS3Bucket/*/accountid=123456789012/*", "arn:aws:s3:::MyTestS3Bucket/*/accountid=a1b2c3d4e5f6/*", "arn:aws:s3:::MyTestS3Bucket/*/accountid=1234abcd56ef/*" ],

    (可选)使用 Amazon S3 前缀(子目录)的名称替换 bucket-prefix。如果您未创建前缀,则从以下策略的 ARN 中删除 bucket-prefix/。

    注意

    有关查看您的 AWS 账户 ID 的信息,请参阅 IAM User Guide 中的 AWS 账户 ID 及其别名

    { "Version":"2012-10-17", "Statement":[ { "Sid":"SSMBucketPermissionsCheck", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"s3:GetBucketAcl", "Resource":"arn:aws:s3:::bucket-name" }, { "Sid":" SSMBucketDelivery", "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Action":"s3:PutObject", "Resource":[ "arn:aws:s3:::bucket-name/bucket-prefix/*/accountid=account-id-1/*", "arn:aws:s3:::bucket-name/bucket-prefix/*/accountid=account-id-2/*", "arn:aws:s3:::bucket-name/bucket-prefix/*/accountid=account-id-3/*" ], "Condition":{ "StringEquals":{ "s3:x-amz-acl":"bucket-owner-full-control" } } } ] }

创建资源数据同步

  1. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

  2. 在导航窗格中,选择托管实例

    -或者-

    如果 AWS Systems Manager 主页首先打开,请选择菜单图标 ( ) 以打开导航窗格,然后选择 托管实例

  3. 选择 Resource Data Syncs,然后选择 Create resource data sync

  4. Sync name 字段中,键入同步配置的名称。

  5. Bucket Name (存储桶名称) 字段中,键入您在此过程开始时创建的 Amazon S3 存储桶的名称。

  6. (可选)在 Bucket Prefix (存储桶前缀) 字段中,键入 Amazon S3 存储桶前缀(子目录)的名称。

  7. 对于 Bucket Region (存储桶区域) 字段,如果您创建的 Amazon S3 存储桶位于当前 AWS 区域,则选择 This region (此区域)。如果存储桶位于不同的 AWS 区域,则选择 Another region,然后键入该区域的名称。

    注意

    如果同步和目标 Amazon S3 存储桶位于不同区域,您可能需要支付数据传输价格。有关更多信息,请参阅 Amazon S3 定价

  8. KMS Key ARN (KMS 密钥 ARN) 字段中,键入或粘贴 KMS 密钥 ARN 来加密 Amazon S3 中的清单数据。

  9. 选择 Create

要同步来自多个 AWS 区域的清单数据,您必须在每个 区域中创建资源数据同步。在要收集清单数据并将其发送到中央 Amazon S3 存储桶的每个 AWS 区域中重复此过程。在每个区域中创建同步时,请在 Bucket name (存储桶名称) 字段中指定中央 Amazon S3 存储桶。然后,使用 Bucket region (存储桶区域) 选项选择要在其中创建中央 Amazon S3 存储桶的区域,如下面的屏幕截图所示。下次关联运行以收集清单数据时,Systems Manager 会将数据存储到中央 Amazon S3 存储桶中。


                    多个 AWS 区域的 Systems Manager 资源数据同步