为 Inventory 配置资源数据同步 - Amazon Web Services Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

为 Inventory 配置资源数据同步

本主题介绍如何为 Amazon Web Services Systems Manager Inventory 设置和配置资源数据同步。有关 Systems Manager 资源管理器资源数据同步的信息,请参阅。Systems Manager 置以显示多个账户和区域中的数据

关于资源数据同步

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

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

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

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

图 1:资源数据与多个同步Amazon Web Services 账户和Amazon Web Services 区域


                        Systems Manager 资源数据同步架构

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

按照此部分中的过程操作,使用 Amazon S3 和Amazon Web Services Systems Manager控制台。您也可以使用 Amazon CloudFormation 创建或删除资源数据同步。使用Amazon CloudFormation,添加AWS::SSM::ResourceDataSync资源到您的Amazon CloudFormation模板。有关信息,请参阅以下文档资源:

注意

您可以使用Amazon Key Management Service(Amazon KMS)来加密 Amazon S3 存储桶中的清单数据。有关如何使用创建加密同步的示例Amazon命令行界面 (AmazonCLI)以及如何在 Amazon Athena 和 Amazon QuickSight 中使用集中式数据,请参阅演练:使用资源数据同步聚合清单数据

开始前的准备工作

在创建资源数据同步之前,请使用以下过程创建中央 Amazon S3 存储桶以存储聚合的清单数据。该过程介绍如何分配存储桶策略,以便 Systems Manager agement 能够将多个账户中的清单数据写入存储桶。如果您已有一个要用于聚合清单数据以进行资源数据同步的 Amazon S3 存储桶,则必须在以下过程中将该存储桶配置为使用策略。

创建和配置 Amazon S3 存储桶以进行资源数据同步

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 创建用来存储聚合清单数据的存储桶。有关更多信息,请参阅 。创建存储桶中的Amazon Simple Storage Service 入门指南。记下存储桶名称和Amazon Web Services 区域创建它的位置。

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

  4. 将下面的存储桶策略复制并粘贴到策略编辑器中。Replace文档示例存储桶account-id使用您创建的 S3 存储桶的名称和有效的Amazon Web Services 账户ID。

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

    "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*/accountid=123456789012/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*/accountid=444455556666/*", "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*/accountid=777788889999/*" ],

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

    注意

    有关查看Amazon Web Services 账户ID,请参阅您的 Amazon Web Services 账户 ID 及其别名中的IAM 用户指南

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

    已于 2019 年 4 月 25 日在亚太地区在线推出。如果为Amazon Web Services 区域自亚太地区(香港)区域 (ap-east-1) 或更高版本开始在线,则必须在SSMBucketDelivery部分。以下示例包括特定于区域的服务委托人条目ssm.ap-east-1.amazonaws.com

    { "Sid":" SSMBucketDelivery", "Effect":"Allow", "Principal":{ "Service":["ssm.amazonaws.com","ssm.ap-east-1.amazonaws.com"] },

为 Inventory 创建资源数据同步

可以使用以下过程通过使用 Systems Manager 控制台为 Systems Manager 清单创建资源数据同步。有关如何使用创建资源数据同步的信息,请参阅AmazonCLI,请参阅演练:使用 CLI 配置 Inventory 的托管实例

创建资源数据同步

  1. 打开Amazon Web Services Systems Manager控制台位于https://console.aws.amazon.com/systems-manager/

  2. 在导航窗格中,选择队列管理

    -或者-

    如果Amazon Web Services Systems Manager首先打开主页,选择菜单图标( ) 以打开导航窗格中的,然后选择队列管理在导航窗格中。

  3. 账户管理菜单中,选择资源数据同步

  4. 选择 Create resource data sync (创建资源数据同步)

  5. Sync Name字段中,输入同步配置的名称。

  6. Bucket name字段 Amazon S3,输入您使用创建和配置 Amazon S3 存储桶以进行资源数据同步过程。

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

  8. Bucket region字段中,选择这个区域如果您创建的 Amazon S3 存储桶位于当前Amazon Web Services 区域。如果存储桶位于不同的Amazon Web Services 区域中,选择另一个区域,然后输入区域的名称。

    注意

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

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

  10. 选择创建

同步多个清单数据Amazon Web Services 区域,您必须在EAdd区域。在每个Amazon Web Services 区域您想要收集清单数据并将其发送到中央 Amazon S3 存储桶。当您在每个区域中创建同步 Amazon S3,请在Bucket name字段。然后使用Bucket region选项,选择您创建中央 Amazon S3 存储桶的区域,如下面的屏幕截图所示。下次关联运行以收集清单数据时,Systems Manager 会将数据存储到中央 Amazon S3 存储桶中。


                        Systems Manager 资源数据从多个同步Amazon Web Services 区域

为中定义的帐户创建清单资源数据同步Amazon Organizations

您可以将清单数据同步到Amazon Web Services 账户定义在Amazon Organizations添加到 Amazon S3 存储桶中央存储桶。完成以下过程后,清单数据将同步到单个人中央存储桶中的 Amazon S3 密钥前缀。每个 key prefix 均代表一个不同的Amazon Web Services 账户ID。

开始前的准备工作

在开始之前,请验证您是否已设置和配置Amazon Web Services 账户在Amazon Organizations。有关更多信息,请参阅 。中的Amazon Organizations用户指南

另外,请注意,您必须为每个Amazon Web Services 区域和Amazon Web Services 账户定义在Amazon Organizations。

创建 Amazon S3 存储桶中央存储桶

使用以下过程可创建中央 Amazon S3 存储桶以存储聚合的清单数据。该过程介绍如何分配存储桶策略,以便 Systems Manager agement 能够将您的清单数据写入存储桶。Amazon Organizations账户 ID。如果您已有一个要用于聚合清单数据以进行资源数据同步的 Amazon S3 存储桶,则必须在以下过程中将该存储桶配置为使用策略。

为中定义的多个账户的资源数据同步创建和配置 Amazon S3 存储桶Amazon Organizations

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 创建用来存储聚合清单数据的存储桶。有关更多信息,请参阅 。创建存储桶中的Amazon Simple Storage Service 入门指南。记下存储桶名称和Amazon Web Services 区域创建它的位置。

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

  4. 将下面的存储桶策略复制并粘贴到策略编辑器中。Replace文档示例存储桶组织编号,其中包括您创建的 Amazon S3 存储桶的名称和有效的Amazon Organizations账户 ID。

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

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SSMBucketPermissionsCheck", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET" }, { "Sid": " SSMBucketDelivery", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/bucket-prefix/*/accountid=*/*" ], "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "s3:RequestObjectTag/OrgId": "organization-id" } } }, { "Sid": " SSMBucketDeliveryTagging", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:PutObjectTagging", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/bucket-prefix/*/accountid=*/*" ] } ] }
    注意

    已于 2019 年 4 月 25 日在亚太地区在线推出。如果为Amazon Web Services 区域自亚太地区(香港)区域 (ap-east-1) 或更高版本开始在线,则必须在SSMBucketDelivery部分。以下示例包括特定于区域的服务委托人条目ssm.ap-east-1.amazonaws.com

    { "Sid":" SSMBucketDelivery", "Effect":"Allow", "Principal":{ "Service":["ssm.amazonaws.com","ssm.ap-east-1.amazonaws.com"] },

为中定义的帐户创建清单资源数据同步Amazon Organizations

以下过程介绍如何使用AmazonCLI 可为中定义的账户创建资源数据同步Amazon Organizations。您必须使用AmazonCLI 执行此任务。您还必须为每个Amazon Web Services 区域和Amazon Web Services 账户定义在Amazon Organizations。

为中定义的账户创建资源数据同步Amazon Organizations(AmazonCLI)

  1. 安装和配置Amazon命令行界面 (AmazonCLI)(如果尚未执行该操作)。

    想要了解有关信息,请参阅安装或升级Amazon命令行工具

  2. 运行以下命令可验证您是否没有任何其他资源数据同步。您只能有一个基于组织的资源数据同步。

    aws ssm list-resource-data-sync

    如果该命令返回另一个资源数据同步,则必须将其删除或者选择不创建新的同步。

  3. 运行以下命令可为中定义的帐户创建资源数据同步。Amazon Organizations。适用于文档示例存储桶中,指定您在本主题前面创建的 Amazon S3 存储桶的名称。如果您为存储桶创建了前缀(子目录),则为前缀名称

    aws ssm create-resource-data-sync --sync-name name --s3-destination "BucketName=DOC-EXAMPLE-BUCKET,Prefix=prefix-name,SyncFormat=JsonSerDe,Region=Amazon Web Services 区域, for example us-east-2,DestinationDataSharing={DestinationDataSharingType=Organization}"
  4. 重复步骤 2 和 3,对每个Amazon Web Services 区域和Amazon Web Services 账户您希望将数据同步到中央 Amazon S3 存储桶。