本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在多個AWS帳戶和AWS區域中管理 AWS Service Catalog 產品
由 Ram Kandaswamy 建立 (AWS)
環境:生產 | 技術:管理與治理;基礎設施;現代化 | 工作負載:所有其他工作負載 |
AWS 服務:AWSService Catalog; AWS CloudFormation |
Summary
Amazon Web Services (AWS) Service Catalog 簡化並加速以程式碼 IaC) 範本的形式管理和分發基礎設施。您可以使用 AWS CloudFormation 範本來定義產品所需的AWS資源集合 (堆疊 )。AWS CloudFormation StackSets 可讓您透過單一操作,跨多個帳戶和AWS區域建立、更新或刪除堆疊,藉此擴展此功能。
AWS Service Catalog 管理員使用開發人員編寫的 CloudFormation 範本來建立產品,然後發佈它們。然後,這些產品會與產品組合相關聯,並套用限制來管理。若要讓其他AWS帳戶或組織單位 (OUs) 中的使用者使用產品,您通常會與他們共用您的產品組合。此模式描述管理以 為基礎的 AWS Service Catalog 產品方案的替代方法AWS CloudFormation StackSets。與其共用產品組合,您可以使用堆疊集限制來設定產品可部署和使用的 AWS 區域和帳戶。透過使用此方法,您可以在多個帳戶、 OUs和 AWS區域中佈建 AWS Service Catalog 產品,並從中央位置管理它們,同時滿足您的管理需求。
此方法的優點:
產品是從主要帳戶佈建和管理,不會與其他帳戶共用。
此方法提供以特定產品為基礎的所有佈建產品 (堆疊) 的合併檢視。
使用 AWS Service Management Connector 進行組態比較簡單,因為它只鎖定一個帳戶。
查詢和使用 AWS Service Catalog 中的產品更容易。
先決條件和限制
先決條件
AWS CloudFormation IaC 和版本控制範本
多帳戶設定AWS和服務目錄,用於佈建和管理AWS資源
限制
此方法使用 AWS CloudFormation StackSets,而 的限制 StackSets 適用:
StackSets 不支援透過巨集部署 CloudFormation 範本。如果您使用巨集預先處理範本,您將無法使用 StackSets型部署。
StackSets 提供將堆疊與堆疊集取消關聯的能力,因此您可以鎖定特定堆疊來修正問題。不過,已解除關聯的堆疊無法與堆疊集重新關聯。
AWS Service Catalog 會自動產生 StackSet 名稱。目前不支援自訂。
架構
目標架構
使用者建立AWS CloudFormation 範本,以 JSON或 YAML 格式佈建AWS資源。
CloudFormation 範本會在 AWS Service Catalog 中建立產品,並將其新增至產品組合。
使用者會建立佈建的產品,並在目標帳戶中建立 CloudFormation 堆疊。
每個堆疊都會佈建 CloudFormation 範本中指定的資源。
工具
AWS 服務
AWS CloudFormation 可協助您設定AWS資源、快速且一致地佈建資源,並在其整個生命週期內跨AWS帳戶和區域進行管理。
AWS 命令列介面 (AWS CLI) 是一種開放原始碼工具,可協助您透過命令列 Shell 中的命令與 AWS服務互動。
AWS Identity and Access Management (IAM) 可協助您安全地管理 AWS 資源的存取權,方法是控制誰經過身分驗證並獲授權使用。
AWS Service Catalog 可協助您集中管理針對 核准的 IT 服務目錄AWS。最終使用者可在機構所設的限制範圍內,迅速地只部署自己需要且經核准的 IT 服務。
史詩
任務 | 描述 | 所需的技能 |
---|---|---|
建立組合。 | 產品組合是容器,其中包含一或多個根據特定條件分組在一起的產品。將產品組合用於您的 產品,可協助您將常見的限制套用至您的 產品組合。 若要建立產品組合,請遵循 AWS Service Catalog 文件 中的指示。如果您使用的是 AWS CLI,以下是範例命令:
如需詳細資訊,請參閱 AWS CLI 文件 | AWS 服務目錄、 IAM |
建立 CloudFormation 範本。 | 建立描述 資源的 CloudFormation 範本。如適用,應參數化資源屬性值。 | AWS CloudFormation, JSON/YAML |
建立具有版本資訊的產品。 | 當您在 AWS Service Catalog 中發佈 CloudFormation 範本時,範本會變成產品。提供選用版本詳細資訊參數的值,例如版本標題和描述;這將有助於稍後查詢產品。 若要建立產品,請遵循 AWS Service Catalog 文件 中的指示。如果您使用的是 AWS CLI,範例命令為:
其中 | AWS Service Catalog |
套用限制條件。 | 將堆疊集限制套用至產品組合,以設定產品部署選項,例如多個AWS帳戶、區域和許可。如需指示,請參閱 AWS Service Catalog 文件 。 | AWS Service Catalog |
新增 許可。 | 為使用者提供許可,讓他們可以啟動產品組合中的產品。如需主控台說明,請參閱 AWS Service Catalog 文件 。如果您使用的是 AWS CLI,以下是範例命令:
如需詳細資訊,請參閱 AWS CLI 文件 | AWS 服務目錄、 IAM |
佈建 產品。 | 佈建的產品是產品的資源執行個體。根據 CloudFormation 範本佈建產品會啟動 CloudFormation 堆疊及其基礎資源。 根據堆疊集限制,以適用的AWS區域和帳戶為目標來佈建產品。在 AWS 中CLI,以下是範例命令:
如需詳細資訊,請參閱 AWS CLI 文件 | AWS Service Catalog |
相關資源
參考
教學課程和影片
其他資訊
當您使用 create-product
命令時, cli-input-json
參數會指向指定資訊的檔案,例如產品擁有者、支援電子郵件和 CloudFormation 範本詳細資訊。以下是此類檔案的範例:
{ "Owner": "Test admin", "SupportDescription": "Testing", "Name": "SNS", "SupportEmail": "example@example.com", "ProductType": "CLOUD_FORMATION_TEMPLATE", "AcceptLanguage": "en", "ProvisioningArtifactParameters": { "Description": "SNS product", "DisableTemplateValidation": true, "Info": { "LoadTemplateFromURL": "<url>" }, "Name": "version 1" }