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

設定庫存的資源資料同步

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

關於資源資料同步

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

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

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

圖 1 顯示資源資料同步如何將 Amazon EC2 和混合環境中受管節點的庫存資料,彙總至目標 Amazon S3 儲存貯體。另外,此圖表還說明了資源資料同步對多個 AWS 帳戶 與 AWS 區域 的處理方式。

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


                        Systems Manager 資源資料同步架構

如果您刪除受管節點,資源資料同步仍會保留已刪除節點的庫存檔案。不過,對於執行中的節點,當有新的檔案建立並寫入 Amazon 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) 來加密 Amazon S3 儲存貯體中的庫存資料。如需如何使用 AWS Command Line Interface (AWS CLI) 建立加密同步作業,以及如何使用 Amazon Athena 和 Amazon QuickSight 內集中資料的範例,請參閱 演練:使用資源資料同步來彙總庫存資料

開始之前

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

注意

如果該儲存貯體設定為使用 Object Lock,則 Systems Manager 庫存無法將資料新增至指定的 Amazon S3 儲存貯體。確認您為資源資料同步建立或選擇的 Amazon S3 儲存貯體未設定為使用 Amazon S3 Object Lock。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的 Amazon S3 Object Lock 如何運作

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

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

  2. 建立儲存貯體以存放您彙總的庫存資料。如需詳細資訊,請參閱 Amazon Simple Storage Service 主控台使用者指南中的建立儲存貯體。請記下儲存貯體名稱以及您建立的所在 AWS 區域。

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

  4. 複製下列儲存貯體政策並貼至政策編輯器。使用您建立的 S3 儲存貯體名稱和有效的 AWS 帳戶 ID,取代 DOC-EXAMPLE-BUCKETaccount-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/*" ],
    注意

    如需有關檢視 AWS 帳戶 ID 的資訊,請參閱《IAM 使用者指南》中的您的 Amazon Web Services 帳戶 ID 及其別名

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

    如果您為 2019 年 4 月 25 日或之後上線的 AWS 區域 建立資源資料同步,則必須在 SSMBucketDelivery 區段輸入區域專屬服務主體項目。此需求包含下列區域:

    • 亞太區域 (香港) 區域 (ap-east-1)

    • 亞太區域 (雅加達) 區域 (ap-southeast-3)

    • 非洲 (開普敦) 區域 (af-south-1)

    • 歐洲 (米蘭) 區域 (eu-south-1)

    • 歐盟 (薩拉戈薩) 區域 (eu-southeast-2)

    下列範例包含 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. 開啟位於 AWS Systems Managerhttps://console.aws.amazon.com/systems-manager/ 的 主控台。https://console.aws.amazon.com/systems-manager/

  2. 在導覽窗格中,選擇 Fleet Manager

    -或-

    如果 AWS Systems Manager 首頁先開啟,選擇選單圖示 ( ) 以開啟導覽窗格,然後在導覽窗格中,選擇 Fleet Manager

  3. Account management (帳戶管理) 選單中,選擇 Resource data sync (資源資料同步)。

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

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

  6. Bucket name (儲存貯體名稱) 欄位中,輸入您使用為資源資料同步建立和設定 Amazon S3 儲存貯體處理程序建立的 Amazon S3 儲存貯體名稱。

  7. (選用) 在 Bucket prefix (儲存貯體字首) 欄位中,輸入 Amazon S3 儲存貯體字首 (子目錄) 的名稱。

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

    注意

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

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

  10. 選擇 Create (建立)。

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


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

為 AWS Organizations 中定義的帳戶建立庫存資源資料同步

您可以將 AWS Organizations 中定義的 AWS 帳戶 庫存資料同步至中央 Amazon S3 儲存貯體。完成以下處理程序後,庫存資料便會同步到中央儲存貯體中的個別 Amazon S3 金鑰字首。每個金鑰字首都代表不同的 AWS 帳戶 ID。

開始之前

在您開始前,驗證您是否已在 AWS Organizations 中設定 AWS 帳戶。如需詳細資訊,請參閱AWS Organizations 使用者指南

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

建立中央 Amazon S3 儲存貯體

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

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

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

  2. 建立儲存貯體以存放您的彙整清查資料。如需詳細資訊,請參閱 Amazon Simple Storage Service 主控台使用者指南中的建立儲存貯體。請記下儲存貯體名稱以及您建立的所在 AWS 區域。

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

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

    或者,您也可以使用 Amazon S3 字首 (子目錄) 取代 bucket-prefix。如果您沒有建立字首,請在以下政策中,從 ARN 移除 bucket-prefix/

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SSMBucketPermissionsCheck", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::S3_bucket_name" }, { "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 日或之後上線的 AWS 區域 建立資源資料同步,則必須在 SSMBucketDeliverySSMBucketDeliveryTagging 區段輸入區域專屬服務主體項目。此需求包含下列區域:

    • 亞太區域 (香港) 區域 (ap-east-1)

    • 亞太區域 (雅加達) 區域 (ap-southeast-3)

    • 非洲 (開普敦) 區域 (af-south-1)

    • 歐洲 (米蘭) 區域 (eu-south-1)

    • 歐盟 (薩拉戈薩) 區域 (eu-southeast-2)

    下列範例包含 ssm.ap-east-1.amazonaws.com 的區域專屬服務委託人項目。

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

為 AWS Organizations 中定義的帳戶建立庫存資源資料同步

以下程序說明如何使用 AWS CLI,為 AWS Organizations 中定義的帳戶建立資源資料同步。您必須使用 AWS CLI 來執行此任務。您也必須針對 AWS Organizations 中定義的每個 AWS 區域 和 AWS 帳戶 執行此處理程序。

為 AWS Organizations (AWS CLI) 中定義的帳戶建立資源資料同步

  1. 如果您尚未安裝並設定 AWS Command Line Interface (AWS CLI),請進行相應的操作。

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

  2. 執行以下命令,以驗證您是否沒有任何其他資源資料同步。您只能有一個以組織為基礎的資源資料同步。

    aws ssm list-resource-data-sync

    如果命令傳回另一個資源資料同步,則您必須刪除該資源資料同步,或選擇無需建立新的資源資料同步。

  3. 執行以下命令來為 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 區域, for example us-east-2,DestinationDataSharing={DestinationDataSharingType=Organization}"
  4. 為每個您想要將資料同步至中央 Amazon S3 儲存貯體的 AWS 區域 和 AWS 帳戶 重複步驟 2 和 3。