跨不同AWS帳戶和AWS區域複製 AWS Service Catalog 產品 - AWS 方案指引

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

跨不同AWS帳戶和AWS區域複製 AWS Service Catalog 產品

由 Sachin Vighe (AWS) 和 Santosh Kale (AWS) 建立

環境:生產

技術:管理和治理;無伺服器

工作負載:所有其他工作負載

AWS 服務:AWSService Catalog;AWSLambda

Summary

AWS Service Catalog 是一項區域性服務,這表示 AWS Service Catalog 產品組合和產品只會在建立它們的AWS區域中顯示。如果您在新的 區域中設定 AWS Service Catalog 中樞,則必須重新建立現有的產品,這可能會耗時。

此模式的方法透過描述如何將來源AWS帳戶或區域中的 AWS Service Catalog 中樞中的產品複製到目的地帳戶或區域中的新中樞,有助於簡化此程序。如需 AWS Service Catalog 中樞和輪輻模型的詳細資訊,請參閱 AWS Service Catalog 中樞和輪輻模型:如何將 AWS Service Catalog 的部署和管理自動化到管理和治理部落格上的許多帳戶。 AWS 

此模式也提供將 AWS Service Catalog 產品複製到帳戶或其他區域所需的個別程式碼套件。透過使用此模式,您的組織可以節省時間、在新的 AWS Service Catalog 中樞中提供現有和先前的產品版本、將手動錯誤的風險降至最低,以及將方法擴展到多個帳戶或區域。

注意:此模式的 Epics 區段提供兩種複製 產品的選項。您可以使用選項 1 跨帳戶複製產品,或選擇選項 2 跨區域複製產品。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶。

  • 來源帳戶或區域中的現有 AWS Service Catalog 產品。

  • 目的地帳戶或區域中現有的 AWS Service Catalog 中樞。

  • 如果您想要跨帳戶複製產品,您必須共用,然後將包含產品的 AWS Service Catalog 產品組合匯入目的地帳戶。如需詳細資訊,請參閱 AWS Service Catalog 文件中的共用和匯入產品組合

限制

  • AWS 您要跨區域或帳戶複製的服務目錄產品不能屬於多個產品組合。

架構

下圖顯示 AWS Service Catalog 產品從來源帳戶複製到目的地帳戶。

下圖顯示 AWS Service Catalog 產品從來源區域複製到目的地區域。

區域 1 中的跨帳戶角色、區域 2 中的 Lambda 執行角色和 Lambda 函數。

使用區域 2 中的 Lambda scProductCopy 函數複製的產品。

技術堆疊

  • Amazon CloudWatch

  • AWS Identity and Access Management (IAM)

  • AWS Lambda

  • AWS Service Catalog

自動化和擴展

您可以使用 Lambda 函數來擴展此模式的方法,該函數可根據收到的請求數量或您需要複製的 AWS Service Catalog 產品數量進行擴展。如需詳細資訊,請參閱 Lambda 文件中的 Lambda 函數擴展。 AWS

工具

  • AWS Command Line Interface (AWS CLI) 是一種開放原始碼工具,可協助您透過命令列 Shell 中的命令與 AWS服務互動。

  • AWS Identity and Access Management (IAM) 透過控制誰經過身分驗證並獲授權使用,協助您安全地管理對AWS資源的存取。

  • AWS Lambda 是一種運算服務,可協助您執行程式碼,而不需要佈建或管理伺服器。它只會在需要時執行程式碼並自動擴展,因此您只需支付您使用的運算時間。

  • AWS Service Catalog 可協助您集中管理 核准的 IT 服務目錄AWS。最終使用者可在機構所設的限制範圍內,迅速地只部署自己需要且經核准的 IT 服務。

Code

您可以使用  cross-account-copy套件 (已連接) 跨帳戶複製 AWS Service Catalog 產品,或使用 cross-region-copy套件 (已連接) 跨區域複製產品。

cross-account-copy 套件包含下列檔案:

  • copyconf.properties – 包含跨帳戶複製產品的區域和AWS帳戶 ID 參數的組態檔案。

  • scProductCopyLambda.py – 用於跨帳戶複製產品的 Python 函數。

  • createDestAccountRole.sh – 在目的地帳戶中建立IAM角色的指令碼。

  • createSrcAccountRole.sh – 在來源帳戶中建立IAM角色的指令碼。

  • copyProduct.sh – 用來建立和叫用 Lambda 函數,以跨帳戶複製產品的指令碼。

cross-region-copy 套件包含下列檔案:

  • copyconf.properties – 包含跨區域複製產品的區域和AWS帳戶 ID 參數的組態檔案。

  • scProductCopyLambda.py – 用於跨區域複製產品的 Python 函數。

  • copyProduct.sh – 用來建立IAM角色,以及建立和叫用 Lambda 函數,以跨區域複製產品的指令碼。

史詩

任務描述所需的技能

更新組態檔案。

  1. cross-account-copy套件 (已連接) 下載至本機機器。

  2. 使用下列值更新copyconf.properties組態檔案:

    • srcRegion – 提供包含產品的來源區域。

    • destRegion – 提供產品的目的地區域。

    • sourceAccountId – 提供來源AWS帳戶的帳戶 ID。

    • destAccountId – 提供目的地AWS帳戶的帳戶 ID。

AWS 管理員、AWS系統管理員、雲端管理員

在目的地帳戶中設定 AWSCLI的憑證。

執行 aws configure命令並提供下列值,以設定憑證,以存取AWSCLI目的地帳戶中的 :

$aws configure AWS Access Key ID [None]: <your_access_key_id> AWS Secret Access Key [None]: <your_secret_access_key> Default region name [None]: Region Default output format [None]:

如需詳細資訊,請參閱 AWS命令列介面文件中的組態基本知識。 

AWS 管理員、AWS系統管理員、雲端管理員

在來源帳戶中設定 AWSCLI的憑證。

透過執行 aws configure命令並提供下列值,設定您的憑證以存取AWSCLI來源帳戶中的 : 

$aws configure AWS Access Key ID [None]: <your_access_key_id> AWS Secret Access Key [None]: <your_secret_access_key> Default region name [None]: Region Default output format [None]:

如需詳細資訊,請參閱 AWS命令列介面文件中的組態基本知識。 

AWS 管理員、AWS系統管理員、雲端管理員

在目的地帳戶中建立 Lambda 執行角色。

在目的地帳戶中執行createDestAccountRole.sh 指令碼。指令碼會實作下列動作:

  • 在目的地帳戶中建立 Lambda 執行角色

  • 建立和連接 Lambda 執行角色IAM的政策 

AWS 管理員、AWS系統管理員、雲端管理員

在來源帳戶中建立跨帳戶IAM角色。

在來源帳戶中執行createSrcAccountRole.sh 指令碼。指令碼會實作下列動作:

  • 在來源帳戶中建立跨帳戶IAM角色,由目的地帳戶中的 Lambda 執行角色擔任以複製產品

  • 為來源帳戶中的跨帳戶角色建立和連接IAM政策

AWS 管理員、AWS系統管理員、雲端管理員

在目的地帳戶中執行 copyProduct 指令碼。

在目的地帳戶中執行copyProduct.sh 指令碼。指令碼會實作下列動作:

  • 建立並叫用 Lambda 函數,將產品從來源帳戶複製到目的地帳戶

AWS 管理員、AWS系統管理員、雲端管理員
任務描述所需的技能

更新組態檔案。

  1. cross-region-copy套件 (已連接) 下載至本機機器。

  2. 使用下列值更新copyconf.properties組態檔案:

    • srcRegion – 提供包含產品的來源區域。

    • destRegion – 提供產品的目的地區域。

    • accountId – 提供AWS您的帳戶 ID。

AWS 系統管理員、雲端管理員、AWS管理員

設定 的憑證AWSCLI。

透過執行 aws configure命令並提供下列值,設定您的憑證,以便在AWSCLI環境中存取 :

$aws configure AWS Access Key ID [None]: <your_access_key_id> AWS Secret Access Key [None]: <your_secret_access_key> Default region name [None]: Region Default output format [None]:

如需詳細資訊,請參閱 AWS命令列介面文件中的組態基本知識。 

AWS 管理員、AWS系統管理員、雲端管理員

執行 copyProduct 指令碼。

在目的地區域中執行copyProduct.sh指令碼。指令碼會實作下列動作:

  • 建立 Lambda 執行角色

  • 建立和連接 Lambda 執行角色IAM的政策

  • 建立並叫用 Lambda 函數,將產品從來源區域複製到目的地區域

AWS 管理員、AWS系統管理員、雲端管理員

相關資源

附件

若要存取與本文件相關聯的其他內容,請解壓縮下列檔案: attachment.zip