設定庫存的資源資料同步 - AWS Systems Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定庫存的資源資料同步

本主題說明如何設定 Systems Manager 清查的資源資料同步。如需 Systems Manager Explorer 資源資料同步的相關資訊,請參閱 設定 Systems Manager Explorer 以顯示來自多個帳戶和區域的資料.

關於資源資料同步

您可以使用 Systems Manager 資源資料同步,將從所有受管執行個體收集到的清查資料傳送至單一 Amazon Simple Storage Service (Amazon S3) 儲存貯體。然後,資源資料同步會在收集新的清查資料時自動更新集中的資料。當所有清查資料存放至目標 S3 儲存貯體後,您就能利用 Amazon Athena 和 Amazon QuickSight 等服務來查詢及分析彙總的資料。

例如,假設您將清查設定成在 150 個受管執行個體機群上,收集正在執行作業系統 (OS) 和應用程式的相關資料。這些執行個體有些位於混合式資料中心,而其他執行個體則在多個 Amazon Elastic Compute Cloud 區域的 Amazon EC2 (AWS) 中執行。如果您設定的資源資料同步,則您需要手動收集每個執行個體收集的清查資料,或您必須建立指令碼來收集此資訊。接著,您還要將資料傳輸至應用程式,才能執行查詢和分析作業。

透過資源資料同步,您只要執行一次性操作,即可同步來自所有受管執行個體的任何清查資料。成功建立同步後,Systems Manager 會建立所有清查資料的基準,並將存放至目標 S3 儲存貯體。收集到新的清查資料時,Systems Manager 會自動更新 S3 儲存貯體中的資料。如此一來,您就能利用快速且具成本效益的方式,將資料傳輸至 Amazon Athena 和 Amazon QuickSight.

圖 1 顯示資源資料同步如何將 Amazon EC2 和混合環境中受管執行個體的清查資料,彙總至目標 S3 儲存貯體。此圖表也顯示資源資料同步如何與多個 AWS 帳號和 AWS 區域搭配使用。

圖 1:與多個 AWS 帳號和 AWS 區域進行資源資料同步


                    Systems Manager 資源資料同步架構

如果您刪除受管執行個體,資源資料同步仍會保留已刪除執行個體的清查檔案。不過,對於執行中的執行個體,當有新的檔案建立並寫入 S3 儲存貯體時,資源資料同步會自動覆寫舊的清查檔案。如果您要長期追蹤庫存變化,則可利用 AWS Config 服務來追蹤 SSM:ManagedInstanceInventory 資源類型。如需詳細資訊,請參閱 AWS Config 入門.

使用 Amazon S3 和 AWS Systems Manager 主控台,透過本節中的程序來建立清查的資源資料同步。除此之外,您也能透過 AWS CloudFormation 建立或刪除資源資料同步。若要使用 AWS CloudFormation,請將 AWS::SSM::ResourceDataSync 資源新增至 AWS CloudFormation 範本。如需相關資訊,請參閱下列任一文件資源:

注意

您可以利用 AWS Key Management Service (AWS KMS) 來加密 S3 儲存貯體中的清查資料。如需如何使用 AWS Command Line Interface (AWS CLI) 來建立加密同步以及如何使用 Amazon Athena 和 Amazon QuickSight 中的集中式資料,請前往 演練:使用資源資料同步來彙總清查資料

開始之前

建立資源資料同步前,請使用以下程序建立中央 S3 儲存貯體,以存放彙總的清查資料。程序會說明如何指派儲存貯體政策,讓 Systems Manager 將清查資料寫入多個帳戶的儲存貯體。如果您要使用已有的 S3 儲存貯體來彙總資源資料同步的清查資料,則必須在以下程序中設定儲存貯體來使用政策。

建立和設定資源資料同步的 S3 儲存貯體

  1. https://console.aws.amazon.com/s3/ 開啟 Amazon S3 主控台。

  2. 建立儲存貯體以存放您彙總的庫存資料。如需詳細資訊,請參閱https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html中的「Amazon Simple Storage Service 入門指南建立儲存貯體. 請記下儲存貯體名稱以及您建立的所在 AWS 區域。

  3. 選擇 Permissions (許可) 索引標籤,然後選擇 Bucket Policy (儲存貯體政策).

  4. 複製下列儲存貯體政策並貼至政策編輯器。取代 DOC-EXAMPLE-BUCKETaccount-id 使用您建立的 S3 儲存貯體的名稱和有效的 AWS 帳號 ID。

    若要讓多個 AWS 帳號將清查資料傳送至中央 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/*" ],

    或者,取代 bucket-prefix 取代為 Amazon S3 字首的名稱 (子系)。如果您未建立字首,請移除 bucket-prefix/ 來自以下政策中 ARN 的 。

    注意

    如需檢視您 AWS 帳號 ID 的相關資訊,請前往 中的 Your AWS Account ID 及其 Alias。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 日上線。如果您建立自亞太區域 (香港) 區域 (ap-east-1) 以後開始的 AWS 區域的資源資料同步,您必須在 SSMBucketDelivery 區段中輸入區域特定的服務主體項目。以下範例包含 ssm.ap-east-1.amazonaws.com 的區域特定服務主體項目。

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

建立庫存的資源資料同步

遵循以下程序,使用 Systems Manager 主控台建立 Systems Manager 清查的資源資料同步。如需如何使用 AWS CLI 建立資源資料同步的資訊,請參閱 演練:使用 CLI 將受管執行個體設定為啟用清查.

建立資源資料同步

  1. https://console.aws.amazon.com/systems-manager/,開啟 AWS Systems Manager 主控台。

  2. Account management (帳號管理) 功能表中,選擇 Resource data sync (資源資料同步)

  3. 選擇 Create resource data sync (建立資源資料同步).

  4. Sync name (同步名稱) 欄位中,輸入同步組態的名稱。

  5. Bucket name (儲存貯體名稱) 欄位中,輸入您在此程序開始時建立的 Amazon S3 儲存貯體名稱。

  6. (選用) 在 Bucket prefix (儲存貯體字首) 欄位中,輸入 S3 儲存貯體字首的名稱 (子模型)。

  7. 如果您建立的 S3 儲存貯體位於目前的 區域,請在 Bucket region (儲存貯體區域) 欄位中,選擇 This region (此區域)AWS。如果儲存貯體位於不同的 AWS 區域,請選擇 Another region (其他區域),然後輸入區域的名稱。

    注意

    如果同步與目標 S3 儲存貯體位於不同區域,您可能需要支付資料傳輸費用。如需詳細資訊,請參閱 Amazon S3 定價.

  8. (選用) 在 KMS Key ARN (KMS 金鑰 ARN) 欄位中,輸入或貼上 KMS 金鑰 ARN,其可用來加密 Amazon S3. 中的庫存資料。

  9. 選擇 Create. (建立)。

若要同步來自多個 AWS 區域的庫存資料,您必須在每個區域中建立資源資料同步。在您要收集清查資料傳送至中央 S3 儲存貯體的每個 AWS 區域中,重複此程序。當您在每個區域建立同步時,請在 Amazon S3Bucket name (儲存貯體名稱) 欄位中指定中央 儲存貯體。然後,使用 Bucket region (儲存貯體區域) 選項選擇您建立中央 Amazon S3 儲存貯體的區域,如下列螢幕擷取畫面所示。下次執行關聯以收集清查資料時,Systems Manager 便會將資料存放至中央 S3 儲存貯體。


                    來自多個 Systems Manager 區域的 AWS 資源資料同步

針對 AWS Organizations 中定義的帳號建立庫存資源資料同步

您可以將 AWS 中定義之 AWS Organizations 的清查資料同步至中央 Amazon S3 儲存貯體。在您完成以下程序後,清查資料會同步至中央儲存貯體中的 各個 Amazon S3 金鑰前綴。每個金鑰前綴代表不同的 AWS 帳號 ID。

開始之前

開始之前,請確認您已在 AWS 中設定與設定 AWS Organizations。如需詳細資訊,請前往 中的 AWS Organizations 使用者指南。

此外,請注意,您必須為每個 AWS 區域和 AWS Organizations 中定義的 ,建立以組織為基礎的資源資料同步。

建立中央 S3 儲存貯體

使用下列程序來建立中央 S3 儲存貯體,以存放彙總的清查資料。程序會說明如何指派儲存貯體政策,讓 Systems Manager 將清查資料寫入您 AWS Organizations 帳戶 ID 中的儲存貯體。如果您要使用已有的 S3 儲存貯體來彙總資源資料同步的清查資料,則必須在以下程序中設定儲存貯體來使用政策。

為 中定義的多個帳戶建立及設定資源資料同步的 S3 儲存貯體AWS Organizations

  1. https://console.aws.amazon.com/s3/ 開啟 Amazon S3 主控台。

  2. 建立儲存貯體以存放您的彙整清查資料。如需詳細資訊,請參閱https://docs.aws.amazon.com/AmazonS3/latest/gsg/CreatingABucket.html中的「Amazon Simple Storage Service 入門指南建立儲存貯體. 請記下儲存貯體名稱以及您建立的所在 AWS 區域。

  3. 選擇 Permissions (許可) 索引標籤,然後選擇 Bucket Policy (儲存貯體政策).

  4. 複製下列儲存貯體政策並貼至政策編輯器。取代 DOC-EXAMPLE-BUCKETorganization-id 使用您建立的 Amazon S3 儲存貯體名稱和有效的 AWS Organizations 帳號 ID。

    或者,取代 bucket-prefix 取代為 Amazon S3 字首的名稱 (子系)。如果您未建立字首,請移除 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=*/*" ], "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 日上線。如果您建立自亞太區域 (香港) 區域 (ap-east-1) 以後開始的 AWS 區域的資源資料同步,您必須在 SSMBucketDelivery 區段中輸入區域特定的服務主體項目。以下範例包含 ssm.ap-east-1.amazonaws.com 的區域特定服務主體項目。

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

針對 AWS Organizations 中定義的帳號建立庫存資源資料同步

下列程序描述如何使用 AWS CLI 來建立 AWS Organizations 中定義之帳號的資源資料同步。您必須使用 AWS CLI 來執行此任務。您也必須為每個 AWS 區域和 AWS Organizations 中定義的帳號執行此程序。

針對 AWS Organizations (AWS CLI) 中定義的帳號建立資源資料同步

  1. 如果您尚未安裝並設定 AWS CLI,請進行相應的作業。

    如需資訊,請參閱 安裝或升級 AWS 命令列工具

  2. 執行以下命令,為 AWS Organizations 中定義的帳號建立資源資料同步。針對 DOC-EXAMPLE-BUCKET,指定您先前在此主題中建立的 Amazon S3 儲存貯體名稱。如果您為儲存貯體建立了字首 (子索引),請為 指定此資訊 prefix-name.

    aws ssm create-resource-data-sync --sync-name name --s3-destination "BucketName=DOC-EXAMPLE-BUCKET,Prefix=prefix-name,SyncFormat=JsonSerDe,Region=AWS Region, for example us-east-2,DestinationDataSharing={DestinationDataSharingType=Organization}"
  3. 針對每個 AWS 區域重複步驟 2,並計算要將資料同步到中央 Amazon S3 儲存貯體的位置。