本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
演練:使用資源資料同步來彙總清查資料
以下逐步教學會說明如何使用 來建立資源資料同步組態。AWS CLI. 資源資料同步會自動將所有受管執行個體的清查資料移植到中央 Amazon Simple Storage Service (Amazon S3) 儲存貯體。每當搜索到新的清查資料時,同步就會自動更新中央 S3 儲存貯體內的資料。同時,此逐步教學也會介紹如何使用 Amazon Athena 和 Amazon QuickSight 來查詢彙總資料,並予以分析。如需使用 Amazon EC2 主控台建立資源資料同步的相關資訊,請參閱設定庫存的資源資料同步.
此逐步教學涵蓋的資訊能協助您使用 AWS Key Management Service ( (AWS KMS).) 加密同步作業。庫存並不會收集任何使用者專用、私有或敏感的資料,因此加密為選用功能。如需 的詳細資訊AWS KMS,請前往 AWS Key Management Service Developer Guide。
開始之前
請先收集來自受管執行個體的清查中繼資料,再開始進行此演練。為了完成此逐步教學中的 Amazon Athena 和 Amazon QuickSight 小節,建議您收集應用程式中繼資料。如需如何收集清查中繼資料的詳細資訊,請參閱 演練:使用 CLI 將受管執行個體設定為啟用清查.
(選用) 若您想使用 AWS KMS 加密同步作業,請建立包含以下政策的新金鑰,或是更新現有金鑰並新增這項政策。
{ "Version":"2012-10-17", "Id":"ssm-access-policy", "Statement":[ { "Sid":"ssm-access-policy-statement", "Action":[ "kms:GenerateDataKey" ], "Effect":"Allow", "Principal":{ "Service":"ssm.amazonaws.com" }, "Resource":"arn:aws:kms:
region
:AWS-account-ID
:key/KMS-key-id
" } ] }
建立庫存的資源資料同步
-
在 https://console.aws.amazon.com/s3/
開啟 Amazon S3 主控台。 -
建立儲存貯體以存放您的彙整清查資料。如需詳細資訊,請前往 中的建立儲存貯體Amazon Simple Storage Service 入門指南。請記下儲存貯體名稱以及您建立的所在 AWS 區域。
-
建立儲存貯體後,請選擇 Permissions (許可) 索引標籤,接著選擇 Bucket Policy (儲存貯體政策).
-
複製下列儲存貯體政策並貼至政策編輯器。取代
DOC-EXAMPLE-BUCKET
和account-id
使用您建立的 S3 儲存貯體名稱和有效的 AWS 帳號 ID。或者,取代bucket-prefix
取代為 Amazon S3 字首的名稱 (subdirectory)。如果您未建立字首,請移除bucket-prefix/
來自政策中 ARN 的 。{ "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
/*"], "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] } -
(選用) 您必須將以下政策新增至儲存貯體,才能加密同步作業。請重複先前步驟,即可新增以下政策至儲存貯體。
{ "Version":"2012-10-17", "Statement":[ { "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-server-side-encryption":"aws:kms", "s3:x-amz-server-side-encryption-aws-kms-key-id":"arn:aws:kms:region
:account_ID
:key/KMS_key_ID
" } } } ] } -
如果您尚未安裝並設定 AWS CLI,請進行相應的作業。
如需資訊,請參閱 安裝或升級 AWS 命令列工具。
-
(選用) 若您要加密同步作業,請執行下列命令,藉此驗證儲存貯體政策是否強制執行 KMS 金鑰需求。
-
請執行下列命令,以您在此程序開頭建立的 S3 儲存貯體,建立資源資料同步組態。此命令會從您目前登入的 AWS 區域建立同步。
注意 如果同步與目標 S3 儲存貯體位於不同區域,您可能需要支付資料傳輸費用。如需詳細資訊,請參閱 Amazon S3 定價
. 您可以透過
region
參數,指定應建立同步組態的位置。在以下範例中,系統會將來自 us-west-1 區域的清查資料同步至 us-west-2 區域內的 S3 儲存貯體。(選用) 您能夠執行下列命令以建立同步,即可使用 AWS KMS 加密同步作業。如果您選擇加密同步作業,則 AWS KMS 金鑰與 S3 儲存貯體必須位於相同區域。
-
執行下列命令,藉此檢視同步組態狀態。
aws ssm list-resource-data-sync
若您在不同區域中建立同步組態,請務必指定
region
參數,如下方範例所示。aws ssm list-resource-data-sync --region us-west-1
-
成功建立同步組態後,請瀏覽 中的目標儲存貯體。Amazon S3. 庫存資料應該會在幾分鐘內出現。
使用 中的資料 Amazon Athena
下節會介紹在 中檢視及查詢資料的方法。Amazon Athena. 開始操作前,建議您了解 Athena. 如需詳細資訊,請查看 中的 Amazon Athena ? 和使用資料Amazon Athena 使用者指南。
在 中檢視及查詢資料Amazon Athena
-
在 https://console.aws.amazon.com/athena/
開啟 Athena 主控台。 -
複製下列陳述式並貼至查詢編輯器,然後選擇 Run Query (執行查詢).
CREATE DATABASE ssminventory
系統會建立名為 ssminventory 的資料庫。
-
複製下列陳述式並貼至查詢編輯器,然後選擇 Run Query (執行查詢). 取代
DOC-EXAMPLE-BUCKET
和bucket_prefix
取代為Amazon S3目標的名稱和字首。CREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_Application ( Name string, ApplicationType string, Publisher string, Version string, InstalledTime string, Architecture string, URL string, Summary string, PackageId string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://
DOC-EXAMPLE-BUCKET
/bucket_prefix
/AWS:Application/' -
複製下列陳述式並貼至查詢編輯器,然後選擇 Run Query (執行查詢).
MSCK REPAIR TABLE ssminventory.AWS_Application
系統將分割資料表。
注意 如果您是從其他 AWS 區域或帳戶建立資源資料同步,便需要重新執行此命令,才能更新分割區。另外,您可能也需要更新 S3 儲存貯體政策。
-
選擇 AWS_Application 資料表旁的檢視圖示,即可預覽資料。
-
複製下列陳述式並貼至查詢編輯器,然後選擇 Run Query (執行查詢).
SELECT a.name, a.version, count( a.version) frequency from aws_application a where a.name = 'aws-cfn-bootstrap' group by a.name, a.version order by frequency desc
查詢會傳回不同版本 的計數,這是出現在
aws-cfn-bootstrap
Linux、 macOS和 EC2 執行個體上的 AWS 應用程式Windows Server。 -
單獨複製以下陳述式並貼到查詢編輯器中,取代
DOC-EXAMPLE-BUCKET
和bucket-prefix
連同 的資訊Amazon S3,然後選擇 Run Query (執行查詢)。這些陳述式能夠設定 中的其他清查資料表。Athena.CREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_AWSComponent ( `ResourceId` string, `Name` string, `ApplicationType` string, `Publisher` string, `Version` string, `InstalledTime` string, `Architecture` string, `URL` string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://
DOC-EXAMPLE-BUCKET
/bucket-prefix
/AWS:AWSComponent/'MSCK REPAIR TABLE ssminventory.AWS_AWSComponent
CREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_WindowsUpdate ( `ResourceId` string, `HotFixId` string, `Description` string, `InstalledTime` string, `InstalledBy` string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://
DOC-EXAMPLE-BUCKET
/bucket-prefix
/AWS:WindowsUpdate/'MSCK REPAIR TABLE ssminventory.AWS_WindowsUpdate
CREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_InstanceInformation ( `AgentType` string, `AgentVersion` string, `ComputerName` string, `IamRole` string, `InstanceId` string, `IpAddress` string, `PlatformName` string, `PlatformType` string, `PlatformVersion` string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://
DOC-EXAMPLE-BUCKET
/bucket-prefix
/AWS:InstanceInformation/'MSCK REPAIR TABLE ssminventory.AWS_InstanceInformation
CREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_Network ( `ResourceId` string, `Name` string, `SubnetMask` string, `Gateway` string, `DHCPServer` string, `DNSServer` string, `MacAddress` string, `IPV4` string, `IPV6` string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://
DOC-EXAMPLE-BUCKET
/bucket-prefix
/AWS:Network/'MSCK REPAIR TABLE ssminventory.AWS_Network
CREATE EXTERNAL TABLE IF NOT EXISTS ssminventory.AWS_PatchSummary ( `ResourceId` string, `PatchGroup` string, `BaselineId` string, `SnapshotId` string, `OwnerInformation` string, `InstalledCount` int, `InstalledOtherCount` int, `NotApplicableCount` int, `MissingCount` int, `FailedCount` int, `OperationType` string, `OperationStartTime` string, `OperationEndTime` string ) PARTITIONED BY (AccountId string, Region string, ResourceType string) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://
DOC-EXAMPLE-BUCKET
/bucket-prefix
/AWS:PatchSummary/'MSCK REPAIR TABLE ssminventory.AWS_PatchSummary
使用 中的資料 Amazon QuickSight
下節將概要說明可用來在 中建置視覺效果的連結。Amazon QuickSight.
在 中建置視覺效果Amazon QuickSight
-
登入 Amazon QuickSight
,然後登入 QuickSight 主控台。 -
移至 AWS_Application 資料表與您所建的任何其他資料表,並建立資料集。如需詳細資訊,請參閱使用 Amazon Athena 資料建立資料集.
-
聯結資料表。舉例而言,您可以聯結
instanceid
中的AWS_InstanceInformation
欄位,因為該欄位與其他庫存資料表中的resourceid
欄位相符。如需聯結資料表的詳細資訊,請參閱聯結資料表. -
建置視覺效果。如需詳細資訊,請查看使用 Amazon QuickSight Visuals。