查询多个区域和账户的清单数据 - AWS Systems Manager

查询多个区域和账户的清单数据

AWS Systems Manager Inventory 可与 Amazon Athena 集成,以帮助您查询来自多个 AWS 区域和 AWS 账户的清单数据。Athena 集成使用资源数据同步,以便您可以在 AWS Systems Manager 控制台中的 Detailed View(详细视图)页面上查看来自所有托管式节点的清单数据。

重要

此功能将使用 AWS Glue 网络爬取您的 Amazon Simple Storage Service (Amazon S3) 存储桶中的数据,以及使用 Amazon Athena 查询这些数据。根据抓取和查询的数据量,您可能需要为使用这些服务付费。使用 AWS Glue 时,您需要按小时费率(按秒计)为爬网程序(发现数据)和 ETL 作业(处理和加载数据)付费。使用 Athena,您需要按每次查询所扫描的数据量付费。建议您在使用 Amazon Athena 与 Systems Manager Inventory 的集成之前查看这些服务的定价准则。有关更多信息,请参阅 Amazon Athena 定价AWS Glue 定价

您可以在所有提供 Amazon Athena 的 AWS 区域 中的 Detailed View (详细视图) 页面上查看清单数据。有关受支持的区域列表,请参阅《Amazon Web Services 一般参考》中的 Amazon Athena Service Endpoints

开始前的准备工作

Athena 集成使用资源数据同步。您必须设置并配置资源数据同步才能使用该功能。有关更多信息,请参阅 演练:使用资源数据同步聚合清单数据

另请注意,Detailed View (详细视图) 页面将为资源数据同步使用的中央 Amazon S3 存储桶的拥有者显示清单数据。如果您不是中央 Amazon S3 存储桶的拥有者,则无法在 Detailed View (详细视图) 页面上查看清单数据。

配置访问权限

您必须将 IAM 实体配置为拥有查看数据的权限,然后才能在 Systems Manager 控制台中的详细视图页面上查询及查看来自多个账户和区域的数据。

如果清单数据存储在使用 AWS Key Management Service(AWS KMS)加密的 Amazon S3 存储桶中,您还必须配置 IAM 实体和 Amazon-GlueServiceRoleForSSM 服务角色,以便进行 AWS KMS 加密。

配置您的 IAM 实体以访问“详细视图”页面

下文介绍了在详细视图页面上查看清单数据所需的最低权限。

AWSQuicksightAthenaAccess 托管策略

以下 PassRole 和其他所需权限块

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGlue", "Effect": "Allow", "Action": [ "glue:GetCrawler", "glue:GetCrawlers", "glue:GetTables", "glue:StartCrawler", "glue:CreateCrawler" ], "Resource": "*" }, { "Sid": "iamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "glue.amazonaws.com" } } }, { "Sid": "iamRoleCreation", "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "arn:aws:iam::account_ID:role/*" }, { "Sid": "iamPolicyCreation", "Effect": "Allow", "Action": "iam:CreatePolicy", "Resource": "arn:aws:iam::account_ID:policy/*" } ] }

(可选)如果用于存储清单数据的 Amazon S3 存储桶使用 AWS KMS 进行加密,则您还必须将以下数据块添加到策略中。

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:Region:account_ID:key/key_ARN" ] }

要提供访问权限,请为您的用户、组或角色添加权限:

(可选)配置查看 AWS KMS 加密数据的权限

如果用于存储清单数据的 Amazon S3 存储桶使用 AWS Key Management Service(AWS KMS)进行加密,则您必须将 IAM 实体和 Amazon-GlueServiceRoleForSSM 角色配置为拥有对 AWS KMS 密钥的 kms:Decrypt 权限。

开始前的准备工作

要提供对 AWS KMS 密钥的 kms:Decrypt 权限,请将以下策略块添加到您的 IAM 实体:

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:Region:account_ID:key/key_ARN" ] }

如果您尚未这样做,请完成该过程,并添加对 AWS KMS 密钥的 kms:Decrypt 权限。

使用以下过程将 Amazon-GlueServiceRoleForSSM 角色配置为拥有对 AWS KMS 密钥的 kms:Decrypt 权限。

Amazon-GlueServiceRoleForSSM 角色配置为拥有 kms:Decrypt 权限
  1. 通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。

  2. 在导航窗格中,选择 Roles (角色),然后使用搜索字段查找 Amazon-GlueServiceRoleForSSM 角色。此时将打开摘要页面。

  3. 使用搜索字段查找 Amazon-GlueServiceRoleForSSM 角色。选择角色名称 。此时将打开摘要页面。

  4. 选择角色名称 。此时将打开摘要页面。

  5. 选择添加内联策略。此时将打开创建策略页面。

  6. 选择 JSON 选项卡。

  7. 删除编辑器中现有的 JSON 文本,然后将以下策略复制并粘贴到 JSON 编辑器中。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:Region:account_ID:key/key_ARN" ] } ] }
  8. 选择查看策略

  9. 查看策略页面上的名称字段中输入名称。

  10. 选择 创建策略

在清单详细视图页面上查询数据

使用以下过程可在 Systems Manager Inventory Detailed View (详细视图) 页面上查看来自多个 AWS 区域和 AWS 账户的清单数据。

重要

仅在提供 Amazon Athena 的 AWS 区域 中提供了 Inventory Detailed View (详细视图) 页面。如果在 Systems Manager Inventory 页面上未显示以下选项卡,则意味着 Athena 在该区域中不可用,并且您无法使用 Detailed View (详细视图) 查询数据。

显示 Inventory“控制面板”|“详细视图”|“设置”选项卡
在 AWS Systems Manager 控制台中查看多个区域和账户的清单数据
  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 AWS Systems Manager 控制台。

  2. 在导航窗格中,选择 Inventory (清单)

  3. 选择 Detailed View (详细视图) 选项卡。

    访问 AWS Systems Manager Inventory(清单)详细视图页面
  4. 选择要查询数据的资源数据同步。

    在 AWS Systems Manager 控制台中显示清单数据
  5. Inventory Type (清单类型) 列表中,请选择要查询的清单数据类型,然后按 Enter

    在 AWS Systems Manager 控制台中选择清单类型
  6. 要筛选数据,请选择筛选条件栏,然后选择筛选选项。

    在 AWS Systems Manager 控制台中筛选清单数据

您可以使用 Export to CSV (导出到 CSV) 按钮在电子表格应用程序(如 Microsoft Excel)中查看当前查询集。您也可以使用 Query History (查询历史记录)Run Advanced Queries (运行高级查询) 按钮查看历史记录详细信息,并与 Amazon Athena 中的数据进行交互。

编辑 AWS Glue 爬网程序计划

预设情况下,AWS Glue 每天会爬取中央 Amazon S3 存储桶中的清单数据两次。如果您经常更改要在节点上收集的数据的类型,则可能需要更频繁地抓取数据,如以下过程中所述。

重要

AWS Glue 按小时费率(按秒计费)向您的 AWS 账户收取执行爬网程序(发现数据)和 ETL 任务(处理和加载数据)的费用。在更改爬网程序计划前,请先查看 AWS Glue 定价页面。

更改清单数据爬网程序计划
  1. 通过 https://console.aws.amazon.com/glue/ 打开 AWS Glue 控制台。

  2. 在导航窗格中,选择 爬网程序

  3. 在爬网程序列表中,选择 Systems Manager Inventory 数据爬网程序旁边的选项。爬网程序名称使用以下格式:

    AWSSystemsManager-s3-bucket-name-Region-account_ID

  4. 选择 Action (操作),然后选择 Edit crawler (编辑爬网程序)

  5. 在导航窗格中,选择 Schedule (计划)

  6. Cron expression (Cron 表达式) 字段中,使用 cron 格式指定一个新计划。有关更多信息,请参阅 AWS Glue Developer Guide 中的基于时间的任务和爬网程序日程

重要

您可以暂停爬网程序以停止 AWS Glue 产生的费用。如果暂停爬网程序或降低爬取数据的频率,则 Inventory Detailed View (详细视图) 可能会显示非当前数据。