

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

# 管理目錄
<a name="catalogs"></a>

AWS Service Catalog 提供從管理員主控台管理產品組合、產品和限制條件的介面。

**注意**  
若要執行本節的任何任務，您必須具有 AWS Service Catalog的管理員權限。如需詳細資訊，請參閱[中的 Identity and Access Management AWS Service Catalog](controlling_access.md)。

**Topics**
+ [管理產品組合](catalogs_portfolios.md)
+ [管理產品](catalogs_products.md)
+ [使用 AWS Service Catalog 限制條件](constraints.md)
+ [AWS Service Catalog 服務動作](using-service-actions.md)
+ [將 AWS Marketplace 產品新增至您的產品組合](catalogs_marketplace-products.md)
+ [使用 CloudFormation StackSets](using-stacksets.md)
+ [管理預算](catalogs_budgets.md)

# 管理產品組合
<a name="catalogs_portfolios"></a>

您可以在管理員主控台的產品組合頁面上 AWS Service Catalog 建立、檢視和更新**產品組合**。

**Topics**
+ [建立、檢視和刪除產品組合](#portfoliomgmt-menu)
+ [檢視產品組合詳細資訊](#portfoliomgmt-portdetails)
+ [建立和刪除產品組合](portfoliomgmt-create.md)
+ [新增 產品](portfoliomgmt-products.md)
+ [新增限制條件](portfoliomgmt-constraints.md)
+ [授予存取權限給使用者](catalogs_portfolios_users.md)
+ [共用產品組合](catalogs_portfolios_sharing_how-to-share.md)
+ [共用和匯入產品組合](catalogs_portfolios_sharing.md)

## 建立、檢視和刪除產品組合
<a name="portfoliomgmt-menu"></a>

**產品組合**頁面會顯示您在目前區域中建立的產品組合清單。使用此頁面來建立新產品組合、檢視產品組合詳細資訊或從帳戶中刪除產品組合。

**檢視**產品組合**頁面**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1. 必要時選取不同的區域。

1. 如果您是新手 AWS Service Catalog，您會看到 AWS Service Catalog 開始頁面。選擇 [**入門**] 以建立產品組合。依照指示建立您的第一個產品組合，然後前往**產品組合**頁面。

使用 時 AWS Service Catalog，您可以隨時返回**產品組合**頁面；在導覽列中選擇**服務目錄**，然後選擇**產品組合**。

## 檢視產品組合詳細資訊
<a name="portfoliomgmt-portdetails"></a>

在 AWS Service Catalog 管理員主控台中，**產品組合詳細資訊**頁面會列出產品組合的設定。使用此頁面以管理產品組合中的產品、授予使用者產品的存取權與套用 TagOptions 及限制。

**檢視 **Portfolio details (產品組合詳細資訊)** 頁面**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1. 選擇您要管理的產品組合。

# 建立和刪除產品組合
<a name="portfoliomgmt-create"></a>

使用**產品組合**頁面來建立和刪除產品組合。

**新建產品組合**

1. 在左側導覽功能表中，選擇**產品組合**。

1. 選擇**建立產品組合**。

1. 在**建立產品組合**頁面上，輸入請求的資訊。

1. 選擇 **Create**. AWS Service Catalog created 產品組合並顯示產品組合詳細資訊。

**刪除產品組合**
**注意**  
您只能刪除*本機*產品組合。您可以移除*匯入* （共用） 的產品組合，但無法刪除匯入的產品組合。

您必須先移除其所有產品、限制條件、群組、角色、使用者、共用和 TagOptions，才能刪除產品組合。若要這樣做，請開啟產品組合以顯示**產品組合詳細資訊**。然後選擇要移除的標籤。
**注意**  
若要避免錯誤，請先移除產品組合的限制條件，*再*移除任何產品。

1. 在左側導覽功能表中，選擇**產品組合**。

1. 選取您要刪除的產品組合。

1. 選擇 **刪除**。您只能刪除*本機*產品組合。如果您嘗試刪除*匯入* （共用） 的產品組合，**則**動作功能表無法使用。

1. 在確認視窗中，選擇 **Delete (刪除)**。

# 新增 產品
<a name="portfoliomgmt-products"></a>

 您可以將新產品直接上傳至現有產品組合，或將目錄中的現有產品與產品組合建立關聯，以將產品新增至產品組合。

**注意**  
 建立 AWS Service Catalog 產品時，您可以上傳 CloudFormation 範本或 Terraform 組態檔案。 CloudFormation 範本存放在 Amazon Simple Storage Service (Amazon S3) 儲存貯體中，儲存貯體名稱開頭為 "***cf-templates-***"。在佈建產品時，您還必須具有從其他儲存貯體擷取物件的許可。如需詳細資訊，請參閱[建立 產品](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/productmgmt-cloudresource.html#productmgmt-cloudresource-troubleshooting)。

## 新增新產品
<a name="portfoliomgmt-products-new"></a>

您可以從**產品組合詳細資訊**頁面直接新增新產品。當您從此頁面建立產品時， 會將其 AWS Service Catalog 新增至目前選取的產品組合。

**若要新增一個新產品**

1.  導覽至**產品組合**頁面，然後選擇您要新增產品的產品組合名稱。

1. 在**產品組合詳細資訊**頁面上，展開**產品**區段，然後選擇**上傳新產品**。

1. 請於 **Enter product details (輸入產品詳細資訊)** 輸入以下資訊：
   + **Product name** (產品名稱) – 即產品名稱。
   + **產品描述 **（選用） – 產品描述。此描述會顯示在產品清單中，以協助您選擇正確的產品。
   + **描述** – 完整描述。此描述會顯示在產品清單中，以協助您選擇正確的產品。
   + **擁有者或經銷商** – 擁有者的名稱或電子郵件地址。經銷商的聯絡資訊為選用。
   + **Vendor** （選用） – 應用程式發佈者的名稱。此欄位可讓您排序產品清單，以更輕鬆地尋找產品。

1. 在 **Version details** (版本詳細資訊) 頁面上，輸入以下資訊：
   + **選擇範本** – 對於 CloudFormation 產品，請選擇您自己的範本檔案、本機磁碟機的 CloudFormation 範本，或指向存放在 Amazon S3 中的範本的 URL、現有的 CloudFormation 堆疊 ARN 範本，或存放在外部儲存庫中的範本檔案。

     對於 Teraform 產品，請選擇您自己的範本檔案、本機磁碟機中的 tar.gz 組態檔案，或指向存放在 Amazon S3 中的範本的 URL，或儲存在外部儲存庫中的 tar.gz 組態檔案。
   + **版本名稱** （選用） – 產品版本的名稱 （例如 "v1"、"v2beta")。不可使用空格。
   + **Description** (描述) (可選) – 產品版本的描述，包括此版本與先前版本的差異。

1. 請於 **Enter support details (輸入支援詳細資訊)** 輸入以下資訊：
   + **Email contact** (電子郵件聯絡人 [選擇性]) – 回報產品問題的電子郵件地址。
   + **支援連結** （選用） – 網站 URL，使用者可以在此找到支援資訊或檔案票證。URL 必須以 `http://`或 `https://` 開頭。管理員負責維護支援資訊的準確性和存取權。
   + **支援描述** （選用） – 說明您應該如何使用**電子郵件聯絡人**和**支援連結**。

1. 選擇**建立產品。**

## 新增現有產品
<a name="portfoliomgmt-products-existing"></a>

您可以從三個位置將現有產品新增至產品組合：**產品組合**清單、**產品組合詳細資訊**頁面或**產品清單**頁面。

**若要新增現有產品到產品組合中**

1. 導覽至**產品組合**頁面。

1. 選擇產品組合。然後選擇**動作** - **將產品新增至產品組合**。

1.  選擇產品，然後選擇**將產品新增至產品組合**。

## 從產品組合中移除產品
<a name="portfoliomgmt-products-remove"></a>

當您不想再使用產品時，請將其從產品組合中移除。產品仍可從產品頁面在您的目錄中取得，而且您仍然可以將**產品**新增至其他產品組合。您可以一次從產品組合移除多個產品。

**若要從產品組合中移除產品**

1. 導覽至**產品組合**頁面，然後選擇包含產品的產品組合。**產品組合詳細資訊**頁面隨即開啟。

1. 展開**產品**區段。

1. 選擇一或多個產品，然後選擇**移除**。

1. 確認您的選擇。

# 新增限制條件
<a name="portfoliomgmt-constraints"></a>

您應該新增限制條件，以控制使用者與 產品的互動方式。如需 AWS Service Catalog 支援限制類型的詳細資訊，請參閱 [使用 AWS Service Catalog 限制條件](constraints.md)。

 您會在產品置入產品組合之後，對產品新增限制條件。

**若要新增產品的限制條件**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1. 選擇**產品組合**，然後選取產品組合。

1. 在產品組合詳細資訊頁面中，展開**建立限制條件**區段，然後選擇**新增限制**條件。

1. 針對**產品**，選取要套用限制的產品。

1. 針對**限制類型**，選擇下列其中一個選項：

   **啟動** – 可讓您將 IAM 角色指派給用來佈建 AWS 資源的產品。如需詳細資訊，請參閱[AWS Service Catalog 啟動限制條件](constraints-launch.md)。

   **通知** – 可讓您將產品通知串流至 Amazon SNS 主題。如需詳細資訊，請參閱[AWS Service Catalog 通知限制條件](constraints-notification.md)。

   **範本** – 可讓您限制最終使用者在啟動產品時可用的選項。範本包含 JSON 格式的文字檔案，其中包含一或多個規則。規則會新增至產品使用的 CloudFormation 範本。如需詳細資訊，請參閱[範本限制規則](reference-template_constraint_rules.md)。

    **堆疊集** – 可讓您使用 CloudFormation StackSets 設定跨帳戶和區域的產品部署。如需詳細資訊，請參閱[AWS Service Catalog 堆疊集限制](constraints-stackset.md)。

   **標籤更新** – 可讓您在佈建產品後更新標籤。如需詳細資訊，請參閱[AWS Service Catalog 標籤更新限制。](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-resourceupdate.html)

1.  選擇**繼續**，然後輸入必要的資訊。

**若要編輯限制條件**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/catalog/](https://console.aws.amazon.com/catalog/) 開啟 AWS Service Catalog 管理員主控台。

1. 選擇**產品組合**，然後選取產品組合。

1. 在**產品組合詳細資訊**頁面中，展開**建立限制條件**區段，然後選取要編輯的限制條件。

1. 選擇**編輯限制**條件。

1. 視需要編輯限制條件，然後選擇**儲存**。

# 授予存取權限給使用者
<a name="catalogs_portfolios_users"></a>

讓使用者透過群組或角色存取產品組合。為許多使用者提供產品組合存取權的最佳方法是將使用者放在 IAM 群組中，並授予該群組的存取權。如此，您只要將使用者新增到群組或從群組中移除，就能管理對產品組合的存取。如需詳細資訊，請參閱《[IAM 使用者指南》中的 IAM 使用者和群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html)。 **

除了存取產品組合之外，使用者還必須能夠存取 AWS Service Catalog 最終使用者主控台。您可以透過在 IAM 中套用許可來授予對 主控台的存取權。如需詳細資訊，請參閱[中的 Identity and Access Management AWS Service Catalog](controlling_access.md)。

如果您想要與其他帳戶共用產品組合及其委託人，您可以將委託人名稱 （群組、角色或使用者） 與產品組合建立關聯。委託人名稱會與產品組合共用，並在收件人帳戶中用於授予最終使用者的存取權。

**若要授予產品組合的存取權限給使用者或群組**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1.  從導覽窗格中，選擇**管理**，然後選擇**產品組合**。

1.  選擇您要授予群組、角色或使用者存取權的產品組合。 AWS Service Catalog 導向至**產品組合詳細資訊**頁面。

1.  在**產品組合詳細資訊**頁面上，選擇**存取**索引標籤。

1.  在**產品組合存取**下，選擇**授予存取權**。

1.  針對**類型**，選擇**主體名稱**，然後選取**群組/**、**角色/**或**使用者/**、類型。您最多可以新增 9 個主體名稱。

1.  選擇**授予存取權**，將委託人與目前的產品組合建立關聯。

**若要移除對產品組合的存取權限**

1. 在**產品組合詳細資訊**頁面上，選擇群組、角色或使用者名稱。

1. 選擇**移除存取權**。

# 共用產品組合
<a name="catalogs_portfolios_sharing_how-to-share"></a>

若要讓另一個 AWS 帳戶的 AWS Service Catalog 管理員將您的產品分發給最終使用者，請使用account-to-account共用或 與他們共用您的 AWS Service Catalog 產品組合 AWS Organizations。

 當您使用account-to-account共用產品組合時，您會共用該產品組合的*參考*。在匯入的產品組合中的產品和限制條件，會與您對*共用產品組合* (您所共用的原始產品組合) 所做的變更同步。

收件人無法變更產品或限制條件，但可以為最終使用者新增 AWS Identity and Access Management 存取權。

**注意**  
 您無法共用共用的資源。這包括包含已共用產品的產品組合。

## 帳戶對帳戶共用
<a name="portfolio-sharing-account"></a>

若要完成這些步驟，您必須取得目標帳戶的帳戶 ID AWS 。您可以在 AWS 管理主控台 目標**帳戶的 中的我的**帳戶頁面上找到 ID。

**與 AWS 帳戶共用產品組合**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1. 在左側導覽功能表中，選擇**產品組合**，然後選取您要共用的產品組合。在**動作**功能表中，選取**共用**。

1. 在**輸入帳戶 ID** 中，輸入您要共用 AWS 的帳戶的帳戶 ID。（選用） 選取 [TagOption 共用](#tagoptions-share)。然後，選擇**共用**。

1. 將 URL 傳送給目標帳戶的 AWS Service Catalog 管理員。URL 會開啟**匯入產品組合**頁面，並自動提供共用產品組合的 ARN。

### 匯入一個產品組合
<a name="catalogs_portfolios_sharing_importing"></a>

如果另一個 AWS 帳戶的 AWS Service Catalog 管理員與您共用產品組合，請將該產品組合匯入您的帳戶，以便您可以將其產品分發給最終使用者。

如果產品組合是透過 共用，則不需要匯入產品組合 AWS Organizations。

若要匯入產品組合，您必須從管理員取得產品組合 ID。

若要檢視所有匯入的產品組合，請開啟位於 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 的 AWS Service Catalog 主控台。在**產品組合**頁面上，選取**匯入**標籤。檢閱**匯入的產品組合**資料表。

## 與 共用 AWS Organizations
<a name="portfolio-sharing-organizations"></a>

您可以使用 共用 AWS Service Catalog 產品組合 AWS Organizations。

 首先，您必須決定要從管理帳戶或委派管理員帳戶共用。如果您不想從管理帳戶共用，請註冊可用於共用的委派管理員帳戶。如需詳細資訊，請參閱《CloudFormation 使用者指南》中的[註冊委派管理員](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html)。

 接下來，您必須決定要共用的對象。您可以共用至下列實體：
+ 組織帳戶。
+ 組織單位 (OU)。
+ 組織本身。(這樣會與組織中的每個帳戶共用。)

### 從管理帳戶共用
<a name="sharing-from-master"></a>

當您使用組織結構或輸入組織節點的 ID 時，可以與組織共用產品組合。

****使用組織結構與組織共用產品組合****

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 AWS Service Catalog 主控台。

1. 在**產品組合**頁面上，選取您要共用的產品組合。在**動作**功能表中，選取**共用**。

1. 選取**AWS Organizations**並篩選至您的組織結構。

   您可以選擇根節點，與整個組織、父組織單位 (OU)、子 OU 或組織內 AWS 的帳戶共用產品組合。

   共用到父 OU 會將產品組合共用到該父 OU 內的所有帳戶和子 OU。

   您只能選取**檢視 AWS 帳戶**，以查看組織中所有 AWS 帳戶的清單。

****輸入組織節點的 ID，與組織共用產品組合****

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 AWS Service Catalog 主控台。

1. 在**產品組合**頁面上，選取您要共用的產品組合。在**動作**功能表中，選取**共用**。

1. 選取**組織節點**。

   選取您要與整個組織、組織內的帳戶 AWS 或 OU 共用。

   輸入您選取的組織節點 ID，您可以在 AWS Organizations 主控台中找到該 ID，網址為[ https：//https://console.aws.amazon.com/organizations/](https://console.aws.amazon.com/organizations/)。

### 從委派的管理員帳戶共用
<a name="delegated-admin"></a>

 組織的管理帳戶可以將其他帳戶註冊和取消註冊為組織的委派管理員。

委派管理員可以像管理帳戶一樣在其組織中共用 AWS Service Catalog 資源。他們有權建立、刪除和共用產品組合。

若要註冊或取消註冊委派管理員，您必須從管理帳戶使用 API 或 CLI。如需詳細資訊，請參閱 *AWS Organizations API 參考*中的 [RegisterDelegatedAdministrator](https://docs.aws.amazon.com/organizations/latest/APIReference/API_RegisterDelegatedAdministrator.html) 和 [DeregisterDelegatedAdministrator](https://docs.aws.amazon.com/organizations/latest/APIReference/API_DeregisterDelegatedAdministrator.html)。

**注意**  
管理員必須先呼叫 ，才能指定委派代表 [https://docs.aws.amazon.com/servicecatalog/latest/dg/API_EnableAWSOrganizationsAccess.html](https://docs.aws.amazon.com/servicecatalog/latest/dg/API_EnableAWSOrganizationsAccess.html)。

從委派管理員帳戶共用產品組合的程序與從管理帳戶共用的程序相同，如上所示[從管理帳戶共用](#sharing-from-master)。

 如果成員取消註冊為委派管理員，會發生下列情況：
+ 從該帳戶建立的產品組合共用會被移除。
+ 他們不能再建立新的產品組合共用。

**注意**  
 如果委派管理員建立的產品組合和共用在委派管理員取消註冊後未移除，請再次註冊和取消註冊委派管理員。此動作會移除該帳戶建立的產品組合和共用。

### 在組織內移動帳戶
<a name="move-account"></a>

如果您在組織內移動帳戶，與帳戶共用的 AWS Service Catalog 產品組合可能會變更。

帳戶只能存取與其目的地組織或組織單位共用的產品組合。

## 在共用產品組合時共用 TagOptions
<a name="tagoptions-share"></a>

身為管理員，您可以建立共享以包含 TagOptions。TagOptions 是金鑰/值對，可讓管理員：
+ 定義和強制執行標籤的分類。
+ 定義標籤選項並將其與產品和產品組合建立關聯。
+ 與其他帳戶共用與產品組合和產品相關聯的標籤選項。

當您在主要帳戶中新增或移除標籤選項時，變更會自動出現在收件人帳戶中。在收件人帳戶中，當最終使用者使用 TagOptions 佈建產品時，他們必須為成為佈建產品上標籤的標籤選擇值。

在收件人帳戶中，管理員可以將其他本機 TagOptions 與其匯入的產品組合建立關聯，以強制執行該帳戶特有的標記規則。

**注意**  
若要共用產品組合，您需要消費者 AWS 的帳戶 ID。在 主控台的我的 AWS 帳戶尋找帳戶 ID。 ****

**注意**  
如果 TagOption 具有單一值， 會在佈建程序期間 AWS 自動強制執行該值。

**在共用產品組合時共用 TagOptions**

1. 在左側導覽功能表中，選擇**產品組合**。

1. 在**本機產品組合**中，選擇並開啟產品組合。

1. 從上面的清單中選擇**共用**，然後選擇**共用**按鈕。

1. 選擇與其他 AWS 帳戶或組織共用。

1. 輸入 12 位數帳戶 ID 號碼，選取**啟用**，然後選擇**共用**。

   您共用的帳戶會顯示在**與 共用的帳戶**區段中。它指出是否已啟用 TagOptions。

您也可以更新產品組合共享以包含 TagOptions。屬於產品組合和產品的所有 TagOptions 現在都會共用到此帳戶。

**更新產品組合共享以包含 TagOptions**

1. 在左側導覽功能表中，選擇**產品組合**。

1. 在**本機產品組合**中，選擇並開啟產品組合。

1. 從上述清單中選擇**共用**。

1. 在**與 共用的帳戶中**，選擇帳戶 ID，然後選擇**動作**。

1. 選取**更新取消共用**或取消**共用**。

   當您選取**更新取消共用**時，請選擇**啟用**以啟動共用 TagOptions。您共用的帳戶會顯示在**與 共用的帳戶**區段中。

   當您選取**取消共用**時，請確認您不想再共用帳戶。

## 在共用產品組合時共用主體名稱
<a name="principal-name-share"></a>

身為管理員，您可以建立包含主體名稱的產品組合共享。主體名稱是管理員可以在產品組合中指定的群組、角色和使用者的名稱，然後與產品組合共用。當您共用產品組合時， 會 AWS Service Catalog 驗證這些委託人名稱是否已存在。如果它們確實存在， AWS Service Catalog 會自動將相符的 IAM 主體與共用產品組合建立關聯，以將存取權授予使用者。

**注意**  
當您將主體與產品組合建立關聯時，若該產品組合之後與其他帳戶共用，可能會出現潛在的權限提升途徑。對於收件人帳戶中*非* AWS Service Catalog 管理員但仍能夠建立主體 （使用者/角色） 的使用者，該使用者可以建立符合產品組合主體名稱關聯的 IAM 主體。雖然此使用者可能不知道透過哪些委託人名稱建立關聯 AWS Service Catalog，但他們可能可以猜測使用者。如果此潛在的呈報路徑是問題，則 AWS Service Catalog 建議使用 `PrincipalType`做為 `IAM`。使用此組態時，收件者帳戶中必須已存在 `PrincipalARN`，才能建立關聯。

當您在主要帳戶中新增或移除主體名稱時， AWS Service Catalog 會自動將這些變更套用到收件人帳戶中。然後，收件人帳戶中的使用者可以根據其角色執行任務：
+ **最終使用者可以**佈建、更新和終止產品組合的產品。
+ **管理員**可以將其他 IAM 主體與其匯入的產品組合建立關聯，以將存取權授予該帳戶特定的最終使用者。

**注意**  
主體名稱共用僅適用於 AWS Organizations。

**在共用產品組合時共用主體名稱**

1. 在左側導覽功能表中，選擇**產品組合**。

1. 在**本機產品組合**中，選擇您要共用的產品組合。

1. 在**動作**功能表中，選擇**共用**。

1. 選取 中的組織 AWS Organizations。

1. 選取整個**組織根**目錄、**組織單位 (OU)** 或**組織成員**。

1. 在**共用**設定中，啟用**主體共用**選項。

您也可以更新產品組合共享，以包含主體名稱共享。這會與收件人帳戶共用屬於該產品組合的所有主體名稱。

**更新產品組合共用以啟用或停用主體名稱**

1. 在左側導覽功能表中，選擇**產品組合**。

1. 在**本機產品組合**中，選擇您要更新的產品組合。

1. 選擇**共用**索引標籤。

1. 選取您要更新的共用，然後選擇**共用**。

1. 選擇**更新共用**，然後選擇**啟用**以啟動主體共用。 AWS Service Catalog 然後在收件人帳戶中共用主體名稱。

如果您想要停止與收件人帳戶共用主體名稱，請**停用**主體共用。

### 共用主體名稱時使用萬用字元
<a name="wildcards-principal-names"></a>

AWS Service Catalog 支援使用萬用字元將產品組合存取權授予 IAM 主體 （使用者、群組或角色） 名稱，例如「\$1」或「？」。使用萬用字元模式可讓您一次涵蓋多個 IAM 主體名稱。ARN 路徑和主體名稱允許無限萬用字元。

**可接受的**萬用字元 ARN 範例：
+ **arn:aws:iam:::role/ResourceName\$1\$1**
+ **arn:aws:iam:::role/\$1/ResourceName\$1?**

**無法接受**萬用字元 ARN 的範例：
+ **arn:aws:iam:::\$1/ResourceName**

在 IAM Principal ARN 格式 (**arn:partition:iam:::resource-type/resource-path/resource-name**) 中，有效值包括 **user/**、**group/** 或 **role/**。只有在 resource-id 區段中的 resource-type 之後，才允許使用 "？" 和 "\$1"。您可以在 resource-id 內的任何位置使用特殊字元。

"\$1" 字元也符合 "/" 字元，允許在 resource-id *中*形成路徑。例如：

**arn:aws:iam:::role/**\$1**/ResourceName\$1?** 同時符合 **arn:aws:iam:::role/pathA/pathB/ResourceName\$11**和 **arn:aws:iam:::role/pathA/ResourceName\$11**。

# 共用和匯入產品組合
<a name="catalogs_portfolios_sharing"></a>

若要將您的 AWS Service Catalog 產品提供給不在 中的使用者 AWS 帳戶，例如屬於其他組織或 AWS 帳戶 組織中其他 的使用者，您可以與他們共用您的產品組合。您可以透過多種方式共用，包括account-to-account共用、組織共用，以及使用堆疊集部署目錄。

 在與其他帳戶共用產品和產品組合之前，您必須決定是要共用目錄的參考，還是要將目錄複本部署到每個收件人帳戶。請注意，如果您部署複本，則如果有您要傳播到收件人帳戶的更新，就必須重新部署。

您可以使用堆疊集，同時將目錄部署至多個帳戶。如果您想要共用參考 (產品組合的匯入版本，會與原始版本保持同步)，您可以使用帳戶對帳戶共用，也可以使用 AWS Organizations來共用。

若要使用堆疊集部署目錄的副本，請參閱[如何設定公司標準 AWS Service Catalog 產品的多區域、多帳戶目錄](https://aws.amazon.com/blogs/mt/how-to-set-up-a-multi-region-multi-account-catalog-of-company-standard-aws-service-catalog-products/)。

當您使用account-to-account共用來共用產品組合，或者 AWS Organizations，您可以允許 AWS Service Catalog 另一個 AWS 帳戶的管理員將產品組合匯入其帳戶，並將產品分發給該帳戶中的最終使用者。

這個*匯入的產品組合*並非單獨的副本。在匯入的產品組合中的產品和限制條件，會與您對*共用產品組合* (您所共用的原始產品組合) 所做的變更同步。*收件人管理員*是您共享產品組合的管理員，無法變更產品或限制條件，但可為最終使用者新增 AWS Identity and Access Management (IAM) 存取權。如需詳細資訊，請參閱[授予存取權限給使用者](catalogs_portfolios_users.md)。

收件人管理員可以透過下列方式，將產品分發給屬於其 AWS 帳戶的最終使用者：
+ 將使用者、群組和角色新增至匯入的產品組合。
+ 透過將匯入產品組合中的產品新增至**本機產品組合**，這是收件人管理員建立且屬於其 AWS 帳戶的個別產品組合。然後，收件人管理員會將使用者、群組和角色新增至該本機產品組合。最初套用至共用產品組合中產品的任何限制也會出現在本機產品組合中。本機產品組合收件人管理員可以新增其他限制條件，但無法移除最初從共用產品組合匯入的限制條件。

當您將產品或限制條件新增到共用的產品組合，或從中移除產品或限制條件時，變更會傳播到該產品組合所有匯入的執行個體。例如，如果您從共用產品組合移除產品時，該產品也會從匯入的產品組合中移除。該產品也會從匯入的產品加進的所有本機產品組合中移除。如果最終使用者在您移除之前啟動了產品，最終使用者已佈建的產品會繼續執行，但未來則無法再啟動和使用該產品。

如果您對共用產品組合中的產品，套用了啟動的限制條件，則此限制會傳播到該產品所有匯入的執行個體。若要覆寫此項啟動限制，收件人管理員可將產品新增到本機產品組合，然後對其套用不同的啟動限制條件。生效中的啟動限制條件，會設定產品的啟動角色。

*啟動角色*是在最終使用者啟動產品時， AWS Service Catalog 用來佈建 AWS 資源 （例如 Amazon EC2 執行個體或 Amazon RDS 資料庫） 的 IAM 角色。身為管理員，您可以選擇指定特定的啟動角色 ARN 或本機角色名稱。如果您使用角色 ARN，即使最終使用者所屬的帳戶與 AWS 擁有啟動角色的帳戶不同，也會使用該角色。如果您使用本機角色名稱，則會使用最終使用者帳戶中具有該名稱的 IAM 角色。

關於啟動限制條件和啟動角色的詳細資訊，請參閱 [AWS Service Catalog 啟動限制條件](constraints-launch.md)。擁有啟動角色 AWS 的帳戶會佈建 AWS 資源，而此帳戶會產生這些資源的使用費。如需詳細資訊，請參閱[AWS Service Catalog 定價](https://aws.amazon.com/servicecatalog/pricing/)。

此影片說明如何在 中跨帳戶共用產品組合 AWS Service Catalog。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/BVSohYOppjk/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/BVSohYOppjk)


**注意**  
對於已匯入或共用的產品組合，您不能再共用其中的產品。

**注意**  
產品組合匯入必須在管理與相依帳戶之間的相同區域中進行。

## 共用的和匯入的產品組合之間的關係
<a name="shared-imported-portfolios-relationship"></a>

此資料表摘要說明匯入的產品組合與共用產品組合之間的關係，以及匯入產品組合的管理員可以和不可以對該產品組合及其產品採取的動作。


| 共用產品組合的項目 | 用來匯入產品組合的關係 | 收件人管理員可以 | 收件人管理員不能 | 
| --- | --- | --- | --- | 
| 產品和產品版本 |  繼承。 如果產品組合的建立者將產品新增到共用的產品組合，或從中移除產品，則變更會傳播到匯入的產品組合。  |  將匯入的產品新增到本機產品組合。產品會與共用的產品組合保持同步。  |  將產品上傳或新增到匯入的產品組合，或是從中移除產品。  | 
| 啟動限制條件 |  繼承。 如果產品組合建立者將啟動限制新增至*共用產品*或從中移除啟動限制，變更會傳播到產品的所有匯入執行個體。 如果收件人管理員將匯入的產品新增至其*本機*產品組合，則匯入的啟動限制不會轉移到共用產品組合。  | 在本機產品組合中，管理員可以套用會影響產品本機啟動的啟動限制條件。 |  將啟動限制條件新增到匯入的產品組合，或從中移除啟動限制。  | 
| 範本限制條件 |  繼承。 如果產品組合的建立者將範本限制條件新增到共用的產品，或從中移除範本限制，則變更會傳播到產品所有匯入的執行個體。 如果收件人管理員將匯入的產品新增至本機產品組合，則匯入的範本限制不會轉移到本機產品組合。  |  在本機產品組合中，管理員可以新增限制本機產品的範本限制條件。  |  移除已匯入的範本限制條件。  | 
| 使用者、群組和角色 | 未繼承。 | 新增管理員 AWS 帳戶中的使用者、群組和角色。 | 不適用。 | 

# 管理產品
<a name="catalogs_products"></a>

您可以建立產品、根據更新後的範本建立新版本來更新產品，並將產品分組到產品組合中，以將它們分發給使用者。

產品新版本已傳播給有權透過產品組合存取產品的所有使用者。當您分發更新時，最終使用者可以更新現有的佈建產品。

**Topics**
+ [檢視產品頁面](#productmgmt-menu)
+ [建立產品](productmgmt-cloudresource.md)
+ [將產品新增至產品組合](catalogs_portfolios_adding-products.md)
+ [更新產品](productmgmt-update.md)
+ [從 GitHub、GitHub Enterprise 或 Bitbucket 將產品同步至範本檔案](git-synced-sc-products.md)
+ [刪除產品](productmgmt-delete.md)
+ [管理版本](managing-versions.md)

## 檢視產品頁面
<a name="productmgmt-menu"></a>

您可以從 AWS Service Catalog 管理員主控台中的產品**清單**頁面管理產品。

**檢視**產品清單**頁面**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1. 選擇**產品清單**。

# 建立產品
<a name="productmgmt-cloudresource"></a>

 您可以從 AWS Service Catalog 管理員主控台中的產品頁面建立**產品**。

**注意**  
建立 Terraform 產品需要額外的組態，包括 Terraform 佈建引擎和啟動角色。如需詳細資訊，請檢閱 [Terraform 產品入門](getstarted-Terraform.md)。

**建立新的 AWS Service Catalog 產品**

1. 導覽至**產品清單**頁面。

1. 選擇**建立產品**，然後選擇**建立產品**。

1. **產品詳細資訊** – 可讓您選擇要建立的產品類型。 AWS Service Catalog 支援 CloudFormation、Terraform Cloud 和外部 （支援 Terraform Community Edition) 產品類型。產品詳細資訊也包含當您在清單或詳細資訊頁面中搜尋和檢視產品時顯示的中繼資料。輸入下列資料：
   + **Product name** (產品名稱) – 即產品名稱。
   +  **產品描述 **– 描述會顯示在產品清單中，以協助您選擇正確的產品。
   + **擁有者** – 發佈此產品的人員或組織。擁有者可以是您的 IT 組織或管理員的名稱。
   + **Distributor **（選用） – 應用程式發佈者的名稱。此欄位可讓您排序產品清單，以更輕鬆地尋找產品。

1. **版本詳細資訊**可讓您新增範本檔案並建置產品。輸入下列資料：
   +  **選擇方法** – 新增範本檔案有四種方式。
     + **使用本機範本檔案** - 從本機磁碟機上傳 CloudFormation 範本或 Terraform tar.gz 組態檔案。
     + **使用 Amazon S3 URL** - 指定指向存放在 Amazon S3 中的 CloudFormation 範本或 Terraform tar.gz 組態檔案的 URL。如果您指定 Amazon S3 URL，則必須以 開頭`https://`。
     + **使用外部儲存庫** - 指定您的 GitHub、GitHub Enterprise 或 Bitbucket 程式碼儲存庫。 AWS Service Catalog 可讓您將產品同步至範本檔案。對於 Terraform 產品，範本檔案格式必須是在 Tar 中封存並以 Gzip 壓縮的單一檔案。
     + **使用現有的 CloudFormation 堆疊** - 輸入現有 CloudFormation 堆疊的 ARN。此方法不支援 Terraform Cloud 或外部產品。
   +  **版本名稱** （選用） – 產品版本的名稱 （例如 "v1"、"v2beta")。不可使用空格。
   +  **描述** （選用） – 產品版本的描述，包括此版本與其他版本的差異。
   +  **指引** – 在**產品詳細資訊**頁面上的版本索引標籤中受管。在建立產品工作流程期間建立產品版本時，該版本的指引會設為預設。若要進一步了解指引，請參閱[管理版本](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/managing-versions.html)。

1. **支援詳細資訊**可識別您公司內的組織，並提供支援聯絡窗口。輸入下列資料：
   + **Email contact** (電子郵件聯絡人 [選擇性]) – 回報產品問題的電子郵件地址。
   + **支援連結** （選用） – 網站 URL，使用者可以在此找到支援資訊或檔案票證。URL 必須以 `http://`或 `https://` 開頭。管理員負責維護支援資訊的準確性和存取權。
   + **支援描述** （選用） – 說明您應該如何使用**電子郵件聯絡人**和**支援**連結。

1.  **管理標籤** （選用） – 除了使用標籤來分類資源之外，您也可以使用它們來驗證建立此資源的許可。

1. **建立產品** – 當您完成表單時，請選取**建立產品**。幾秒鐘後，產品會出現在**產品清單**頁面上。可能需要重新整理瀏覽器才能看到產品。

您也可以使用 CodePipeline 建立和設定管道，將產品範本部署到 AWS Service Catalog ，並交付您在來源儲存庫中所做的變更。如需詳細資訊，請參閱[教學課程：建立部署到的管道 AWS Service Catalog](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-S3-servicecatalog.html)。

您可以在 CloudFormation 或 Terraform 範本中定義參數屬性，並在佈建期間強制執行這些規則。這些屬性可以定義值的最小和最大長度、最小和最大值、允許的值，以及規則表達式。如果提供的值不符合參數屬性， 會在佈建期間 AWS Service Catalog 發出警告。若要進一步了解參數屬性，請參閱*CloudFormation 《 使用者指南*》中的[參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)。

## 疑難排解
<a name="productmgmt-cloudresource-troubleshooting"></a>

 您必須具有從 Amazon S3 儲存貯體擷取物件的許可。否則，您可能會在啟動或更新產品時遇到下列錯誤。

```
Error: failed to process product version s3 access denied exception
```

 如果您遇到此訊息，請確定 具有從下列儲存貯體擷取物件的許可：
+  存放佈建成品範本的儲存貯體。
+  以 "***cf-templates-\$1***" 開頭的儲存貯體，以及 AWS Service Catalog 存放佈建成品範本的 。
+  以 "***sc-\$1***" 開頭的內部儲存貯體，以及 AWS Service Catalog 存放中繼資料的位置。您無法從您的帳戶看到此儲存貯體。

 下列範例政策顯示從先前提及的儲存貯體擷取物件所需的最低許可。

```
{
          "Sid": "VisualEditor1",
          "Effect": "Allow",
          "Action": "s3:GetObject*",
          "Resource": [
              "arn:aws:s3:::YOUR_TEMPLATE_BUCKET",
              "arn:aws:s3:::YOUR_TEMPLATE_BUCKET/*",
              "arn:aws:s3:::cf-templates-*",
              "arn:aws:s3:::cf-templates-*/*",
              "arn:aws:s3:::sc-*",
              "arn:aws:s3:::sc-*/*"
          ]
      }
```

# 將產品新增至產品組合
<a name="catalogs_portfolios_adding-products"></a>

 您可以將產品新增至任意數量的產品組合。產品更新時，包含產品的所有產品組合 （包括共用產品組合） 會自動接收新版本。

**將產品從您的目錄新增到產品組合中**

1.  導覽至**產品清單**頁面。

1.  選取產品，然後選擇**動作**。從下拉式選單中，選擇**將產品新增至產品組合**。系統會將您導向至**將*name-of-product*新增至產品組合**頁面。

1.  選擇產品組合，然後選擇**將產品新增至產品組合**。

將 Terraform 產品新增至產品組合時，產品需要啟動限制條件。您必須從帳戶選取 IAM 角色、輸入 IAM 角色 ARN，或輸入角色名稱。如果您指定角色名稱，且帳戶使用啟動限制，則帳戶會針對 IAM 角色使用該名稱。這可讓啟動角色限制與帳戶無關，確保您可以為每個共用帳戶建立較少的資源。如需詳細資訊和說明，請參閱 [步驟 6：將啟動限制新增至 Terraform 產品](getstarted-launchconstraint-Terraform.md) 

 產品組合可以包含許多混合 CloudFormation 和 Terraform 產品類型的產品。

# 更新產品
<a name="productmgmt-update"></a>

 當您更新產品的範本時，您會建立新的產品版本。新的產品版本會自動提供給有權存取包含產品的產品組合的所有使用者。

**注意**  
更新現有產品時，您無法變更產品類型 (CloudFormation 或 Teraform)。例如，如果您更新 CloudFormation 產品，則無法將現有 CloudFormation 範本取代為 Terraform tar.gz 組態檔案。您必須使用新的 CloudFormation 範本檔案更新現有的 CloudFormation 範本檔案。

 目前執行先前產品版本的佈建產品的最終使用者可以將其佈建產品更新為新版本。當產品有新版本可用時，使用者可以使用**佈建產品清單**或佈建產品詳細資訊頁面上的**更新**佈建產品命令。 ****

在建立新的產品版本之前， AWS Service Catalog 建議您在 Terraform 引擎中 CloudFormation 或在 中測試產品更新，以確保它們正常運作。

**建立新的產品版本**

1.  導覽至**產品清單**頁面。

1.  選擇您要更新的產品。系統會將您導向至*產品詳細資訊*頁面。

1.  在*產品詳細資訊*頁面上，展開**版本**索引標籤，然後選擇**建立新版本**。

1.  在**版本詳細資訊**下，執行下列動作：
   + **選擇範本** – 新增範本檔案有四種方式。

     *使用本機範本檔案* - 從本機磁碟機上傳 CloudFormation 範本或 Terraform tar.gz 組態檔案。

     *使用 Amazon S3 URL* - 指定指向存放在 Amazon S3 中的 CloudFormation 範本或 Terraform tar.gz 組態檔案的 URL。如果您指定 Amazon S3 URL，必須以 https：// 開頭。

     *使用外部儲存庫* - 指定您的 GitHub、GitHub Enterprise 或 Bitbucket 程式碼儲存庫。 AWS Service Catalog 可讓您將產品同步至範本檔案。對於 Terraform 產品，範本檔案格式必須是在 Tar 中封存並以 Gzip 壓縮的單一檔案。

     *使用現有的 CloudFormation 堆疊* - 輸入現有 CloudFormation 堆疊的 ARN。此方法不支援 Terraform Cloud 或外部產品。
   + **版本標題** – 產品版本的名稱 （例如 "v1"、"v2beta")。不可使用空格。
   + **描述** （選用） – 產品版本的描述，包括此版本與先前版本的差異。

1. 選擇**建立產品版本**。

 您也可以使用 CodePipeline 建立和設定管道，將產品範本部署到其中 AWS Service Catalog，並在來源儲存庫中交付變更。如需詳細資訊，請參閱[教學課程：建立部署到的管道 AWS Service Catalog](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-S3-servicecatalog.html)。

# 從 GitHub、GitHub Enterprise 或 Bitbucket 將產品同步至範本檔案
<a name="git-synced-sc-products"></a>

AWS Service Catalog 可讓您將產品同步至透過外部儲存庫提供者管理的範本檔案。 AWS Service Catalog 是指具有此類範本連線的產品，做為 *Git 同步*產品。儲存庫選項包括 GitHub、GitHub Enterprise 或 Bitbucket。使用外部儲存庫帳戶授權 AWS 帳戶 之後，您可以建立新的 AWS Service Catalog 產品或更新現有產品，以同步至儲存庫中的範本檔案。當對範本檔案進行變更並在儲存庫中遞交時 （例如，使用 git-push)， AWS Service Catalog 會自動偵測變更並建立新的產品版本 （成品）。

**Topics**
+ [將產品同步至外部範本檔案所需的許可](#required-perms-synced-repo)
+ [建立帳戶連線](#create-synced-product)
+ [檢視 Git 同步產品連線](#view-repo-sync)
+ [更新 Git 同步產品連線](#update-repo-sync)
+ [刪除 Git 同步產品連線](#delete-repo-sync)
+ [從 GitHub、GitHub Enterprise 或 Bitbucket 將 Terraform 產品同步至範本檔案](#git-synced-Terraform)
+ [AWS 區域 支援 Git 同步產品](git-sync-supported-regions.md)

## 將產品同步至外部範本檔案所需的許可
<a name="required-perms-synced-repo"></a>

您可以使用下列 AWS Identity and Access Management (IAM) 政策做為範本，讓 AWS Service Catalog 管理員從外部儲存庫將產品同步至範本檔案。此政策包含 CodeConnections 和 的必要許可 AWS Service Catalog。 AWS Service Catalog 建議您複製以下範本政策，並在 AWS Service Catalog `AWSServiceCatalogAdminFullAccess`啟用儲存庫同步產品時使用 [受管政策](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/security-iam-awsmanpol)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeStarAccess",
            "Effect": "Allow",
            "Action": [
            "codestar-connections:UseConnection",
            "codestar-connections:PassConnection",
            "codestar-connections:CreateConnection",
            "codestar-connections:DeleteConnection",
            "codestar-connections:GetConnection",
            "codestar-connections:ListConnections",
            "codestar-connections:ListInstallationTargets",
            "codestar-connections:GetInstallationUrl",
            "codestar-connections:StartOAuthHandshake",
            "codestar-connections:UpdateConnectionInstallation",
            "codestar-connections:GetIndividualAccessToken"
            ],
            "Resource": "arn:aws:codestar-connections:*:*:connection/*"
        },
        {
        "Sid": "CreateSLR",
        "Effect": "Allow",
        "Action": "iam:CreateServiceLinkedRole",
        "Resource": "arn:aws:iam::*:role/aws-service-role/sync.servicecatalog.amazonaws.com/AWSServiceRoleForServiceCatalogArtifactSync",
        "Condition": {
        "StringLike": {
        "iam:AWSServiceName": "sync.servicecatalog.amazonaws.com"
                }
            }
        }
    ]
}
```

------

## 建立帳戶連線
<a name="create-synced-product"></a>

將範本檔案同步至 AWS Service Catalog 產品之前，您必須建立並授權一次性account-to-account連線。您可以使用此連線來指定包含所需範本檔案的儲存庫詳細資訊。您可以使用 AWS Service Catalog 主控台、CodeConnections 主控台、 AWS Command Line Interface (CLI) 或 CodeConnections APIs建立連線。

建立連線後，您可以使用 AWS Service Catalog 主控台、 AWS Service Catalog API 或 CLI 來建立同步 AWS Service Catalog 產品。 AWS Service Catalog 管理員可以根據儲存庫和分支中的範本檔案建立新的或更新現有 AWS Service Catalog 產品。如果在儲存庫中遞交變更， AWS Service Catalog 會自動偵測變更並建立新的產品版本。先前的產品版本會維持在規定的版本限制，並指派**已棄用**的狀態。

此外，在建立連線之後 AWS Service Catalog ， 會自動建立服務連結角色 (SLR)。此 SLR AWS Service Catalog 允許 偵測遞交至儲存庫的任何範本檔案變更。SLR 也允許 AWS Service Catalog 自動為同步產品建立新的產品版本。如需 SLR 許可和功能的詳細資訊，請參閱 [的服務連結角色 AWS Service Catalog](#required-perms-synced-repo)。

**建立新的 Git 同步產品**

1. 在左側導覽面板中，選擇**產品清單**，然後選擇**建立產品**。

1. 輸入**產品詳細資訊**。

1. 在版本詳細資訊中，選擇**使用 AWS CodeStar 提供者指定程式碼儲存庫**，然後選擇**建立新的 AWS CodeStar 連線**連結。

1. 建立連線後，請重新整理連線清單，然後選取新的連線。指定儲存庫詳細資訊，包括**儲存庫**、**分支**和**範本檔案路徑**。

   如需使用 Terraform 組態檔案的資訊，請參閱 [從 GitHub、GitHub Enterprise 或 Bitbucket 將 Terraform 產品同步至範本檔案](#git-synced-Terraform)。

   1. （建立新的 AWS Service Catalog 產品資源時為選用） 在**支援詳細資訊**區段中，新增產品的中繼資料。

   1. （建立新的 AWS Service Catalog 產品資源時選用） 在**標籤**區段中，選擇**新增標籤**，然後輸入**金鑰**和**值**對。

1. 選擇**建立新產品**。

**建立多個 Git 同步產品**

1. 在 AWS Service Catalog 主控台左側導覽面板中，選擇**產品清單**，然後選擇**建立多個 git 受管產品**。

1. 輸入**常見產品詳細資訊**。

1. 在外部儲存庫詳細資訊中，選取**AWS CodeStar 連線**，然後指定**儲存庫**和**分支**。

1. 在新增產品窗格中，輸入**範本檔案路徑**和**產品名稱**。選擇**新增項目**，並視需要繼續新增產品。

1. 新增所有必要的產品後，請選擇**大量建立產品**。

**將現有 AWS Service Catalog 產品連線至外部儲存庫**

1. 在 AWS Service Catalog 主控台左側導覽面板中，選擇**產品清單**，然後選擇**將產品連線至外部儲存庫**。

1. 在選取產品頁面上，選取您要連線至外部儲存庫的產品，然後選擇**下一步**。

1. 在指定來源詳細資訊頁面上，選取現有的 AWS CodeStar 連線，然後指定**儲存庫**、**分支**和**範本檔案路徑**。

1. 選擇**下一步**。

1. 在檢閱和提交頁面上，驗證連線詳細資訊，然後選擇**將產品連線至外部儲存庫**。

## 檢視 Git 同步產品連線
<a name="view-repo-sync"></a>

您可以使用 AWS Service Catalog 主控台、API 或 AWS CLI 來檢視儲存庫連線詳細資訊。對於連結至範本檔案 AWS Service Catalog 的產品，您可以從上次同步**狀態**擷取有關儲存庫連線以及範本上次與產品同步的資訊。

**注意**  
您可以在產品層級檢視儲存庫資訊和**上次同步狀態**。使用者必須在 CodeConnections APIs 中擁有 IAM 許可，才能檢視儲存庫詳細資訊。如需這些 IAM [許可所需政策的詳細資訊，請參閱將 AWS Service Catalog 產品同步至範本檔案](#required-perms-synced-repo)的必要許可。

**使用 檢視連線和儲存庫詳細資訊 AWS 管理主控台**

1. 在左側導覽面板中，選擇**產品清單**。

1. 從清單中選擇產品。

1. 在**產品**頁面上，導覽至**產品來源詳細資訊**區段。

1. 若要檢視產品版本的來源修訂 ID，請選擇**建立的最後一個版本**連結。**版本詳細資訊**區段會顯示來源修訂版 ID。

**使用 檢視連線和儲存庫詳細資訊 AWS CLI**

從 中 AWS CLI，執行下列命令：

`$ aws servicecatalog describe-product-as-admin`

`$ aws servicecatalog describe-provisioning-artifact`

`$ aws servicecatalog search-product-as-admin`

`$ aws servicecatalog list-provisioning-artifacts`

## 更新 Git 同步產品連線
<a name="update-repo-sync"></a>

您可以使用 AWS Service Catalog 主控台、 AWS Service Catalog API 或 更新現有的帳戶連線和 Git 同步產品 AWS CLI。

若要了解如何將現有 AWS Service Catalog 產品連線至範本檔案，請參閱[建立新的 Git 同步產品連線](#create-synced-product)。

**將現有產品更新為 Git 同步產品**

1. 在左側導覽面板中，選擇**產品清單**，然後選擇下列其中一個選項：
   + 若要更新**單一產品**，請選取產品，導覽至**產品來源詳細資訊**區段，然後選擇**編輯詳細資訊**。
   + 若要更新**多個產品**，請選擇**將產品連接到外部儲存庫**，選取最多十個產品，然後選擇**下一步**。

1. 在**產品來源詳細資訊**區段中，執行下列更新：
   + 指定連線。
   + 指定儲存庫。
   + 指定分支。
   + 為範本檔案命名。

1. 選擇**儲存變更**。

**注意**  
對於尚未連接到外部儲存庫的產品，您可以在選取產品後，使用在產品資訊頁面頂端的提醒中顯示的**連接到外部儲存庫**選項。

您也可以使用 AWS Service Catalog 主控台或 AWS CLI 來 
+ 將現有 AWS Service Catalog 產品連接到外部儲存庫中的範本檔案
+ 更新產品中繼資料，包括產品名稱、描述和標籤。
+ 重新設定 （更新同步以使用不同的儲存庫來源） 先前連線 AWS Service Catalog 產品的連線。

**使用 AWS Service Catalog 主控台更新連線和儲存庫詳細資訊**

1. 在 AWS Service Catalog 主控台左側導覽面板中，選擇**產品清單**，然後選取目前連線至外部儲存庫的產品。

1. 在**產品來源詳細資訊**區段中，選擇**編輯產品來源**。

1. 在**產品來源詳細資訊**區段中，指定新的所需儲存庫。

1. 選擇**儲存變更**。

**使用 更新連線和儲存庫詳細資訊 AWS CLI**

從 AWS CLI 執行 `$ aws servicecatalog update-product`和 `$ aws servicecatalog update-provisioning-artifact`命令。

## 刪除 Git 同步產品連線
<a name="delete-repo-sync"></a>

您可以使用 AWS Service Catalog 主控台、CodeConnections API 或 刪除 AWS Service Catalog 產品和範本檔案之間的連線 AWS CLI。當您中斷產品與範本檔案的連線時，同步 AWS Service Catalog 產品會切換到定期受管產品。中斷連線產品後，如果範本檔案已變更並遞交至先前連線的儲存庫，則*不會*反映變更。若要將 AWS Service Catalog 產品重新連線至外部儲存庫中的範本檔案，請參閱[更新連線和同步 AWS Service Catalog 產品]()。

**使用 AWS Service Catalog 主控台中斷連接 Git 同步產品**

1. 在 中 AWS 管理主控台，從左側導覽面板中選擇**產品清單**。

1. 從清單中選擇產品。

1. 在**產品**頁面上，導覽至**產品來源詳細資訊**區段。

1. 選擇**中斷連線**。

1. 確認動作，然後選擇**中斷連線**。

**使用 中斷連接 Git 同步產品 AWS CLI**

從 AWS CLI執行 `$ aws servicecatalog update-product`命令。在`ConnectionParameters`輸入中，移除指定的連線。

**使用 CodeConnections API 或 刪除連線 AWS CLI**

在 CodeConnections API 或 中 AWS CLI，執行 `$ aws codestar-connections delete-connection`命令。

## 從 GitHub、GitHub Enterprise 或 Bitbucket 將 Terraform 產品同步至範本檔案
<a name="git-synced-Terraform"></a>

使用 Terraform 組態檔案建立 Git 同步產品時，檔案路徑只接受 tar.gz 格式。檔案路徑中不接受 Terraform 資料夾格式。

# AWS 區域 支援 Git 同步產品
<a name="git-sync-supported-regions"></a>

AWS Service Catalog 支援 中的 Git 同步 produtc， AWS 區域 如下表所示。


****  

| AWS 區域 名稱 | AWS 區域 身分 | 支援 Git 同步產品 | 
| --- | --- | --- | 
| 美國東部 (維吉尼亞北部) | us-east-1 | 是 | 
| 美國東部 (俄亥俄) | us-east-2 | 是 | 
| 美國西部 (加利佛尼亞北部) | us-west-1 | 是 | 
| 美國西部 (奧勒岡) | us-west-2 | 是 | 
| Africa (Cape Town) | af-south-1 | 否 | 
| 亞太地區 (香港) | ap-east-1 | 否 | 
| 亞太地區 (雅加達) | ap-southeast-3 | 否 | 
| 亞太區域 (孟買) | ap-south-1 | 是 | 
| 亞太區域 (大阪) | ap-northeast-3 | 否 | 
| 亞太區域 (首爾) | ap-northeast-2 | 是 | 
| 亞太區域 (新加坡) | ap-southeast-1 | 是 | 
| 亞太區域 (雪梨) | ap-southeast-2 | 是 | 
| 亞太區域 (東京) | ap-northeast-1 | 是 | 
| 加拿大 (中部) | ca-central-1 | 是 | 
| 歐洲 (法蘭克福) | eu-central-1 | 是 | 
| 歐洲 (愛爾蘭) | eu-west-1 | 是 | 
| 歐洲 (倫敦) | eu-west-2 | 是 | 
| 歐洲 (米蘭) | eu-south-1 | 否 | 
| Europe (Paris) | eu-west-3 | 是 | 
| Europe (Stockholm) | eu-north-1 | 是 | 
| Middle East (Bahrain) | me-south-1 | 否 | 
| 南美洲 (聖保羅) | sa-east-1 | 是 | 
| AWS GovCloud （美國東部） | us-gov-east-1 | 否 | 
| AWS GovCloud （美國西部） | us-gov-west-1 | 否 | 

# 刪除產品
<a name="productmgmt-delete"></a>

當您刪除產品時， 會從包含產品的每個產品組合 AWS Service Catalog 中移除所有產品版本。

AWS Service Catalog 可讓您使用 AWS Service Catalog 主控台或 刪除產品 AWS CLI。若要成功刪除產品，您必須先取消與產品相關聯的所有資源的關聯。產品資源關聯的範例包括產品組合關聯、預算、TagOptions 和服務動作。

**重要**  
 產品刪除後就無法復原。

**使用 AWS Service Catalog 主控台刪除產品**

1.  導覽至**產品組合**頁面，然後選取包含您要刪除之產品的產品組合。

1.  選取您要刪除的產品，然後選擇產品窗格右上角的**刪除**。

1. 對於*沒有相關聯資源*的產品，請在文字方塊中輸入 **Delete** 以確認您要刪除的產品，然後選擇 **Delete**。

   對於*具有相關聯資源*的產品，請繼續步驟 4。

1. 在**刪除產品**視窗中，檢閱**關聯**表格，其中會顯示所有產品關聯的資源。當您刪除產品時， AWS Service Catalog 嘗試取消這些資源的關聯。

1. 確認您想要刪除產品，並在文字方塊中輸入 **Delete** 來移除所有相關聯的資源。

1. 選擇**取消關聯並刪除**。

如果 AWS Service Catalog 無法取消所有產品資源的關聯，則不會刪除該產品。**刪除產品**視窗會顯示失敗的取消關聯數目，以及每個失敗的描述。如需在刪除產品時解決失敗資源取消關聯的詳細資訊，請參閱*在以下刪除產品時解決失敗的資源取消關聯*。

**Topics**
+ [使用 刪除產品 AWS CLI](product-delete-cli.md)
+ [解決刪除產品時失敗的資源取消關聯](product-delete-exception.md)

# 使用 刪除產品 AWS CLI
<a name="product-delete-cli"></a>

AWS Service Catalog 可讓您使用 [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)(AWS CLI) 從您的產品組合中刪除產品。是一種 AWS CLI 開放原始碼工具，可讓您使用命令列 Shell 中的 命令與 AWS 服務互動。 AWS Service Catalog 強制刪除函數需要[AWS CLI 別名](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-alias.html)，這是您可以在 中建立的捷徑 AWS CLI ，以縮短您經常使用的命令或指令碼。

## 先決條件
<a name="product-delete-cli-requirements"></a>
+ 安裝及設定 AWS CLI。如需詳細資訊，請參閱[安裝或更新最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)和[組態基本概念](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html)。使用最低 AWS CLI 版本 1.11.24 或 2.0.0。
+ 刪除產品 CLI 別名需要與 bash 相容的終端機和 JQ 命令列 JSON 處理器。如需安裝命令列 JSON 處理器的詳細資訊，請參閱[下載 jq](https://stedolan.github.io/jq/download/)。
+ 建立 AWS CLI 別名以批次處理 `Disassociation` API 呼叫，讓您能夠在單一命令中刪除產品。

若要成功刪除產品，您必須先取消與產品相關聯的所有資源的關聯。產品資源關聯的範例包括產品組合關聯、預算、標籤選項和服務動作。使用 CLI 刪除產品時，CLI `force-delete-product` 別名可讓您呼叫 `Disassociate` API 來取消關聯任何會阻止 `DeleteProduct` API 的資源。這可避免個別取消關聯的個別呼叫。

**注意**  
以下程序中顯示的檔案路徑可能會根據您用來執行這些動作的作業系統而有所不同。

## 建立 AWS CLI 別名以刪除 AWS Service Catalog 產品
<a name="product-delete-cli-alias"></a>

使用 AWS CLI 刪除 AWS Service Catalog 產品時，CLI `force-delete-product` 別名可讓您呼叫 `Disassociate` API，以取消任何會阻止`DeleteProduct`呼叫的資源的關聯。

**在 AWS CLI 組態資料夾中建立 `alias` 檔案**

1. 在 AWS CLI 主控台中，導覽至 configuraiton 資料夾。根據預設，組態資料夾路徑`~/.aws/`位於 Linux 和 macOS `%USERPROFILE%\.aws\`或 Windows。

1. `cli` 使用檔案導覽或在您偏好的終端機中輸入下列命令來建立名為 的子資料夾：

   ```
                $ mkdir -p ~/.aws/cli
   ```

   產生的`cli`資料夾預設路徑位於 `~/.aws/cli/` Linux 和 MacOS `%USERPROFILE%\.aws\cli`或 Windows。

1. 在新`cli`資料夾中，建立名為 `alias` 且沒有副檔名的文字檔案。您可以使用`alias`檔案導覽或在偏好的終端機中輸入下列命令來建立檔案：

   ```
                 $ touch ~/.aws/cli/alias
   ```

1. 在第一行`[toplevel]`輸入 。

1. 儲存檔案。

接下來，您可以透過手動將別名指令碼貼入 `alias` 檔案，或使用終端機視窗中的命令，將 force-delete-product 別名新增至 檔案。

**手動將 force-delete-product 別名新增至您的`alias`檔案**

1. 在 AWS CLI 主控台中，導覽至您的 AWS CLI 組態資料夾並開啟 `alias` 檔案。

1. 將下列程式碼別名輸入 檔案，位於 `[toplevel]`行下方：

   ```
                [command servicecatalog]
             	 force-delete-product =
             	   !f() {
             	     if [ "$#" -ne 1 ]; then
             	         echo "Illegal number of parameters"
             	         exit 1
             	     fi
             	 
             	     if [[ "$1" != prod-* ]]; then
             	        echo "Please provide a valid product id."
             	        exit 1
             	     fi
             	 
             	     productId=$1
             	     describeProductAsAdminResponse=$(aws servicecatalog describe-product-as-admin --id $productId)
             	     listPortfoliosForProductResponse=$(aws servicecatalog list-portfolios-for-product --product-id $productId)
             	 
             	     tagOptions=$(echo "$describeProductAsAdminResponse" | jq -r '.TagOptions[].Id')
             	     budgetName=$(echo "$describeProductAsAdminResponse" | jq -r '.Budgets[].BudgetName')
             	     portfolios=$(echo "$listPortfoliosForProductResponse" | jq -r '.PortfolioDetails[].Id')
             	     provisioningArtifacts=$(echo "$describeProductAsAdminResponse" | jq -r '.ProvisioningArtifactSummaries[].Id')
             	     provisioningArtifactServiceActionAssociations=()
             	 
             	     for provisioningArtifactId in $provisioningArtifacts; do
             	       listServiceActionsForProvisioningArtifactResponse=$(aws servicecatalog list-service-actions-for-provisioning-artifact --product-id $productId --provisioning-artifact-id $provisioningArtifactId)
             	       serviceActions=$(echo "$listServiceActionsForProvisioningArtifactResponse" | jq -r '[.ServiceActionSummaries[].Id] | join(",")')
             	       if [[ -n "$serviceActions" ]]; then
             	         provisioningArtifactServiceActionAssociations+=("${provisioningArtifactId}:${serviceActions}")
             	       fi
             	     done
             	 
             	     echo "Before deleting a product, the following associated resources must be disassociated. These resources will not be deleted. This action may take some time, depending on the number of resources being disassociated."
             	 
             	     echo "Portfolios:"
             	     for portfolioId in $portfolios; do
             	       echo "\t${portfolioId}"
             	     done
             	 
             	     echo "Budgets:"
             	     if [[ -n "$budgetName" ]]; then
             	       echo "\t${budgetName}"
             	     fi
             	 
             	     echo "Tag Options:"
             	     for tagOptionId in $tagOptions; do
             	       echo "\t${tagOptionId}"
             	     done
             	 
             	     echo "Service Actions on Provisioning Artifact:"
             	     for association in "${provisioningArtifactServiceActionAssociations[@]}"; do
             	       echo "\t${association}"
             	     done
             	 
             	     read -p "Are you sure you want to delete ${productId}? y,n "
             	     if [[ ! $REPLY =~ ^[Yy]$ ]]; then
             	        exit
             	     fi
             	 
             	     for portfolioId in $portfolios; do
             	       echo "Disassociating ${portfolioId}"
             	       aws servicecatalog disassociate-product-from-portfolio --product-id $productId --portfolio-id $portfolioId
             	     done
             	 
             	     if [[ -n "$budgetName" ]]; then
             	       echo "Disassociating ${budgetName}"
             	       aws servicecatalog disassociate-budget-from-resource --budget-name "$budgetName" --resource-id $productId
             	     fi
             	 
             	     for tagOptionId in $tagOptions; do
             	       echo "Disassociating ${tagOptionId}"
             	       aws servicecatalog disassociate-tag-option-from-resource --tag-option-id $tagOptionId --resource-id $productId
             	     done
             	 
             	     for association in "${provisioningArtifactServiceActionAssociations[@]}"; do
             	       associationPair=(${association//:/ })
             	       provisioningArtifactId=${associationPair[0]}
             	       serviceActionsList=${associationPair[1]}
             	       serviceActionIds=${serviceActionsList//,/ }
             	       for serviceActionId in $serviceActionIds; do
             	         echo "Disassociating ${serviceActionId} from ${provisioningArtifactId}"
             	         aws servicecatalog disassociate-service-action-from-provisioning-artifact --product-id $productId --provisioning-artifact-id $provisioningArtifactId --service-action-id $serviceActionId
             	       done
             	     done
             	 
             	     echo "Deleting product ${productId}"
             	     aws servicecatalog delete-product --id $productId
             	 
             	   }; f
   ```

1. 儲存檔案。

**使用終端機視窗將 force-delete-product 別名新增至您的`alias`檔案**

1. 開啟終端機視窗並執行下列命令

   `$ cat >> ~/.aws/cli/alias`

1. 將別名指令碼貼到終端機視窗，然後按 *CTRL\$1D* 結束`cat`命令。

**呼叫 force-delete-product 別名**

1. 在終端機視窗中，執行下列命令來呼叫刪除產品別名

   `$ aws servicecatalog force-delete-product {product-id} `

   以下範例顯示`force-delete-product`別名命令及其產生的回應 

   ```
                 $ aws servicecatalog force-delete-product prod-123
   ```

   ```
                 Before deleting a product, the following associated resources must be disassociated. These resources will not be deleted. This action may take some time, depending on the number of resources being disassociated.
                 Portfolios:
                   port-123
                 Budgets:
                     budgetName
                 Tag Options:
                     tag-123
                 Service Actions on Provisioning Artifact:
                     pa-123:act-123
                 Are you sure you want to delete prod-123? y,n
   ```

1. 輸入 `y` 以確認您想要刪除產品。

成功刪除產品後，終端機視窗會顯示下列結果

```
          Disassociating port-123
          Disassociating budgetName
          Disassociating tag-123
          Disassociating act-123 from pa-123
          Deleting product prod-123
```

## 其他資源
<a name="product-delete-cli-resources"></a>

如需使用 AWS CLI別名和刪除 AWS Service Catalog 產品的詳細資訊，請檢閱下列資源：
+ 《 *AWS Command Line Interface (CLI)* [AWS CLI 使用者指南》中的建立和使用別名](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-alias.html)。
+ [AWS CLI 別名儲存庫](https://github.com/awslabs/awscli-aliases) git 儲存庫。
+ [刪除 AWS Service Catalog 產品](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/productmgmt-delete.html)。
+ [AWS re：Invent 2016：YouTube 上的有效 AWS CLI 使用者](https://youtu.be/Xc1dHtWa9-Q?t=1593)。 *YouTube* 

# 解決刪除產品時失敗的資源取消關聯
<a name="product-delete-exception"></a>

如果您之前因資源取消關聯例外狀況而嘗試[刪除產品](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/productmgmt-delete.html)失敗，請檢閱下列例外狀況清單及其解決方法。

**注意**  
如果您在收到失敗的資源取消關聯訊息之前關閉**刪除產品**視窗，您可以遵循繼續*執行刪除產品*區段中的步驟一到三，以再次開啟視窗。

**解決失敗的資源取消關聯**

在**刪除產品**視窗中，檢閱關聯資料表**狀態**欄。識別失敗的資源取消關聯例外狀況和建議的解決方案：


****  

| 狀態例外類型 | 原因 | Resolution | 
| --- | --- | --- | 
| 產品產品-\$1\$1\$1\$1 | AWS Service Catalog 無法刪除產品，因為產品仍有關聯的 TagOptions、預算、至少一個ProvisioningArtifact有關聯的動作、產品仍指派給產品組合、產品有使用者，或產品有限制條件。 | 嘗試再次刪除產品。 | 
| 使用者： username 未獲授權執行： | 嘗試刪除產品的使用者沒有取消產品資源關聯的必要許可。 | AWS Service Catalog 建議聯絡您的 帳戶管理員，以取得有關取消關聯您目前沒有取消關聯的許可產品資源的詳細資訊。 | 

# 管理版本
<a name="managing-versions"></a>

 您可以在建立產品時指派產品版本，而且可以隨時更新產品版本。

 版本具有 CloudFormation 範本、標題、描述、狀態和指引。

## 版本狀態
<a name="version-status"></a>

 版本可具有下列三種狀態的其中一種：
+  **Active (作用中)** - 版本清單中會顯示作用中版本，且可讓使用者啟動。
+  **Inactive (非作用中)** - 版本清單中會隱藏非作用中版本。從此版本啟動的現有佈建產品不會受到影響。
+  **已刪除** - 從版本清單中移除已刪除的版本。刪除版本無法復原。

## 版本指導
<a name="version-guidance"></a>

 您可以設定版本指導，將產品版本相關資訊提供給最終使用者。版本指導只會影響作用中產品版本。

 版本指導有下列兩種選項：
+  **無** - 根據預設，產品版本沒有任何指引。最終使用者可以使用該版本來更新和啟動佈建產品。
+  **已棄用** - 使用者無法使用已棄用的產品版本啟動新的佈建產品。如果先前啟動的 p 佈建產品使用現已棄用版本，使用者只能使用現有版本或新版本更新該佈建產品。

## 更新版本
<a name="updating-versions"></a>

 您可以在建立產品時指派產品版本，而且也可以隨時更新版本。如需有關建立產品的詳細資訊，請參閱[建立產品](productmgmt-cloudresource.md)。

**更新產品版本**

1.  在 AWS Service Catalog 主控台中，選擇**產品**。

1.  從產品清單中選擇您要更新版本的產品。

1.  在 **Product details (產品詳細資料)** 頁面上，選擇 **Versions (版本)** 標籤，然後選擇您要更新的版本。

1.  在 **Version details (版本詳細資料)** 頁面上，編輯產品版本，然後選擇 **Save changes (儲存變更)**。

# 使用 AWS Service Catalog 限制條件
<a name="constraints"></a>

您可以套用限制來控制在最終使用者啟動特定產品組合中要套用至產品的規則。當最終使用者啟動產品時，他們會看到您使用限制所套用的規則。您可以在產品放入產品組合後，隨即將限制套用至產品。當您建立限制時，限制便會處於主動狀態，並套用至所有尚未啟動之產品的目前版本。

**Topics**
+ [啟動限制條件](constraints-launch.md)
+ [通知限制條件](constraints-notification.md)
+ [標籤更新限制](constraints-resourceupdate.md)
+ [堆疊集限制](constraints-stackset.md)
+ [範本限制條件](catalogs_constraints_template-constraints.md)

# AWS Service Catalog 啟動限制條件
<a name="constraints-launch"></a>

啟動限制條件指定最終使用者啟動、更新或終止產品時 AWS Service Catalog 擔任的 AWS Identity and Access Management (IAM) 角色。IAM 角色是使用者或服務 AWS 可暫時擔任以使用 AWS 服務的許可集合。如需簡介範例，請參閱：
+ CloudFormation 產品類型： [步驟 6：新增啟動限制以指派 IAM 角色](getstarted-launchconstraint.md)
+ Terraform 開放原始碼或 Terraform Cloud 產品類型： [步驟 5：建立啟動角色](getstarted-launchrole-Terraform.md)

啟動限制條件適用於產品組合中的產品 （產品產品組合關聯）。啟動限制不適用於產品組合層級或所有產品組合的產品。若要將啟動限制與產品組合中的產品建立關聯，您必須將啟動限制個別套用至每個產品。

如果沒有啟動限制，最終使用者必須使用自己的 IAM 登入資料來啟動和管理產品。若要這樣做，他們必須擁有 的許可 CloudFormation、產品使用 AWS 的服務，以及 AWS Service Catalog。透過使用啟動角色，您可以改為將最終使用者的許可限制為該產品所需的最低許可。如需有關最終使用者權限的詳細資訊，請參閱 [中的 Identity and Access Management AWS Service Catalog](controlling_access.md)。

若要建立和指派 IAM 角色，您必須具有下列 IAM 管理許可：
+ `iam:CreateRole`
+ `iam:PutRolePolicy`
+ `iam:PassRole`
+ `iam:Get*`
+ `iam:List*`

## 設定啟動角色
<a name="constraints-launch-role"></a>

您指派給產品做為啟動限制條件的 IAM 角色必須具有使用下列項目的許可：

**對於 Cloudformation 產品**
+ `arn:aws:iam::aws:policy/AWSCloudFormationFullAccess` CloudFormation 受管政策
+ 產品 AWS CloudFormation 範本中的服務
+ 讀取服務擁有的 Amazon S3 儲存貯體中的 AWS CloudFormation 範本存取權。

**對於 Terraform 產品**
+ 產品 Amazon S3 範本中的服務
+ 在服務擁有的 Amazon S3 儲存貯體中讀取對 Amazon S3 範本的存取權。
+ `resource-groups:Tag`在 Amazon EC2 執行個體中標記 （在執行佈建操作時由 Terraform 佈建引擎擔任）
+ `resource-groups:CreateGroup` 用於資源群組標記 （由 擔任 AWS Service Catalog ，以建立資源群組並指派標籤） 

IAM 角色的信任政策必須允許 AWS Service Catalog 擔任該角色。在下列程序中，當您選取 AWS Service Catalog 做為角色類型時，會自動設定信任政策。如果您不是使用 主控台，請參閱如何搭配 IAM *角色使用信任政策中為擔任角色 AWS 的服務建立*信任政策一節。 [https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/](https://aws.amazon.com/blogs/security/how-to-use-trust-policies-with-iam-roles/)

**注意**  
`servicecatalog:ProvisionProduct`、`servicecatalog:TerminateProvisionedProduct` 及 `servicecatalog:UpdateProvisionedProduct` 權限無法以啟動角色指派。您必須使用 IAM 角色，如[授予許可給 AWS Service Catalog 最終使用者一節中的內嵌政策步驟所示。](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-iamenduser.html)

**注意**  
若要在 AWS Service Catalog 主控台中檢視佈建的 Cloudformation 產品和資源，最終使用者需要 CloudFormation 讀取存取權。在主控台中檢視佈建的產品和資源**不會**使用 啟動角色。

**建立啟動角色**

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

   Terraform 產品需要額外的啟動角色組態。如需詳細資訊，請參閱 *Terraform Open Source 產品入門*中的[步驟 5：建立啟動角色](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted-launchrole-Terraform)。

1. 選擇**角色**。

1. 選擇 **Create New Role** (建立新角色)。

1. 輸入角色名稱，然後選擇 **Next Step** (下一步)。

1. 在 旁的**AWS 服務角色**下**AWS Service Catalog**，選擇**選取**。

1. 在 **Attach Policy** (連接政策) 頁面上，選擇 **Next Step** (下一步)。

1. 若要建立角色，請選擇 **Create Role** (建立角色)。

**將政策連接到新的角色**

1. 選取您建立的角色以檢視該角色的詳細資訊頁面。

1. 選擇 **Permissions** (許可) 索引標籤，然後展開 **Inline Policies** (內嵌政策) 區段。然後，選擇 **click here** (按一下這裡)。

1. 選擇 **Custom Policy** (自訂政策)，然後選擇 **Select** (選取)。

1. 輸入原則的名稱，然後將以下內容貼到 **Policy Document** (政策文件) 編輯器：

   ```
     
             "Statement":[
         {
            "Effect":"Allow",
            "Action":[
               "s3:GetObject"
            ],
            "Resource":"*",
            "Condition":{
               "StringEquals":{
                  "s3:ExistingObjectTag/servicecatalog:provisioning":"true"
               }
            }
      ]
   }
   ```
**注意**  
當您設定啟動限制條件的啟動角色時，您必須使用此字串：`"s3:ExistingObjectTag/servicecatalog:provisioning":"true"`。

1. 針對產品使用的每個額外服務，將一行新增至政策。例如，若要新增 Amazon Relational Database Service (Amazon RDS) 的許可，請在`Action`清單中最後一行的結尾輸入逗號，然後新增下列行：

   ```
   "rds:*"
   ```

1. 選擇 **Apply Policy** (套用政策) 

## 套用啟動限制
<a name="constraints-launch-constraint"></a>

設定啟動角色之後，請將角色指派給產品做為啟動限制條件。此動作 AWS Service Catalog 會指示 在最終使用者啟動產品時擔任該角色。

**將角色指派至產品**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1. 選擇包含該產品的產品組合。

1. 選擇 **Constraints (限制)** 索引標籤，並選擇 **Create constraint (建立限制)**。

1. 從產品中選擇**產品**，然後在**限制類型**下選擇**啟動**。選擇**繼續**。

1. 在**啟動限制區段**中，您可以從您的帳戶選取 IAM 角色，然後輸入 IAM 角色 ARN，或輸入角色名稱。

   如果您指定角色名稱，且帳戶使用啟動限制，則帳戶會針對 IAM 角色使用該名稱。此方法可讓啟動角色限制與帳戶無關，因此您可以為每個共用帳戶建立較少的資源。
**注意**  
指定的角色名稱必須存在於建立啟動限制的帳戶中，以及使用此啟動限制啟動產品的使用者帳戶中。

1. 指定 IAM 角色後，選擇 **Create (建立)**。

## 新增混淆代理人以啟動限制條件
<a name="constraint-confused-deputy"></a>

AWS Service Catalog 支援使用擔任角色請求執行APIs 的[混淆代理人](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)保護。當您新增啟動限制條件時，您可以使用啟動角色信任政策中的 `sourceAccount`和 `sourceArn`條件來限制啟動角色存取。它可確保由信任的來源呼叫啟動角色。

在下列範例中， AWS Service Catalog 最終使用者屬於帳戶 111111111111。當 AWS Service Catalog 管理員`LaunchConstraint`為產品建立 時，最終使用者可以在啟動角色信任政策中指定下列條件，將擔任角色限制為帳戶 111111111111。

```
"Condition":{
   "ArnLike":{
      "aws:SourceArn":"arn:aws:servicecatalog:us-east-1:111111111111:*"
   },
   "StringEquals":{
      "aws:SourceAccount":"111111111111"
   }
  
}
```

使用 佈建產品的使用者`LaunchConstraint`必須具有相同的 `AccountId` (111111111111)。如果沒有，操作會失敗並顯示`AccessDenied`錯誤，防止啟動角色濫用。

以下 AWS Service Catalog APIs受到混淆代理人保護：
+ `LaunchConstraint`
+ `ProvisionProduct`
+ `UpdateProvisionedProduct`
+ `TerminateProvisionedProduct`
+ `ExecuteProvisionedProductServiceAction`
+ `CreateProvisionedProductPlan`
+ `ExecuteProvisionedProductPlan`

的`sourceArn `保護 AWS Service Catalog 僅支援範本 ARNs，例如 "`arn:<aws-partition>:servicecatalog:<region>:<accountId>:`" 它不支援特定資源 ARNs。

## 驗證啟動限制條件
<a name="constraints-launch-test"></a>

若要驗證 AWS Service Catalog 使用 角色來啟動產品並成功佈建產品，請從 AWS Service Catalog 主控台啟動產品。若要在發佈至使用者之前測試限制，請建立包含相同產品的測試產品組合，然後以該產品組合測試限制。

**啟動產品**

1. 在 AWS Service Catalog 主控台的功能表中，選擇 **Service Catalog**，**最終使用者**。

1. 選擇產品以開啟**產品詳細資訊**頁面。在**啟動選項**表格中，確認角色的 Amazon Resource Name (ARN) 出現。

1. 選擇**啟動產品**。

1. 繼續啟動步驟，填寫任何必要的資訊。

1. 確認產品已成功啟動。

# AWS Service Catalog 通知限制條件
<a name="constraints-notification"></a>

**注意**  
AWS Service Catalog 不支援 Terraform Open Source 或 Terraform Cloud 產品的通知限制條件。

通知限制條件會指定 Amazon SNS 主題，以接收堆疊事件的通知。

使用下列程序以建立一個 SNS 主題並訂閱。

**建立 SNS 主題與訂閱。**

1. 在 [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) 開啟 Amazon SNS 主控台。

1. 請選擇**建立主題**。

1. 輸入主題名稱，然後選擇 **Create topic (建立主題)**。

1. 選擇**建立訂閱**。

1. 關於**通訊協定**，請選擇**電子郵件**。關於 **Endpoint**(端點)，輸入可用於接收通知的電子郵件地址。選擇 **Create subscription** (建立訂閱)。

1. 您將收到一封具有主旨行的確認電子郵件 `AWS Notification - Subscription Confirmation`。開啟電子郵件並遵循指示完成訂閱。

透過您用之前程序建立的 SNS 主題來使用下列程序以套用通知條件限制。

**套用通知限制條件至產品**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1. 選擇包含該產品的產品組合。

1. 展開 **Constraints (限制)**，然後選擇 **Add constraints (加入限制)**。

1. 從產品中選擇**產品**，並將**限制類型**設定為**通知**。選擇**繼續**。

1. 選擇 **Choose a topic from your account**(從帳戶選擇一個主題)，然後選取您從 **Topic Name** (主題名稱) 建立的 SNS 主題。

1. 選擇**提交**。

# AWS Service Catalog 標籤更新限制
<a name="constraints-resourceupdate"></a>

**注意**  
AWS Service Catalog 不支援 Terraform Open Source 產品的標籤更新限制條件。

透過標籤更新限制， AWS Service Catalog 管理員可以允許或不允許最終使用者更新與佈建產品相關聯資源的標籤。如果允許標籤更新，則與產品或產品組合相關聯的新標籤將在佈建產品更新期間套用至佈建的資源。

**啟用產品的標籤更新**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1. 選擇包含您要更新之產品的產品組合。

1. 選擇**限制條件**索引標籤，然後選擇**新增限制條件**。

1. 在 **Constraint type (限制類型)** 下，選擇 **Tag Update (標籤更新)**。

1. 從 **Product (產品)** 中選擇產品，然後選擇 **Continue (繼續)**。

1. 在 **Tag Updates (標籤更新) 頁面** 上，選取 **Enable Tag Updates (啟用標籤更新)**。

1. 選擇**提交**。

# AWS Service Catalog 堆疊集限制
<a name="constraints-stackset"></a>

**注意**  
AWS Service Catalog 不支援 Terraform Open Source 產品的堆疊集限制。
StackSets 目前不支援 AutoTags。 CloudFormation StackSets 

堆疊集限制允許您使用 CloudFormation StackSets，設定產品的部署選項。您可以指定多個帳戶和區域的產品啟動。最終使用者可以管理這些帳戶，並判斷產品部署的位置和部署順序。

**套用堆疊集限制至產品**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1. 使用您想要的產品選擇產品組合。

1. 選擇**限制條件**索引標籤，然後選擇**建立限制條件**。

1. 在**產品**中，選擇產品。在**限制類型**中，選擇**堆疊集**。

1. 設定堆疊集限制的帳戶、區域和許可。
   + 在**帳戶設定**中，識別您要建立產品的帳戶。
   + 在**區域設定**中，選擇要部署產品的地理區域，以及您希望在這些區域中部署這些產品的順序。
   + 在**許可**中，選擇 IAM StackSet 管理員角色來管理您的目標帳戶。如果您未選擇角色，StackSets 會使用預設 ARN。[進一步了解如何設定堆疊集許可。](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html)

1. 選擇**建立**。

# AWS Service Catalog 範本限制條件
<a name="catalogs_constraints_template-constraints"></a>

**注意**  
AWS Service Catalog 不支援 Terraform Open Source 或 Terraform Cloud 產品的範本限制條件。

若要限制最終使用者啟動產品的選項，您可以套用範本限制條件。套用範本限制條件以確保最終使用者可以使用產品，而不會違反您組織的合規要求。您可以將範本限制條件套用至 AWS Service Catalog 產品組合中的產品。產品組合必須包含一或多個產品，然後您才可以定義範本限制條件。

範本限制條件由一或多個規則組成，這些規則會縮小產品基礎 CloudFormation 範本中定義之參數的允許值。 CloudFormation 範本中的參數定義一組值，使用者可在建立堆疊時指定這些值。例如，參數可定義各種執行個體類型，讓使用者可在啟動堆疊時選擇，其中包含 EC2 執行個體。

如果範本中的一組參數值對於您的產品組合的目標對象而言太寬廣，您可以定義範本限制條件，以限制使用者在啟動產品時可選擇的值。例如，如果範本參數包含的 EC2 執行個體類型，對於只應使用小型執行個體類型 (例如，`t2.micro` 或 `t2.small`) 的使用者而言過大，則您可以新增範本限制條件，以限制最終使用者可選擇的執行個體類型。如需 CloudFormation 範本參數的詳細資訊，請參閱*CloudFormation 《 使用者指南*》中的[參數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html)。

範本限制條件會綁定在產品組合中。如果您將範本限制條件套用至一個產品組合，然後將該產品包含至另一個產品組合，則該限制將不會套用到第二個產品組合中的該產品。

如果您將範本限制條件套用至已與使用者共用的產品，則這些限制立即生效的範圍包括所有後續的產品啟動，以及產品組合中的所有產品版本。

您可以使用規則編輯器或在 AWS Service Catalog 管理員主控台中將規則寫入為 JSON 文字來定義範本限制規則。如需有關規則的詳細資訊，包括語法和範例，請參閱 [範本限制規則](reference-template_constraint_rules.md)。

若要在發佈至使用者之前測試限制，請建立包含相同產品的測試產品組合，然後以該產品組合測試限制。

**將範本限制條件套用至產品**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1. 在**產品組合**頁面上，選擇包含您要套用範本限制的產品的產品組合。

1. 展開**限制條件**區段，然後選擇**新增限制**條件。

1. 在**選取產品和類型**視窗中，針對**產品**選擇您要定義範本限制的產品。然後，針對**限制類型**，選擇**範本**。選擇**繼續**。

1. 在**範本限制條件建置器**頁面上，使用 JSON 編輯器或規則建置器界面編輯限制條件規則。
   + 若要編輯規則的 JSON 程式碼，請選擇**限制文字編輯器**索引標籤。此索引標籤提供數個範例以協助您開始使用。

     若要使用規則建置器界面建置規則，請選擇**規則建置器**標籤。在此索引標籤上，您可以選擇產品的範本中指定的任何參數，而且您可為該參數指定允許的值。根據參數的類型，您指定允許值的方式包括選擇檢查清單中的項目、直接指定數值，或在以逗號分隔的清單中指定一組值。

     完成規則的建置後，請選擇**新增規則**。規則會出現在**規則建置器**索引標籤的表格中。若要檢閱和編輯 JSON 輸出，請選擇**限制文字編輯器**索引標籤。

1. 當您完成編輯限制條件的規則時，請選擇**提交**。若要查看限制條件，請前往產品組合詳細資訊頁面並展開**限制條件**。

# 範本限制規則
<a name="reference-template_constraint_rules"></a>

定義 AWS Service Catalog 產品組合中範本限制的規則說明最終使用者何時可以使用範本，以及他們可以為用於建立其嘗試使用之產品之 CloudFormation 範本中宣告的參數指定哪些值。規則有助於防止最終使用者在無意間指定了錯誤的值。例如，您可以新增規則來驗證最終使用者是否在指定的 VPC 中指定有效的子網路，或測試環境使用的`m1.small`執行個體類型。在建立產品資源之前， CloudFormation 會使用規則來驗證參數值。

每個規則包含兩種屬性：規則條件 (選用) 和宣告 (必要)。規則條件決定規則是否生效。宣告說明了使用者可針對特定參數指定的值。如果您未定義規則條件，則該規則的宣告一律生效。若要定義規則條件，您可以使用*規則特定的內部函數*，這些函式只能在範本的 `Rules` 區塊中使用。您可以建立巢狀函式，但規則條件或宣告的最終結果必須為 true 或 false。

舉例來說，假設您在 `Parameters` 區塊中宣告了 VPC 和子網路參數。您可以建立一個規則，用來驗證特定的子網路是否在特定的 VPC 中。因此，當使用者指定 VPC 時， 會 CloudFormation 評估宣告，以在建立或更新堆疊之前檢查子網路參數值是否在該 VPC 中。如果參數值無效，則 CloudFormation 立即無法建立或更新堆疊。如果使用者未指定 VPC， CloudFormation 則不會檢查子網路參數值。

## 語法
<a name="template-constraint-rules-syntax"></a>

範本的 `Rules` 區塊包含了金鑰名稱 `Rules`，後面接著單一冒號。所有的規則宣告皆會以括弧括起。如果宣告多項規則，這些規則會以逗號分隔。對於每項規則，您會在引號中宣告其邏輯名稱，後面依序接著冒號和括號，括號之中是規則條件與宣告。

規則可包含 `RuleCondition` 屬性，而且必須包含 `Assertions` 屬性。針對每項規則，您只能定義一個規則條件；您可以在 `Assertions` 屬性中定義一個或多個宣告。您可以使用規則特定的內部函數，來定義規則條件和宣告，如下列的虛擬範本所示：

```
"Rules":{
   "Rule01":{
      "RuleCondition":{
         "Rule-specific intrinsic function"
      },
      "Assertions":[
         {
            "Assert":{
               "Rule-specific intrinsic function"
            },
            "AssertDescription":"Information about this assert"
         },
         {
            "Assert":{
               "Rule-specific intrinsic function"
            },
            "AssertDescription":"Information about this assert"
         }
      ]
   },
   "Rule02":{
      "Assertions":[
         {
            "Assert":{
               "Rule-specific intrinsic function"
            },
            "AssertDescription":"Information about this assert"
         }
      ]
   }
}
```

虛擬範本顯示包含兩個名為 `Rule01` 和 `Rule02` 規則的 `Rules` 區段。`Rule01` 包含規則條件和兩個聲明。如果規則條件中的函式計算結果為 true，則會評估和套用每個宣告中的兩種函式。如果規則條件為 false，該規則不會生效。`Rule02` 始終生效，因為它沒有規則條件，這表示一律評估和套用一個宣告。

如需定義規則條件和聲明的規則特定內部函數資訊，請參閱*AWS CloudFormation 《 使用者指南*》中的[AWS 規則函數](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-rules.html)。

## 範例：有條件地驗證參數值
<a name="template-constraint-rules-example"></a>

下列兩項規則會檢查 `InstanceType` 參數的值。視環境參數 (`test` 或 `prod`) 的值而定，使用者必須針對 `m1.small` 參數指定 `m1.large` 或 `InstanceType`。`InstanceType` 與 `Environment` 參數必須在同一個範本的 `Parameters` 區塊中宣告。

```
"Rules" : {
  "testInstanceType" : {
    "RuleCondition" : {"Fn::Equals":[{"Ref":"Environment"}, "test"]},
    "Assertions" : [
      {
        "Assert" :  { "Fn::Contains" : [ ["m1.small"], {"Ref" : "InstanceType"} ] },
        "AssertDescription" : "For the test environment, the instance type must be m1.small"
      }
    ]
  },
  "prodInstanceType" : {
    "RuleCondition" : {"Fn::Equals":[{"Ref":"Environment"}, "prod"]},
    "Assertions" : [
      {
        "Assert" :  { "Fn::Contains" : [ ["m1.large"], {"Ref" : "InstanceType"} ] },
        "AssertDescription" : "For the prod environment, the instance type must be m1.large"
      }
    ]
  }
}
```

# AWS Service Catalog 服務動作
<a name="using-service-actions"></a>

**注意**  
AWS Service Catalog 不支援 Terraform Open Source 或 Terraform Cloud 產品的服務動作。

AWS Service Catalog 可讓您減少管理維護和最終使用者訓練，同時遵守合規和安全措施。身為管理員的您可借助服務動作讓最終使用者執行操作式任務、排除問題、執行核准的命令，或在 AWS Service Catalog中請求許可。您可以使用 [AWS Systems Manager 文件](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ssm-docs.html) 定義服務動作。這些[AWS Systems Manager 文件](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ssm-docs.html)可讓您存取實作 AWS 最佳實務的預先定義動作，例如 Amazon EC2 停止和重新啟動，您也可以定義自訂動作。

在本教學課程中，您會為最終使用者提供重新啟動 Amazon EC2 執行個體的能力。您新增必要的許可、定義服務動作、為服務動作與產品建立關聯，以及透過佈建的產品，利用動作來測試最終使用者體驗。

## 先決條件
<a name="service-actions-prerequisites"></a>

本教學假設您擁有完整的 AWS 管理員許可、已經熟悉 AWS Service Catalog，而且已經擁有一組基本產品、產品組合和使用者。如果您不熟悉 AWS Service Catalog，請先完成[設定](setup.md) 和 [開始使用](getstarted.md)任務，再使用此教學課程。

**Topics**
+ [先決條件](#service-actions-prerequisites)
+ [步驟 1：設定最終使用者許可](#service-actions-configure-end-user-permissions)
+ [步驟 2：建立服務動作](#service-actions-create-new-service-action)
+ [步驟 3：將服務動作與產品版本建立關聯](#service-actions-associate-with-product-version)
+ [步驟 4：測試最終使用者體驗](#service-actions-test-end-user-experience)
+ [步驟 5：使用 管理服務動作 AWS CloudFormation](#service-actions-cloudformation)
+ [步驟 6：故障診斷](#service-actions-troubleshooting)

## 步驟 1：設定最終使用者許可
<a name="service-actions-configure-end-user-permissions"></a>

最終使用者必須擁有必要的許可，才能檢視和執行特定的服務動作。在此範例中，最終使用者需要存取 AWS Service Catalog 服務動作功能和執行 Amazon EC2 重新啟動的許可。

**更新權限**

1. 開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 AWS Identity and Access Management (IAM) 主控台。

1. 從功能表中，尋找使用者群組。

1. 選擇最終使用者將用於存取 AWS Service Catalog 資源的群組。在這個範例中，我們選擇最終使用者群組。在您自己的實作中，選擇相關的最終使用者所使用的群組。

1. 在群組的詳細資訊頁面的 **Permissions (許可)** 標籤上，可以建立新政策，或編輯現有的政策。在此範例中，我們透過選取為群組佈建 AWS Service Catalog 和終止許可建立的自訂政策，將許可新增至現有政策。

1. 在 **Policy (政策)** 頁面上，選擇 **Edit Policy (編輯政策)** 以新增必要的許可。您可以使用視覺化編輯器或 JSON 編輯器來編輯政策。在這個範例中，我們使用 JSON 編輯器來新增權限。對於此教學課程，將下列政策加入到許可中：

------
#### [ JSON ]

****  

   ```
   {
   	"Version":"2012-10-17",		 	 	 
   	"Statement": [
   		{
   			"Sid": "Stmt1536341175150",
   			"Action": [
   				"servicecatalog:ListServiceActionsForProvisioningArtifact",
   				"servicecatalog:ExecuteprovisionedProductServiceAction",
   				"ssm:DescribeDocument",
   				"ssm:GetAutomationExecution",
   				"ssm:StartAutomationExecution",
   				"ssm:StopAutomationExecution",
   				"cloudformation:ListStackResources",
   				"ec2:DescribeInstanceStatus",
   				"ec2:StartInstances",
   				"ec2:StopInstances"
   			],
   			"Effect": "Allow",
   			"Resource": "*"
   		}
   	]
   }
   ```

------

1. 在編輯政策後，審核及核准政策的變更。最終使用者群組中的使用者現在擁有在 中執行 Amazon EC2 重新啟動動作的必要許可 AWS Service Catalog。

## 步驟 2：建立服務動作
<a name="service-actions-create-new-service-action"></a>

接著，建立服務動作以重新啟動 Amazon EC2 執行個體。

1. 在 https：//[https://console.aws.amazon.com/sc/](https://console.aws.amazon.com/servicecatalog/) 開啟 AWS Service Catalog 主控台。

1. 從功能表中選擇 **Service actions (服務動作)**。

1. 在**服務動作**頁面上，選擇**建立動作**。

1. 在**建立動作**頁面上，選擇 AWS Systems Manager 文件以定義服務動作。Amazon EC2 執行個體重新啟動動作是由 AWS Systems Manager 文件定義，因此我們會在下拉式功能表 **Amazon 文件**上保留預設選項。

1. 搜尋並選擇 **AWS-RestartEC2Instance** 動作。

1. 提供符合您環境和團隊動作的名稱和描述。最終使用者將會看到此描述，因此選擇可協助他們了解動作的選項。

1. 在**參數和目標組態**下，選擇將成為動作目標的 SSM 文件參數 （例如**執行個體 ID**)，然後選擇參數的目標。選擇 **Add parameter (新增參數)** 以新增其他參數。

1. 在 **Permissions (許可)** 下，選擇角色。我們為此範例使用預設的許可。此頁面可設定及定義其他許可組態。

1. 檢閱組態之後，可選擇 **Create action (建立動作)**。

1. 到了下一頁，當建立好動作並準備好開始使用時，出現確認訊息。

## 步驟 3：將服務動作與產品版本建立關聯
<a name="service-actions-associate-with-product-version"></a>

在您定義動作後，您必須為產品與該動作建立關聯。

1. 在**服務動作**頁面上，選擇 **AWS-RestartEC2instance**，然後選擇**關聯動作**。

1. 在 **Associate action (關聯動作)** 頁面，選擇您希望您的最終使用者採取服務動作的產品。在這個範例中，我們選擇 **Linux Desktop (Linux 桌面)**。

1. 選擇產品版本。請注意，您可以使用最上面的核取方塊來選取所有的版本。

1. 選擇 **Associate action (建立關聯)**。

1. 在下一頁出現確認訊息。

現在您已經在 AWS Service Catalog建立服務動作。此教學課程的下一步是以最終使用者身分使用服務動作。

## 步驟 4：測試最終使用者體驗
<a name="service-actions-test-end-user-experience"></a>

最終使用者可以在佈建的產品上執行服務動作。基於此教學課程的目的，最終使用者必須至少有一項佈建的產品。已佈建產品應該從您在之前步驟與服務動作關聯之產品版本啟動。

**以最終使用者身分存取服務動作**

1. 以最終使用者身分登入 AWS Service Catalog 主控台。

1. 在 AWS Service Catalog 儀表板的導覽窗格中，選擇**佈建產品清單**。此清單會顯示為最終使用者帳戶佈建的產品。

1. 在 **Provisioned products list (佈建產品清單)** 頁面上，選擇已佈建的執行個體。

1. 在**佈建產品詳細資訊**頁面上，選擇右上角**的動作**，然後選擇 **AWS-RestartEC2instance** 動作。

1. 確認您要執行自訂動作。您收到確認表示動作已傳送。

## 步驟 5：使用 管理服務動作 AWS CloudFormation
<a name="service-actions-cloudformation"></a>

 您可以建立服務動作及其與 AWS CloudFormation 資源的關聯。如需詳細資訊，請參閱《AWS CloudFormation 使用者指南》** 中的下列主題：
+  [AWS::ServiceCatalog::CloudFormationProduct ProvisioningArtifactProperties](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-servicecatalog-cloudformationproduct-provisioningartifactproperties.html) 
+  [AWS::ServiceCatalog::ServiceActionAssociation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-servicecatalog-serviceactionassociation.html) 

**注意**  
 如果您管理服務動作與 CloudFormation 資源的關聯，請勿透過 AWS Command Line Interface 或 新增或移除服務動作 AWS 管理主控台。當您執行堆疊更新時，在 外部 CloudFormation 對 服務動作所做的任何變更都會遭到取代。

## 步驟 6：故障診斷
<a name="service-actions-troubleshooting"></a>

如果您的服務動作執行失敗，您可以在**佈建產品**頁面上服務動作執行事件的**輸出**區段中找到錯誤訊息。您可以在下方看到常見錯誤訊息的說明。

**注意**  
錯誤消息的確切文本可能會改變，因此您應該避免在任何類型的自動化過程中使用這些文本。

 **內部錯誤**

AWS Service Catalog 發生內部錯誤。請稍後再試。如果問題持續發生，請聯絡客戶支援。

 **呼叫 StartAutomationExecution 作業時發生錯誤 (ThrottlingException)**

服務動作執行是由後端服務調節，例如 SSM。

 **假設角色時拒絕存取**

 AWS Service Catalog 無法擔任服務動作定義中指定的角色。請確定 *servicecatalog.amazonaws.com* 委託人或 *servicecatalog.us-east-1.amazonaws.com* 等區域委託人被允許列在角色的信任政策中。

 **呼叫 StartAutomationExecution 作業時發生錯誤 (AccessDeniedException)：使用者未授權在資源上執行 ssm:StartAutomationExecution。**

服務動作定義中指定的角色沒有叫用 ssm:StartAutomationExecution。確定角色具有適當的 SSM 許可。

 **在佈建的產品中找不到具有 *TargetType* 類型的任何資源**

佈建的產品不包含任何符合 SSM 文件中所指定目標類型的資源，例如 AWS：：EC2：：Instance。請檢查佈建的產品是否有這些資源，或確認文件是否正確。

 **具有該名稱的文件不存在**

服務動作定義中指定的文件不存在。

 **無法描述 SSM 自動化文件**

AWS Service Catalog 嘗試描述指定的文件時，SSM 遇到不明的例外狀況。

 **無法擷取角色的認證**

AWS Service Catalog 擔任指定角色時遇到未知錯誤。

 **參數在 \$1*InvalidValue*1\$1、\$1ValidValue2\$1 中找不到值 "InvalidValue" *ValidValue1ValidValue2***

 傳遞給 SSM 的參數值不在文件允許的值清單中。確認提供的參數有效，然後再試一次。

 **參數類型錯誤。*ParameterName*提供的值不是有效的字串。**

傳遞給 SSM 的 參數值對文件上的 類型無效。

 **未在服務動作定義中定義參數**

參數已傳遞至 AWS Service Catalog 未在服務動作定義中定義的 。您只能使用在服務動作定義中定義的參數。

 **步驟在執行/取消動作時失敗。*錯誤訊息。*如需診斷詳細資訊，請參閱 Automation Service 故障診斷指南。**

 SSM 自動化文件中的步驟失敗。請參閱訊息中的錯誤，以進一步疑難排解。

 **不允許參數的下列值，因為它們不在佈建的產品中：*InvalidResourceId***

使用者要求對不在佈建產品中的資源執行動作。

 **SSM 自動化文件未定義的 TargetType**

服務動作需要 SSM 自動化文件定義 TargetType。檢查您的 SSM 自動化文件。

# 將 AWS Marketplace 產品新增至您的產品組合
<a name="catalogs_marketplace-products"></a>

您可以將 AWS Marketplace 產品新增至您的產品組合，讓這些產品可供最終 AWS Service Catalog 使用者使用。

AWS Marketplace 是線上商店，您可以在其中尋找、訂閱並立即開始使用大量軟體和服務。中的產品類型 AWS Marketplace 包括資料庫、應用程式伺服器、測試工具、監控工具、內容管理工具和商業智慧軟體。 AWS Marketplace 可在 取得[https://aws.amazon.com/marketplace](https://aws.amazon.com/marketplace)。請注意，您無法將軟體即服務 (SaaS) 產品從 新增至 AWS Marketplace AWS Service Catalog。

您可以使用 範本將產品 CloudFormation 複製到 AWS Service Catalog，然後將產品新增至產品組合，以將產品分發給 AWS Marketplace AWS Service Catalog 最終使用者。

**注意**  
AWS Service Catalog 不支援使用 Terraform Open Source 或 Terraform Cloud AWS Marketplace 產品範本將產品分發給 AWS Service Catalog 最終使用者。

AWS Marketplace AWS Service Catalog 直接支援 或使用手動選項訂閱和新增產品。我們建議您使用專為 設計的功能來新增產品 AWS Service Catalog。

## 使用 管理 AWS Marketplace 產品 AWS Service Catalog
<a name="catalogs_marketplace-sc"></a>

您可以使用自訂界面 AWS Service Catalog ，將訂閱 AWS Marketplace 的產品直接新增至 。在 [AWS Marketplace](https://aws.amazon.com/marketplace) 中，選擇 **Service Catalog (服務目錄)**。如需詳細資訊，請參閱 *AWS Marketplace 說明和常見問答集*中的將[產品複製到 AWS Service Catalog](https://aws.amazon.com/marketplace/help/buyer-copy-product-to-SC?ref=help_ln_sibling) 。

## 手動管理和新增 AWS Marketplace 產品
<a name="catalogs_marketplace-manual"></a>

完成下列步驟以訂閱 AWS Marketplace 產品、在 CloudFormation 範本中定義該產品，並將範本新增至 AWS Service Catalog 產品組合。

**訂閱 AWS Marketplace 產品**

1. 前往 AWS Marketplace 。 [https://aws.amazon.com/marketplace](https://aws.amazon.com/marketplace)

1. 瀏覽該產品或搜尋以尋找您要新增至 AWS Service Catalog 產品組合的產品。選擇產品以檢視產品詳細資訊頁面。

1. 選擇**繼續**以檢視履行頁面，然後選擇**手動啟動**索引標籤。

   履行頁面上的資訊包括支援的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體類型、支援的 AWS 區域和產品用於每個 AWS 區域的 Amazon Machine Image (AMI) ID。請注意，部分選擇將會影響成本。您將使用此資訊在後續步驟中自訂 CloudFormation 範本。

1. 選擇 [**接受條款**] 以訂閱該產品。

   訂閱產品後，您可以隨時選擇**您的軟體**，然後選擇產品， AWS Marketplace 以存取 中產品履行頁面上的資訊。

**在 CloudFormation 範本中定義您的 AWS Marketplace 產品**

若要完成下列步驟，您將使用其中一個 CloudFormation 範例範本做為起點，而且您將自訂範本，使其代表您 AWS Marketplace 的產品。若要存取範例範本，請參閱 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-sample-templates.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-sample-templates.html) 使用者指南*中的AWS CloudFormation 範例範本*。

1. 在 * CloudFormation 使用者指南*的範例範本頁面上，為您的產品選擇 AWS 區域。您的 AWS Marketplace 產品必須支援 AWS 區域。您可以在 AWS Marketplace的產品履行頁面上檢視受支援的區域。

1. 若要檢視適合該區域的服務範例範本清單，請選擇**服務**連結。

1. 您可以使用任何適合您需求的範本做為開始點。在此程序中的步驟使用**安全群組中的 Amazon EC2 執行個體**範本。若要檢視範例範本，請選擇 [**檢視**]，然後將範本副本儲存在本機，如此您就可以進行編輯。您的本機檔案必須擁有 `.template` 延伸模組。

1. 在文字編輯器中開啟範本檔案。

1. 在範本頂部自訂說明。您的說明看起來可能會與以下範例類似：

   `"Description": "Launches a LAMP stack from AWS Marketplace",`

1. 自訂 `InstanceType` 參數，讓其僅包含受您產品支援的 EC2 執行個體類型。若您的範本包含未受支援的 EC2 執行個體類型，產品將會無法為最終使用者啟動。

   1. 在 中的產品履行頁面上 AWS Marketplace，檢視**定價詳細資訊**區段中支援的 EC2 執行個體類型。  
![\[中的產品履行頁面上的定價詳細資訊區段 AWS Marketplace 會顯示支援的 EC2 執行個體類型。\]](http://docs.aws.amazon.com/zh_tw/servicecatalog/latest/adminguide/images/ec2-ondemand.png)

   1. 在您的範本中，將預設執行個體類型變更為您選擇的受支援 EC2 執行個體類型。

   1. 編輯 `AllowedValues` 清單，讓其僅包含受您產品支援的 EC2 執行個體類型。

   1. 移除任何您不希望最終使用者在從 `AllowedValues` 清單中啟動產品時使用的 EC2 執行個體類型。

   在編輯 `InstanceType` 參數時，其看起來可能會與以下範例類似：

   ```
       "InstanceType" : {
         "Description" : "EC2 instance type",
         "Type" : "String",
         "Default" : "m1.small",
         "AllowedValues" : [ "t1.micro", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "c1.medium", "c1.xlarge", "c3.large", "c3.large", "c3.xlarge", "c3.xlarge", "c3.4xlarge", "c3.8xlarge" ],
         "ConstraintDescription" : "Must be a valid EC2 instance type."
       },
   ```

1. 在範本的 `Mappings` 區段中，編輯 `AWSInstanceType2Arch` 對應，如此僅包含受支援的 EC2 執行個體類型與基礎結構。

   1. 透過移除 `AllowedValues` 參數 `InstanceType` 清單中不包含的所有 EC2 執行個體類型，編輯對應清單。

   1. 為每個要成為基礎結構類型的 EC2 執行個體類型編輯 `Arch` 值，該基礎結構類型會受您產品的支援。有效值為 `PV64`、`HVM64` 和 `HVMG2`。若要了解您產品支援哪些基礎結構，請參閱 AWS Marketplace中的產品詳細資訊。若要了解 EC2 執行個體系列支援哪些基礎結構，請參閱 [Amazon Linux AMI 執行個體類型矩陣](https://aws.amazon.com/amazon-linux-ami/instance-type-matrix/)。

   在您完成編輯 `AWSInstanceType2Arch` 對應時，其看起來可能會與以下範例類似：

   ```
       "AWSInstanceType2Arch" : {
         "t1.micro"    : { "Arch" : "PV64"  },
         "m1.small"    : { "Arch" : "PV64"  },
         "m1.medium"   : { "Arch" : "PV64"  },
         "m1.large"    : { "Arch" : "PV64"  },
         "m1.xlarge"   : { "Arch" : "PV64"  },
         "m2.xlarge"   : { "Arch" : "PV64"  },
         "m2.2xlarge"  : { "Arch" : "PV64"  },
         "m2.4xlarge"  : { "Arch" : "PV64"  },
         "c1.medium"   : { "Arch" : "PV64"  },
         "c1.xlarge"   : { "Arch" : "PV64"  },
         "c3.large"    : { "Arch" : "PV64"  },
         "c3.xlarge"   : { "Arch" : "PV64"  },
         "c3.2xlarge"  : { "Arch" : "PV64"  },
         "c3.4xlarge"  : { "Arch" : "PV64"  },
         "c3.8xlarge"  : { "Arch" : "PV64"  }
       }
   ,
   ```

1. 在範本的 `Mappings`區段中，編輯`AWSRegionArch2AMI`映射，將每個 AWS 區域與您產品的對應架構和 AMI ID 建立關聯。

   1. 在 中的產品履行頁面上 AWS Marketplace，檢視您的產品用於每個 AWS 區域的 AMI ID，如下列範例所示：

         
![\[中產品履行頁面上的區域和 AMI IDs 資料表 AWS Marketplace。\]](http://docs.aws.amazon.com/zh_tw/servicecatalog/latest/adminguide/images/sc-marketplace_ami_ids-console.png)

   1. 在範本中，移除您不支援的任何 AWS 區域的映射。

   1. 為每個區域編輯對應以移除未受支援的基礎結構 (`PV64`、`HVM64` 或 `HVMG2`) 和其關聯的 AMI ID。

   1. 對於每個剩餘的 AWS 區域和架構映射，從其中的產品詳細資訊頁面指定對應的 AMI ID AWS Marketplace。

   當您完成編輯 `AWSRegionArch2AMI` 對應時，您的程式碼看起來可能與以下範例類似：

   ```
       "AWSRegionArch2AMI" : {
         "us-east-1"        : {"PV64" : "ami-nnnnnnnn"},
         "us-west-2"        : {"PV64" : "ami-nnnnnnnn"},
         "us-west-1"        : {"PV64" : "ami-nnnnnnnn"},
         "eu-west-1"        : {"PV64" : "ami-nnnnnnnn"},
         "eu-central-1"     : {"PV64" : "ami-nnnnnnnn"},
         "ap-northeast-1"   : {"PV64" : "ami-nnnnnnnn"},
         "ap-southeast-1"   : {"PV64" : "ami-nnnnnnnn"},
         "ap-southeast-2"   : {"PV64" : "ami-nnnnnnnn"},
         "sa-east-1"        : {"PV64" : "ami-nnnnnnnn"}
       }
   ```

   您現在可以使用 範本將產品新增至 AWS Service Catalog 產品組合。如果您希望進行其他變更，請參閱[使用 CloudFormation 範本](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)以進一步了解範本的詳細資訊。

**將 AWS Marketplace 產品新增至 AWS Service Catalog 產品組合**

1. 登入 AWS 管理主控台 並導覽至 AWS Service Catalog 管理員主控台，網址為 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)。

1. 在**產品組合**頁面上，選擇您要新增產品的 AWS Marketplace 產品組合。

1. 在產品組合詳細資訊頁面上，選擇**上傳新產品**。

1. 輸入要求的產品與支援的詳細資訊。

1. 在 [**版本詳細資訊**] 頁面中，依序選擇 [**上傳範本檔案**]、[**瀏覽**] 然後選擇範本檔案。

1. 輸入版本標題與說明。

1. 選擇**下一步**。

1. 在**檢閱**頁面上，驗證摘要是否正確，然後選擇**確認並上傳**。該產品會新增至您的產品組合。有權存取產品組合的最終使用者即可使用。

# 使用 CloudFormation StackSets
<a name="using-stacksets"></a>

**注意**  
StackSets 目前不支援 AutoTags。 CloudFormation StackSets 

您可以使用 CloudFormation StackSets 跨多個 AWS 區域 和 帳戶啟動 AWS Service Catalog 產品。您可以指定產品在其中循序部署的順序 AWS 區域。在多個帳戶中，產品為平行部署。啟動時，使用者可指定容錯能力和最大帳戶數量，以用來進行部署。如需詳細資訊，請參閱[使用 CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)。

## 堆疊集與堆疊執行個體
<a name="stacksets-vs-stack-instances"></a>

*堆疊集*可讓您使用單一 CloudFormation 範本，在跨 AWS 區域的 AWS 帳戶中建立堆疊。

*堆疊執行個體*是指 AWS 區域內目標帳戶中的堆疊，並且只與一個堆疊集相關聯。

如需詳細資訊，請參閱 [StackSets 概念](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html)。

## 堆疊集限制
<a name="stackset-constraints"></a>

在 中 AWS Service Catalog，您可以使用堆疊集限制條件來設定產品部署選項。

 AWS Service Catalog 支援兩個 AWS GovCloud (US) Regions： AWS GovCloud （美國西部） 和 AWS GovCloud （美國東部） 中產品的堆疊集限制。

如需詳細資訊，請參閱[AWS Service Catalog 堆疊集限制。](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-stackset.html)

# 管理預算
<a name="catalogs_budgets"></a>

您可以使用 AWS Budgets 來追蹤其中的服務成本和用量 AWS Service Catalog。您可以將預算與 AWS Service Catalog 產品和產品組合建立關聯。

**注意**  
AWS Service Catalog 不支援 Terraform Open Source 產品的預算。

AWS 預算可讓您設定自訂預算，在成本或用量超過 （或預測超過） 預算金額時提醒您。如需 AWS Budgets 的相關資訊，請參閱 [https://aws.amazon.com/aws-cost-management/aws-budgets](https://aws.amazon.com/aws-cost-management/aws-budgets)。

**Topics**
+ [先決條件](#budgets-setup)
+ [建立預算](#budgets-create)
+ [關聯預算](#budgets-associate)
+ [檢視預算](#budgets-view)
+ [取消關聯預算](#budgets-disassociate)

## 先決條件
<a name="budgets-setup"></a>

在使用 AWS Budgets 之前，您需要在 AWS 帳單與成本管理 主控台中啟用成本分配標籤。如需詳細資訊，請參閱*「AWS 帳單與成本管理 使用者指南」*中的[啟用使用者定義的成本分配標籤](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/activating-tags.html)。

**注意**  
標籤最多需要 24 小時才能啟用。

您也需要為將使用 Budgets 功能的任何使用者或群組啟用 AWS 帳單與成本管理 主控台的使用者存取權。您可以為使用者建立新的政策來執行此作業。

若要允許 使用者建立預算，您也必須允許使用者檢視帳單資訊。如果您想要使用 Amazon SNS 通知，您可以讓使用者能夠建立 Amazon SNS 通知，如以下政策範例所示。

**建立預算政策**

1. 前往 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格上選擇 **Policies (政策)**。

1. 在內容窗格中，選擇 **Create policy (建立政策)**。

1. 選擇 **JSON** 標籤並從下列 JSON 政策文件複製文字。將此文字貼上至 **JSON** 文字方框中。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Stmt1435216493000",
               "Effect": "Allow",
               "Action": [
                   "aws-portal:ViewBilling",
                   "aws-portal:ModifyBilling",
                   "budgets:ViewBudget",
                   "budgets:ModifyBudget"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Sid": "Stmt1435216552000",
               "Effect": "Allow",
               "Action": [
                   "sns:*"
               ],
               "Resource": [
                   "arn:aws:sns:us-east-1:123456789012:*"
               ]
           }
       ]
   }
   ```

------

1. 完成時，選擇 **Review policy** (檢閱政策)。Policy Validator (政策檢查工具) 會回報任何語法錯誤。

1. 在 **Review (檢閱)** 頁面上，為您的政策命名。檢閱政策 **Summary (摘要)** 以查看政策授與的許可，然後選擇 **Create policy (建立政策)** 來儲存您的工作。

   新的政策會出現在受管政策清單中，並且已準備好連接至您的使用者和群組。如需詳細資訊，請參閱*AWS Identity and Access Management 《 使用者指南*》中的[建立和連接客戶受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html#step2-attach-policy)。

## 建立預算
<a name="budgets-create"></a>

 在 AWS Service Catalog 管理員主控台中，**產品清單**和**產品組合**頁面會列出現有產品和產品組合的相關資訊，並允許您對其採取動作。若要建立預算，請先決定要與預算建立關聯的產品或產品組合。

**若要建立預算**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1.  選擇**產品清單**或**產品組合**。

1.  選取您要新增預算的產品或產品組合。

1.  開啟**動作**功能表，然後選擇**建立預算**。

1.  在 **Budget creation (預算建立)** 頁面上，將一種標籤類型與預算建立關聯。

    標籤有兩種類型：AutoTags 和 TagOptions。AutoTags 會識別啟動產品的產品組合、產品和使用者。 會自動將這些標籤 AWS Service Catalog 套用至佈建的資源。TagOption 是在 中管理的管理員定義鍵/值對 AWS Service Catalog。

    為了讓產品組合或產品上的花費能夠反映相關預算，它們必須擁有相同的標籤。請注意，第一次使用的標籤鍵可能需要 24 小時才能啟用。如需詳細資訊，請參閱[先決條件](#budgets-setup)。

1.  選擇**建立。 AWS Budgets**系統會將您導向至**設定預算**頁面。請依照建立預算中的[步驟繼續設定您的預算](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/budgets-create.html)。

**注意**  
 建立預算之後，您必須將其與產品或產品組合建立關聯。

## 關聯預算
<a name="budgets-associate"></a>

 每個產品組合或產品都可以有一個相關聯的預算。每個預算都可以與多個產品組合和產品相關聯。

 當您將預算與產品組合或產品建立關聯時，您可以從該產品組合或產品的詳細資訊頁面檢視預算的相關資訊。為了讓產品組合或產品上發生的支出反映在預算上，您必須在預算和產品組合或產品上關聯相同的標籤。

**注意**  
 如果您從中刪除預算 AWS Budgets，與 AWS Service Catalog 產品和產品組合的現有關聯仍然存在。 AWS Service Catalog 將無法顯示有關已刪除預算的任何資訊。

**關聯預算**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 Service Catalog 主控台。

1.  選擇**產品清單**或**產品組合**。

1.  選取您要與預算建立關聯的產品或產品組合。

1.  開啟**動作**功能表，然後選擇**關聯預算**。

1.  在**預算關聯**頁面上，選取現有的預算，然後選擇**繼續**。

1.  **產品或****產品組合**資料表現在包含您剛新增預算的資料。

## 檢視預算
<a name="budgets-view"></a>

 如果預算與產品相關聯，您可以在**產品詳細資訊**和**產品清單**頁面上檢視預算的相關資訊。如果預算與產品組合相關聯，您可以在**產品組合**和**產品組合詳細資訊**頁面上檢視預算的相關資訊。

 **產品組合**和**產品清單**頁面會顯示現有資源的預算資訊。您可以看到顯示 **Current vs. budget (目前與預算)** 和 **Forecast vs. budget (預測與預算)** 的欄。

 當您選擇產品或產品組合時，系統會將您導向詳細資訊頁面。**產品組合詳細資訊**和**產品詳細資訊**頁面包含包含相關預算詳細資訊的區段。您可以查看預算金額、目前花費和預測費用。您也可以選擇檢視預算詳細資訊以及編輯預算。

## 取消關聯預算
<a name="budgets-disassociate"></a>

 您可以取消預算與產品組合或產品的關聯。

**注意**  
 如果您從 AWS 預算中刪除預算，與 AWS Service Catalog 產品和產品組合的現有關聯仍然存在。 AWS Service Catalog 將無法顯示有關已刪除預算的任何資訊。

**取消關聯預算**

1. 開啟位於 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 的 Service Catalog 主控台。

1.  選擇**產品清單**或**產品組合**。

1.  選取您要取消預算關聯的產品或產品組合。

1.  選擇**動作**。從下拉式清單中，選擇**取消預算的關聯**。確認提醒隨即出現。

1.  在您確認想要從產品或產品組合取消預算之後，請選擇**確認**。