AWS Service Catalog 是一項協助企業進行 「IT 服務管理與治理」 的服務。
一句話總結:它就像是企業內部的「IT 自動販賣機」。管理員先上架好符合公司規定的「商品 (AWS 架構模板)」,然後讓開發人員自己去點選購買(部署),既能滿足開發者的速度需求,又能確保安全合規。
這是解決「開發者想要權限 (Agility)」與「管理員想要控管 (Governance)」之間矛盾的最佳工具。1. 主要功能詳解 (Key Features)
A. 集中管理與標準化 (Centralized Management)
- 功能:管理員創建標準化的 CloudFormation 範本,並將其發佈為 Product。
- 好處:防止員工隨意去 Console 開那種「不符合資安規定」的機器(例如忘記關 Port 22 的 EC2)。所有人都只能使用經過審核的模板。
B. 啟動限制 (Launch Constraints) —— 考試/實務最重要的功能!
這是 Service Catalog 最強大的地方,解決了權限問題。
- 問題:你不想給開發人員 AdministratorAccess 或 AmazonEC2FullAccess,因為怕他們亂搞。但不給權限,他們又不能開機器工作。
- 解法:你建立一個 IAM Role (Service Role),給予這個 Role 建立 EC2 的權限。在 Service Catalog 中設定 Launch Constraint,指定該 Product 使用這個 Role 來執行。結果:開發人員本身不需要有 EC2 權限,他只要有「使用 Service Catalog」的權限。當他按下啟動時,Service Catalog 會**「借用」**那個 Role 的權限幫他把機器開起來。結論:這實現了 「最小權限原則 (Least Privilege)」,同時賦予使用者自助服務的能力。
C. 強制標籤 (TagOption Library)
- 功能:你可以規定在啟動某個 Product 時,必須選擇特定的 Tag(例如:CostCenter, Department)。
- 好處:確保所有開出來的資源都有正確的標籤,方便後續的成本分攤與管理。如果沒選標籤,就不讓他啟動。
D. 版本控制 (Versioning)
- 功能:當你想升級架構(例如從 MySQL 5.7 升級到 8.0)時,你不需要刪除舊產品。
- 運作:你發布一個 Product 的 v2.0 版本。使用者可以看到新版本並選擇更新,而舊的使用者依然可以繼續運作。
E. 用戶自助服務 (Self-Service Portal)
- 功能:提供一個簡化的介面給終端使用者。
- 體驗:使用者不需要懂 CloudFormation 的複雜語法,也不用去複雜的 AWS Console 找按鈕。他們只需要看到一個列表,點擊「Launch」,輸入幾個參數(如機器名稱),就完成了。
F. 預算整合 (Budget Integration)
- 功能:可以與 AWS Budgets 整合。
- 效果:使用者在啟動服務前,可以看到這個服務預計會花多少錢,並追蹤是否超出預算。
2. 使用場景 (Use Cases)
- 合規落地:公司規定所有 S3 Bucket 都必須開啟加密。管理員做一個「已加密 S3」的 Product,強迫大家只能用這個來開 Bucket。
- 新員工入職:新來的開發者需要開發環境。叫他去 Service Catalog 點選「開發環境包」,一鍵部署 IDE、EC2、RDS,五分鐘開工。
- 多帳號部署:透過與 AWS Organizations 整合,可以在一個管理帳號定義 Portfolio,然後分享給組織內的所有子帳號使用。
3. 考試關鍵字 (Keywords)
- Self-service portal (自助服務入口)。
- Governance and compliance (治理與合規)。
- Standardized products / blueprints (標準化產品/藍圖)。
- CloudFormation templates (底層技術)。
- Launch Constraints / Service Role (讓無權限的使用者也能部署資源)。
- TagOption (強制標籤)。
總結
CloudFormation 是用來「寫程式碼蓋房子」的工具;
Service Catalog 是把這些蓋好的房子變成「目錄上的商品」,讓不懂蓋房子的人也能安全地買房子。







