查询多个区域和账户的清单数据 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

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

重要

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

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

开始前的准备工作

Athena 集成使用资源数据同步。您必须设置并配置资源数据同步才能使用该功能。有关更多信息,请参阅 为 Inventory 配置资源数据同步

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

配置访问权限

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

(可选)如果清单数据存储在使用 Amazon Key Management Service (Amazon KMS) 加密的 Amazon S3 存储桶中,您还必须配置 IAM 账户和 Amazon-GlueServiceRoleForSSM 服务角色,以便进行 Amazon KMS 加密。如果您没有配置 IAM 账户和此角色,则当您选择控制台中的 Detailed View (详细视图) 选项卡时,Systems Manager 将显示 Cannot load Glue tables

配置您的 IAM 用户账户以访问 Detailed View (详细视图) 页面

以下过程介绍了如何使用 IAM 控制台配置您的 IAM 用户账户,以便您可以在 Detailed View (详细视图) 页面上查看清单数据。

配置对 Detailed View (详细视图) 页面的 IAM 用户账户访问权限

  1. 访问:https://console.aws.amazon.com/iam/,打开 IAM 控制台。

  2. 在导航窗格中,选择用户,然后选择要配置的用户账户。此时将打开摘要页面。

  3. 权限选项卡中,请选择添加权限

  4. Grant permissions (授予权限) 页面上,选择 Attach existing policies directly (直接附加现有策略)

  5. 在 Search (搜索) 字段中,搜索 AWSQuicksightAthenaAccess

  6. 选择此策略旁边的选项,然后选择下一步:审核

  7. 选择 Add permissions(添加权限)。

  8. 再次选择用户名称以返回到摘要页面。

  9. 现在,添加内联策略,以便 Amazon Glue 可以对您的清单数据进行爬网。在权限选项卡上,选择添加内联策略。此时将打开创建策略页面。

  10. 请选择 JSON 选项卡。

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

    { "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 存储桶使用 Amazon KMS 进行加密,则您还必须将以下数据块添加到策略中。

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

    如果将此数据块粘贴到策略中的最后一个数据块之后,请务必使用逗号 (,) 分隔这些数据块。

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

  13. 选择 Create policy(创建策略)。

重要

Inventory Detail View (清单详细视图) 页面上选择资源数据同步时,Systems Manager 将自动创建 Amazon-GlueServiceRoleForSSM 角色。此角色允许 Amazon Glue 访问 Amazon S3 存储桶以进行资源数据同步。Systems Manager 自动将以下策略附加到该角色:

  • Amazon-GlueServicePolicyForSSM-{Amazon S3 存储桶名称}:此策略允许 Amazon Glue 与 Systems Manager Inventory 之间的通信。

  • AWSGlueServiceRole:这是一个允许访问 Amazon Glue 的 Amazon 托管式策略。

如果您的 IAM 用户账户中已经存在名称为 Amazon-GlueServicePolicyForSSM-{Amazon S3 存储桶名称} 的策略,并且此策略未附加到 Amazon-GlueServiceRoleForSSM 角色,则系统将返回错误。要解决此问题,请使用 IAM 控制台来验证并确保 Amazon-GlueServicePolicyForSSM-{Amazon S3 存储桶名称} 策略的内容与此过程中的内联策略相匹配。然后,将策略附加到 Amazon-GlueServiceRoleForSSM 角色。

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

如果用于存储清单数据的 Amazon S3 存储桶使用 Amazon Key Management Service (Amazon KMS) 进行加密,则您必须将 IAM 用户账户和 Amazon-GlueServiceRoleForSSM 角色配置为拥有对 Amazon KMS 密钥的 kms:Decrypt 权限。如果您没有配置 IAM 账户和此角色,则当您选择控制台中的 Detailed View (详细视图) 选项卡时,Systems Manager 将显示 Cannot load Glue tables

开始前的准备工作

要将您的 IAM 用户账户配置为拥有对 Amazon KMS 密钥的 kms:Decrypt 权限,您应将以下策略块作为内联策略添加到您的 IAM 账户中,如上一个过程(配置您的 IAM 用户账户以访问 Detailed View (详细视图) 页面)中所述。

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

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

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

Amazon-GlueServiceRoleForSSM 角色配置为拥有 kms:Decrypt 权限

  1. 访问:https://console.aws.amazon.com/iam/,打开 IAM 控制台。

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

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

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

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

  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. 选择 Create policy(创建策略)。

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

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

重要

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


                            显示 Inventory“控制面板”|“详细视图”|“设置”选项卡

在 Amazon Systems Manager 控制台中查看多个区域和账户的清单数据

  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

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

    -或者-

    如果首先打开 Amazon Systems Manager 主页,选择菜单图标 ( ) 打开导航窗格,然后选择导航窗格中的 Inventory (清单)

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

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

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

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

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

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

编辑 Amazon Glue 爬网程序计划

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

重要

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

更改清单数据爬网程序计划

  1. 打开 Amazon Glue 控制台,地址:https://console.aws.amazon.com/glue/

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

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

    AWSSystemsManager-DOC-EXAMPLE-BUCKET-Region-account_ID

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

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

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

重要

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