

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

# 開始使用
<a name="getstarted"></a>

 您可以使用 AWS Service Catalog 入門程式庫中架構良好的其中一個產品範本，或依照其中一個入門教學課程中的步驟來開始使用 。

 在教學課程中，您會以目錄管理員和最終使用者身分執行任務。身為目錄管理員，您可以建立產品組合，然後建立產品。身為最終使用者，您可以驗證您可以存取最終使用者主控台並啟動產品。產品為下列其中一項：
+ 在 Amazon Linux 上執行的雲端開發環境，以定義產品可使用之 AWS 資源的 CloudFormation 範本為基礎。
+ 在 Terraform 佈建引擎上執行的開放原始碼環境，以定義產品可使用之 AWS 資源的 tar.gz 組態檔案為基礎。

**注意**  
 開始之前，請確定您已完成 中的動作項目[設定 AWS Service Catalog](setup.md)。

**Topics**
+ [入門資源庫](getstarted-library.md)
+ [CloudFormation 產品入門](getstarted-CFN.md)
+ [Terraform 產品入門](getstarted-Terraform.md)

# 入門資源庫
<a name="getstarted-library"></a>

 AWS Service Catalog 提供架構良好的產品範本入門程式庫，讓您可以快速入門。您可以將入門資源庫產品組合中的任何產品複製到您自己的帳戶中，然後根據您的需求進行自訂。

**Topics**
+ [先決條件](#getting-started-library-prereqs)
+ [進一步了解](#getting-started-library-learn-more)

## 先決條件
<a name="getting-started-library-prereqs"></a>

 在使用我們的入門資源庫中的範本之前，請確定您擁有下列項目：
+ 使用 CloudFormation 範本所需的許可。如需詳細資訊，請參閱[使用 控制存取 AWS Identity and Access Management](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)。
+ 管理 AWS Service Catalog所需的管理員許可。如需詳細資訊，請參閱[中的 Identity and Access Management AWS Service Catalog](controlling_access.md)。

## 進一步了解
<a name="getting-started-library-learn-more"></a>

如需架構良好的詳細資訊，請參閱 [AWS Well-Architected](https://aws.amazon.com/architecture/well-architected/)。

# CloudFormation 產品入門
<a name="getstarted-CFN"></a>

 您可以使用 AWS Service Catalog 入門程式庫中架構良好的其中一個產品範本，或依照入門教學課程中的步驟來開始使用 。

 在教學課程中，您會以目錄管理員和最終使用者身分執行任務。身為目錄管理員，您可以建立 porfolio，然後建立產品。身為最終使用者，您可以驗證您可以存取最終使用者主控台並啟動產品。產品是在 Amazon Linux 上執行的雲端開發環境，以定義產品可使用之 AWS 資源的 CloudFormation 範本為基礎。

**注意**  
 開始之前，請確定您已完成 中的動作項目[設定 AWS Service Catalog](setup.md)。

**Topics**
+ [步驟 1：下載 CloudFormation 範本](getstarted-template.md)
+ [步驟 2：建立金鑰對](getstarted-keypair.md)
+ [步驟 3：建立產品組合](getstarted-portfolio.md)
+ [步驟 4：在產品組合中建立新的產品](getstarted-product.md)
+ [步驟 5：新增範本限制條件以限制執行個體大小](getstarted-constraint.md)
+ [步驟 6：新增啟動限制以指派 IAM 角色](getstarted-launchconstraint.md)
+ [步驟 7：授予最終使用者對產品組合的存取權](getstarted-deploy.md)
+ [步驟 8：測試最終使用者體驗](getstarted-verify.md)

# 步驟 1：下載 CloudFormation 範本
<a name="getstarted-template"></a>

 您可以使用 CloudFormation 範本來設定和佈建產品組合和產品。這些範本是文字檔案，可以 JSON 或 YAML 格式，並描述您要佈建的資源。如需詳細資訊，請參閱 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-formats.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-formats.html) 使用者指南*中的CloudFormation 範本格式*。您可以使用編輯器 AWS CloudFormation 或您選擇的文字編輯器來建立和儲存範本。在本教學課程中，我們提供簡單的範本，讓您可以開始使用。範本會啟動針對 SSH 存取設定的單一 Linux 執行個體。

**注意**  
 使用 CloudFormation 範本需要特殊許可。開始之前，請確定您擁有正確的許可。如需詳細資訊，請參閱 中的先決條件[入門資源庫](getstarted-library.md)。

## 範本下載
<a name="template-download"></a>

此教學課程提供的範例範本 `development-environment.template`可在 https：//[https://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.template](https://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.template) 取得。

## 範本概觀
<a name="template-overview"></a>

範例範本的文字如下所示：

```
{
  "AWSTemplateFormatVersion" : "2010-09-09",

  "Description" : "AWS Service Catalog sample template. Creates an Amazon EC2 instance 
                    running the Amazon Linux AMI. The AMI is chosen based on the region 
                    in which the stack is run. This example creates an EC2 security 
                    group for the instance to give you SSH access. **WARNING** This 
                    template creates an Amazon EC2 instance. You will be billed for the AWS resources used if you create a stack from this template.",

  "Parameters" : {
    "KeyName": {
      "Description" : "Name of an existing EC2 key pair for SSH access to the EC2 instance.",
      "Type": "AWS::EC2::KeyPair::KeyName"
    },

    "InstanceType" : {
      "Description" : "EC2 instance type.",
      "Type" : "String",
      "Default" : "t2.micro",
      "AllowedValues" : [ "t2.micro", "t2.small", "t2.medium", "m3.medium", "m3.large", 
        "m3.xlarge", "m3.2xlarge" ]
    },

    "SSHLocation" : {
      "Description" : "The IP address range that can SSH to the EC2 instance.",
      "Type": "String",
      "MinLength": "9",
      "MaxLength": "18",
      "Default": "0.0.0.0/0",
      "AllowedPattern": "(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})/(\\d{1,2})",
      "ConstraintDescription": "Must be a valid IP CIDR range of the form x.x.x.x/x."
   }
  },

  "Metadata" : {
    "AWS::CloudFormation::Interface" : {
      "ParameterGroups" : [{
        "Label" : {"default": "Instance configuration"},
        "Parameters" : ["InstanceType"]
      },{
        "Label" : {"default": "Security configuration"},
        "Parameters" : ["KeyName", "SSHLocation"]
      }],
      "ParameterLabels" : {
        "InstanceType": {"default": "Server size:"},
        "KeyName": {"default": "Key pair:"},
        "SSHLocation": {"default": "CIDR range:"}
      }
    }
  },

  "Mappings" : {
    "AWSRegionArch2AMI" : {
      "us-east-1"      : { "HVM64" : "ami-08842d60" },
      "us-west-2"      : { "HVM64" : "ami-8786c6b7" },
      "us-west-1"      : { "HVM64" : "ami-cfa8a18a" },
      "eu-west-1"      : { "HVM64" : "ami-748e2903" },
      "ap-southeast-1" : { "HVM64" : "ami-d6e1c584" },
      "ap-northeast-1" : { "HVM64" : "ami-35072834" },
      "ap-southeast-2" : { "HVM64" : "ami-fd4724c7" },
      "sa-east-1"      : { "HVM64" : "ami-956cc688" },
      "cn-north-1"     : { "HVM64" : "ami-ac57c595" },
      "eu-central-1"   : { "HVM64" : "ami-b43503a9" }
    }

  },

  "Resources" : {
    "EC2Instance" : {
      "Type" : "AWS::EC2::Instance",
      "Properties" : {
        "InstanceType" : { "Ref" : "InstanceType" },
        "SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ],
        "KeyName" : { "Ref" : "KeyName" },
        "ImageId" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, "HVM64" ] }
      }
    },

    "InstanceSecurityGroup" : {
      "Type" : "AWS::EC2::SecurityGroup",
      "Properties" : {
        "GroupDescription" : "Enable SSH access via port 22",
        "SecurityGroupIngress" : [ {
          "IpProtocol" : "tcp",
          "FromPort" : "22",
          "ToPort" : "22",
          "CidrIp" : { "Ref" : "SSHLocation"}
        } ]
      }
    }
  },

  "Outputs" : {
    "PublicDNSName" : {
      "Description" : "Public DNS name of the new EC2 instance",
      "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicDnsName" ] }
    },
    "PublicIPAddress" : {
      "Description" : "Public IP address of the new EC2 instance",
      "Value" : { "Fn::GetAtt" : [ "EC2Instance", "PublicIp" ] }
    }
  }
}
```

**範本資源**

當產品啟動時，範本宣告要建立的資源。它由下列各部分組成：
+ **AWSTemplateFormatVersion** （選用） – 用來建立此範本的[AWS 範本格式](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/format-version-structure.html)版本。最新的範本格式版本為 2010-09-09，目前是唯一有效的值。
+ **描述** （選用） – 範本的描述。
+ **參數** （選用） – 您的使用者必須指定才能啟動產品的參數。範本包含每個參數的描述和限制，輸入的值必須符合這些限制。如需限制條件的詳細資訊，請參閱 [使用 AWS Service Catalog 限制條件](constraints.md)。

  `KeyName` 參數可讓您指定最終使用者在啟動產品時必須提供 AWS Service Catalog 的 Amazon Elastic Compute Cloud (Amazon EC2) 金鑰對名稱。您將在下一個步驟中建立金鑰對。
+ **中繼資料 **（選用） – 提供範本額外資訊的物件。[AWS：：CloudFormation：：Interface](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloudformation-interface.html) 金鑰會定義最終使用者主控台檢視顯示參數的方式。`ParameterGroups` 屬性定義這些參數如何分組以及為這些群組加上標題。`ParameterLabels` 屬性定義容易記住的參數名稱。當使用者指定參數以啟動以此範本為基礎的產品時，最終使用者主控台檢視將在標題 `Server size:` 之下顯示標記為 `Instance configuration` 的參數，它在標題 `Key pair:` 之下顯示標記為 `CIDR range:` 及 `Security configuration` 的參數。
+ **映射 **（選用） – 索引鍵和關聯值的映射，可用於指定條件參數值，類似於查詢資料表。您可以使用資源和輸出區段中的 [Fn：：FindInMap](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-findinmap.html) 內部函數，將索引鍵比對至對應的值。上述範本包含區域清單，以及對應至每個 AWS 區域的 Amazon Machine Image (AMI)。 AWS Service Catalog 會使用此映射，根據使用者在 中選取 AWS 的區域來決定要使用的 AMI AWS 管理主控台。
+ **資源** （必要） – 堆疊資源及其屬性。您可以在範本的資源和**輸出**區段中參考**資源**。在上述範本中，我們會指定執行 Amazon Linux 的 EC2 執行個體，以及允許 SSH 存取執行個體的安全群組。EC2 執行個體資源的**屬性**區段會使用使用者類型的資訊來設定執行個體類型和 SSH 存取的金鑰名稱。

  CloudFormation 使用目前的 AWS 區域從先前定義的映射中選取 AMI ID，並為其指派安全群組。安全群組經過設定以允許從使用者指定的 CIDR IP 地址範圍對內存取連接埠 22。
+ **輸出 **（選用） – 告知使用者產品啟動完成的文字。提供的範本取得啟動執行個體的公有 DNS 名稱並顯示給使用者。使用者需要 DNS 名稱以使用 SSH 連接到執行個體。

  

  如需範本結構頁面的詳細資訊，請參閱*CloudFormation 《 使用者指南*》中的[範本參考](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-reference.html)。

# 步驟 2：建立金鑰對
<a name="getstarted-keypair"></a>

若要讓您的最終使用者啟動以本教學課程的範例範本為基礎的產品，您必須建立 Amazon EC2 金鑰對。金鑰對是公開金鑰的結合，這些金鑰用於加密資料，私有金鑰則用於解密資料。如需金鑰對的詳細資訊，請確定您已登入 AWS 主控台，然後在 [Amazon EC2 使用者指南中檢閱 Amazon EC2 金鑰對](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)。 *Amazon EC2 *

本教學課程的 CloudFormation 範本 `development-environment.template`包含 `KeyName` 參數：

```
. . .
  "Parameters" : {
    "KeyName": {
      "Description" : "Name of an existing EC2 key pair for SSH access to the EC2 instance.",
      "Type": "AWS::EC2::KeyPair::KeyName"
    },
. . .
```

最終使用者使用 AWS Service Catalog 啟動以範本為基礎的產品時，必須指定金鑰對的名稱。

如果您已在偏好使用的帳戶中建立金鑰對，您可以跳至 [步驟 3：建立產品組合](getstarted-portfolio.md)。否則，請完成下列步驟。

**建立一組金鑰對**

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

1. 請在導覽窗格的 **Network & Security** (網路與安全性) 下方，選擇 **Key Pairs** (金鑰對)。

1. 在 **Key Pairs** (金鑰對) 頁面上，選擇 **Create Key Pair** (建立金鑰對)。

1. 在 **Key pair name** (金鑰對名稱) 中輸入容易記住的名稱，然後選擇 **Create** (建立)。

1. 當主控台提示您儲存私有金鑰檔案時，將它儲存在安全的地方。
**重要**  
這是您儲存私有金鑰檔案的唯一機會。

# 步驟 3：建立產品組合
<a name="getstarted-portfolio"></a>

若要將產品提供給使用者，請從建立這些產品的產品組合開始。

**建立產品組合**

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

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

1. 輸入下列值：
   + **產品組合名** – **Engineering Tools**
   + **產品組合描述** – **Sample portfolio that contains a single product.** 
   + **擁有者** – **IT (it@example.com)** 

1. 選擇**建立**。

# 步驟 4：在產品組合中建立新的產品
<a name="getstarted-product"></a>

建立產品組合之後，您就可以在產品組合中建立產品。在本教學課程中，您會在 **Engineering Tool** 產品組合中建立名為 **Linux Desktop** 的產品，這是在 Amazon Linux 上執行的雲端開發環境。

**在產品組合中建立產品**

1. 若剛完成前一步驟，則已會顯示出 **Portfolios** (產品組合) 頁面。否則，請開啟 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/)。

1. 選擇並開啟您在步驟 2 中建立的**工程工具**產品組合。

1. 選擇**上傳新產品**。

1. 在**產品詳細資訊區段的建立**產品頁面上，輸入下列內容：
   + **Product name** (產品名稱) – **Linux Desktop**
   + **產品描述** – **Cloud development environment configured for engineering staff. Runs AWS Linux.**
   + **擁有者** – **IT**
   + **Distributor** – *（空白）*

1. 在**版本詳細資訊**頁面上，選擇**使用 CloudFormation 範本**。然後選擇**指定 Amazon S3 範本 URL**，然後輸入以下內容：
   + **Select template** (選擇範本) – **https://awsdocs.s3.amazonaws.com/servicecatalog/development-environment.template**
   + **版本標題** – **v1.0**
   + **Description** (描述) - **Base Version**

1. 在**支援詳細資訊**區段中，輸入下列內容：
   + **電子郵件聯絡** – **ITSupport@example.com**
   + **支援連結** – **https://wiki.example.com/IT/support**
   + **支援描述** – **Contact the IT department for issues deploying or connecting to this product.**

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

# 步驟 5：新增範本限制條件以限制執行個體大小
<a name="getstarted-constraint"></a>

限制在產品組合層級新增另一層產品控制。限制可以控制產品的啟動細節 (啟動限制) 或將規則新增至 CloudFormation 範本 (範本限制條件)。如需詳細資訊，請參閱[使用 AWS Service Catalog 限制條件](constraints.md)。

將範本限制新增至 Linux 桌面產品，以防止使用者在啟動時選取大型執行個體類型。開發環境範本可讓使用者選擇六種執行個體類型；此限制會將有效的執行個體類型限制為兩個最小的類型 `t2.micro` 和 `t2.small`。如需詳細資訊，請參閱《Amazon EC[2 使用者指南》中的 T2 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html)。 *Amazon EC2 *

**將範本限制新增至 Linux 桌面產品**

1. 在**產品組合詳細資訊**頁面上，選擇**限制條件**，然後選擇**建立限制條件**。

1. 在**建立限制頁面上**，針對**產品選擇** **Linux 桌面**。然後，針對**限制類型**，選擇**範本**。

1. 在 **Template 限制區段**中，選擇**文字編輯器**。

1. 將以下內容貼到文字編輯器中：

   ```
   {
     "Rules": {
       "Rule1": {
         "Assertions": [
           {
             "Assert" : {"Fn::Contains": [["t2.micro", "t2.small"], {"Ref": "InstanceType"}]},
             "AssertDescription": "Instance type should be t2.micro or t2.small"
           }
         ]
       }
     }
   }
   ```

1. 針對**限制描述**，輸入 **Small instance sizes**。

1.  選擇**建立**。

# 步驟 6：新增啟動限制以指派 IAM 角色
<a name="getstarted-launchconstraint"></a>

 啟動限制會指定最終使用者啟動產品時 AWS Service Catalog 擔任的 IAM 角色。

 在此步驟中，您將啟動限制新增至 Linux 桌面產品，因此 AWS Service Catalog 可以使用構成產品 AWS CloudFormation 範本的 IAM 資源。

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

1. AWS CloudFormation

1. 產品 AWS CloudFormation 範本中的服務

1. 讀取服務擁有的 Amazon S3 儲存貯體中的 AWS CloudFormation 範本存取權。

此啟動限制可讓最終使用者啟動產品，並在啟動後將其管理為佈建產品。如需詳細資訊，請參閱 [AWS Service Catalog 啟動限制](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-launch.html)。

如果沒有啟動限制，您需要將額外的 IAM 許可授予最終使用者，然後他們才能使用 Linux 桌面產品。例如，`ServiceCatalogEndUserAccess`政策會授予存取 AWS Service Catalog 最終使用者主控台檢視所需的最低 IAM 許可。

使用啟動限制可讓您遵循 IAM 最佳實務，將最終使用者 IAM 許可保持在最低限度。如需詳細資訊，請參閱《IAM 使用者指南》中的[授予最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。

**新增啟動限制**

1. 請遵循 *IAM 使用者指南*[中 JSON 標籤上建立新政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)的指示。

1. 貼上下列 JSON 政策文件：
   +  `cloudformation`– 允許建立、讀取、更新、刪除、列出和標記 CloudFormation 堆疊 AWS Service Catalog 的完整許可。
   +  `ec2`— 允許列出、讀取、寫入、佈建和標記屬於 AWS Service Catalog 產品一部分的 Amazon Elastic Compute Cloud (Amazon EC2) 資源 AWS Service Catalog 的完整許可。根據您要部署 AWS 的資源，此許可可能會變更。
   +  `ec2`– 為您的 AWS 帳戶建立新的受管政策，並將指定的受管政策連接至指定的 IAM 角色。
   +  `s3`— 允許存取 擁有的 Amazon S3 儲存貯體 AWS Service Catalog。若要部署產品， AWS Service Catalog 需要存取佈建成品。
   +  `servicecatalog`— 允許代表最終使用者列出、讀取、寫入、標記和啟動資源的 AWS Service Catalog 許可。
   +  `sns`— 允許 AWS Service Catalog 許可列出、讀取、寫入和標記啟動限制條件的 Amazon SNS 主題。
**注意**  
 根據您要部署的基礎資源，您可能需要修改範例 JSON 政策。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "cloudformation:CreateStack",
                   "cloudformation:DeleteStack",
                   "cloudformation:DescribeStackEvents",
                   "cloudformation:DescribeStacks",
                   "cloudformation:GetTemplateSummary",
                   "cloudformation:SetStackPolicy",
                   "cloudformation:ValidateTemplate",
                   "cloudformation:UpdateStack",
                   "ec2:*",
                   "servicecatalog:*",
                   "sns:*"
               ],
               "Resource": "*"
           },
           {
            "Effect":"Allow",
            "Action":[
               "s3:GetObject"
            ],
            "Resource":"*",
            "Condition":{
               "StringEquals":{
                  "s3:ExistingObjectTag/servicecatalog:provisioning":"true"
               }
            }
         }
       ]
   }
   ```

------

1. 選擇**下一步**、**標籤**。

1. 選擇**下一步，****檢閱**。

1. 在**檢閱政策**頁面中，針對**名稱**輸入 **linuxDesktopPolicy**。

1. 選擇**建立政策**。

1. 在導覽窗格中，選擇**角色**。然後選擇**建立角色**並執行下列動作：

   1. 對於**選取信任的實體**，請選擇**AWS 服務**，然後在**其他服務的使用案例下 AWS **，選擇 **Service Catalog**。選取 Service Catalog 使用案例，然後選擇**下一步**。

   1. 搜尋 **linuxDesktopPolicy** 政策，然後選取此選取方塊。

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

   1. 於**角色名稱**輸入 **linuxDesktopLaunchRole**。

   1. 選擇建**立角色**。

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

1. 選擇 **Engineering Tools** (工程工具) 產品組合。

1. 在**產品組合詳細資訊**頁面上，選擇**限制條件**索引標籤，然後選擇**建立限制條件**。

1. 對於**產品**，選擇 **Linux 桌面**，對於**限制類型**，選擇**啟動**。

1. 選擇**選取 IAM 角色**。接著選擇 **linuxDesktopLaunchRole**，然後選擇**建立**。

# 步驟 7：授予最終使用者對產品組合的存取權
<a name="getstarted-deploy"></a>

現在您已建立產品組合並新增產品，可以將存取權授予最終使用者。

**先決條件**  
如果您尚未為最終使用者建立 IAM 群組，請參閱 [將許可授予 AWS Service Catalog 最終使用者](getstarted-iamenduser.md)。

**提供存取產品組合**

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

1. 選擇 **Grant access (授與存取權)**。

1. 在**群組**索引標籤上，選取最終使用者的 IAM 群組核取方塊。

1. 選擇**新增存取權**。

# 步驟 8：測試最終使用者體驗
<a name="getstarted-verify"></a>

若要驗證最終使用者可以成功存取最終使用者主控台檢視並啟動您的產品，請以最終使用者 AWS 身分登入 並執行這些任務。

**若要驗證最終使用者是否能存取最終使用者主控台**

1. 請遵循 [IAM 使用者指南中的指示，以 IAM 使用者身分登入](https://docs.aws.amazon.com/IAM/latest/UserGuide/console.html)。 **

1.  在選單列中，選擇您建立`Engineering Tools`產品組合 AWS 的區域。在本教學課程中，選擇 **us-east-1 區域**。

1. 開啟位於 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 的 AWS Service Catalog 主控台，查看：
   + **產品** – 使用者可以使用的產品。
   + **佈建的產品** – 使用者已啟動的佈建產品。

**驗證最終使用者可以啟動 Linux 桌面產品**

請注意，在本教學課程中，請選擇** us-east-1 區域**。

1. 在主控台**的產品**區段中，選擇 **Linux 桌面**。

1. 選擇**啟動產品**以啟動設定產品的精靈。

1. 在**啟動：Linux 桌面**頁面上，輸入 **Linux-Desktop** 以取得佈建的產品名稱。

1. 在**參數**頁面上，輸入以下內容，然後選擇**下一步**：
   +  **伺服器大小** – 選擇 **t2.micro**。
   +  **金鑰對** – 選取您在 [步驟 2：建立金鑰對](getstarted-keypair.md) 中建立的金鑰對。
   +  **CIDR 範圍** – 為要連線至執行個體的 IP 地址輸入有效的 CIDR 範圍。您可以使用預設值 (0.0.0.0/0) 來允許從任何 IP 地址、IP 地址存取，後面接著 **/32** 來限制僅存取您的 IP 地址，或介於兩者之間。

1. 選擇**啟動產品**以啟動堆疊。主控台會顯示適用於 Linux-Desktop 堆疊的堆疊詳細資訊頁面。產品的初始狀態為**變更中**。 AWS Service Catalog 啟動產品需要幾分鐘的時間。若要查看目前狀態，請重新整理瀏覽器。產品啟動後，狀態為**可清空**。

# Terraform 產品入門
<a name="getstarted-Terraform"></a>

AWS Service Catalog 啟用快速的自助式佈建，並控管其中的 [ HashiCorp Terraform](https://developer.hashicorp.com/terraform/intro/terraform-editions) 組態 AWS。您可以使用 AWS Service Catalog 做為單一工具來大規模組織、管理和分配 Terraform 組態 AWS。 AWS Service Catalog 支援跨數個主要功能的 Terraform，包括標準化和預先核准的 Terraform 範本目錄、存取控制、版本控制、標記，以及與其他 AWS 帳戶共用。在 中 AWS Service Catalog，您的最終使用者會看到他們可以存取的產品和版本的簡單清單，然後可以在單一動作中部署這些產品。

**注意**  
為了繼續支援 HashiCorp 技術，由於最近的 Terraform 授權變更， 將先前對 *Terraform 開放原始碼*的任何參考 AWS Service Catalog 變更為*外部*。外部產品類型包含對 Terraform Community Edition 的支援，先前稱為 Terraform Open Source。如需將現有 Terraform Open Source 產品和佈建產品遷移至外部產品類型的詳細資訊和說明，請參閱 [將現有的 Terraform Open Source 產品和佈建產品更新為外部產品類型](update_terraform_open_source_to_external.md)。

以下教學課程中的步驟將協助您開始使用 Terraform 產品 AWS Service Catalog。

身為目錄管理員，您在中央管理員帳戶 （中樞帳戶） 中工作。Terrafrm Community Edition 和 Terraform Cloud 產品都需要 Terraform 佈建引擎，您可以在 [佈建 Terraform Community Edition 的引擎 （外部產品類型）](getstarted-terraform-engine.md#getstarted-terraform-engine-os)和 中進一步了解[佈建適用於 Terraform Cloud 的引擎](getstarted-terraform-engine.md#getstarted-terraform-engine-cloud)。

在教學課程中，您會在管理員帳戶中執行下列任務：
+ 使用 Terraform Cloud 或*外部*產品類型建立 *Terraform* 產品。Service Catalog 使用外部產品類型來支援 Terraform Community Edition 產品。
+ 將產品與產品組合建立關聯
+ 建立啟動限制，以允許最終使用者佈建產品
+ 標記產品
+ 與最終使用者帳戶 （輻條帳戶） 共用產品組合和 Terraform 產品 

在教學課程中，您可以使用管理中樞帳戶的組織共用選項來共用產品組合，該帳戶也是組織的管理帳戶。如需組織共用的詳細資訊，請參閱 [共用產品組合](catalogs_portfolios_sharing_how-to-share.md)。

您在教學課程中建立的 Terraform 產品中包含 AWS 的資源是簡單的 Amazon S3 儲存貯體。

**注意**  
 開始之前，請確定您已完成 中的動作項目[設定 AWS Service Catalog](setup.md)。

**Topics**
+ [將現有的 Terraform Open Source 產品和佈建產品更新為外部產品類型](update_terraform_open_source_to_external.md)
+ [先決條件：設定 Terraform 佈建引擎](getstarted-terraform-engine.md)
+ [步驟 1：Terraform 組態檔案下載](getstarted-template-Terraform.md)
+ [步驟 2：建立 Terraform 產品](getstarted-product-Terraform.md)
+ [步驟 3：建立 AWS Service Catalog 產品組合](getstarted-portfolio-Terraform.md)
+ [步驟 4：將產品新增至產品組合](getstarted-portfolio-add-product-Terraform.md)
+ [步驟 5：建立啟動角色](getstarted-launchrole-Terraform.md)
+ [步驟 6：將啟動限制新增至 Terraform 產品](getstarted-launchconstraint-Terraform.md)
+ [步驟 7：授予最終使用者存取權](getstarted-deploy-Terraform.md)
+ [步驟 8：與最終使用者共用產品組合](getstarted-share-portfolio-end-user-Terraform.md)
+ [步驟 9：測試最終使用者體驗](getstarted-verify-Terraform.md)
+ [步驟 10：監控 Terraform 佈建操作](getstarted-monitoring-Terraform.md)

# 將現有的 Terraform Open Source 產品和佈建產品更新為外部產品類型
<a name="update_terraform_open_source_to_external"></a>

為了繼續支援 HashiCorp 技術，由於最近的 Terraform 授權變更， 將任何先前對 *Terraform 開放原始碼*的參考 AWS Service Catalog 變更為*外部*。外部產品類型包含對 Terraform Community Edition 的支援，先前稱為 Terraform Open Source。 AWS Service Catalog 不再支援 Terraform Open Source 作為任何*新產品*或佈建產品的有效產品類型。您只能更新或終止現有的 Terraform 開放原始碼資源，包括產品版本和佈建產品。

如果您尚未這麼做，您必須依照本節中的指示，將所有現有的 Terraform Open Source 產品和佈建產品轉換為外部產品。

1. 更新您現有的 Terraform 參考引擎 AWS Service Catalog ，以包含對**外部**和 **Terraform 開放原始碼**產品類型的支援。如需有關更新 Terraform 參考引擎的說明，請檢閱我們的 [GitHub 儲存庫](https://github.com/aws-samples/service-catalog-engine-for-terraform-os)。

1. 使用新的外部產品類型重新建立任何現有的 Terraform Open Source 產品。

1. 刪除任何使用 Terraform Open Source 產品類型的現有產品。

1. 重新佈建剩餘的資源以使用新的外部產品類型。

1. 終止任何使用 Terraform Open Source 產品類型的現有佈建產品。

轉換現有產品後，請針對任何使用 tar.gz 組態檔案的新產品使用外部產品類型。

AWS Service Catalog 會視需要支援客戶完成此變更。如果這些變更需要您帳戶的大量工作，或影響關鍵產品工作負載，請聯絡您的 帳戶代表請求協助。

# 先決條件：設定 Terraform 佈建引擎
<a name="getstarted-terraform-engine"></a>

在 中建立 Terraform 產品的先決條件是 AWS Service Catalog，您必須在 Service Catalog 管理員帳戶 （中樞帳戶） 中安裝和設定佈建引擎。Terraform Community Edition 產品 （使用外部產品類型） 和 Terraform Cloud 產品 （使用 Terraform Cloud 產品類型） 都需要佈建引擎。

**注意**  
引擎組態是一次性設定，大約需要 30 分鐘。

## 佈建 Terraform Community Edition 的引擎 （外部產品類型）
<a name="getstarted-terraform-engine-os"></a>

AWS Service Catalog 使用*外部*產品類型來支援 Terraform Community Edition 產品。*外部*產品類型也支援其他佈建工具，包括 Pulumi、Ansible、Chef 等以佈建引擎的組態為基礎的工具。

對於搭配 HashiCorp 的 Terraform Community Edition 使用外部產品類型 AWS Service Catalog 的產品，您必須在 AWS Service Catalog 管理員帳戶 （中樞帳戶） 中安裝並設定 Terraform 佈建引擎。 會 AWS 管理此引擎及其資源。

AWS Service Catalog 提供 GitHub 儲存庫，其中包含[安裝和設定 AWS所提供 Terraform 佈建引擎](https://github.com/aws-samples/service-catalog-engine-for-terraform-os/)的指示。儲存庫包含下列資訊：
+ 必要的安裝工具
+ 建置程式碼
+ 部署至 AWS 帳戶
+ 有關佈建工作流程、品質保證和限制的其他資訊

## 佈建適用於 Terraform Cloud 的引擎
<a name="getstarted-terraform-engine-cloud"></a>

對於搭配 HashiCorp 的 Terraform Cloud 使用 Terraform Cloud 產品類型 AWS Service Catalog 的產品，您必須在 AWS Service Catalog 管理員帳戶 （中樞帳戶） 中安裝和設定 Terraform 佈建引擎。HashiCorp 會在遠端環境中管理此引擎。

HashiCorp 提供 GitHub 儲存庫，其中包含設定 [ Terraform Cloud 引擎的說明 AWS Service Catalog](https://github.com/hashicorp/aws-service-catalog-engine-for-tfc)。儲存庫包含下列資訊：
+ 必要的安裝工具
+ 建置程式碼
+ 部署至 AWS 帳戶
+ 有關佈建工作流程、品質保證和限制的其他資訊

# 步驟 1：Terraform 組態檔案下載
<a name="getstarted-template-Terraform"></a>

 您可以使用 Terraform 組態檔案來建立和佈建 HashiCorp Terraform 產品。這些組態是純文字檔案，並說明您要佈建的資源。您可以使用您選擇的文字編輯器來建立、更新和儲存組態。若要建立產品，您必須將 Terraform 組態上傳為 **tar.gz 檔案。**在本教學課程中， AWS Service Catalog 提供簡單的組態檔案，讓您可以開始使用。組態會建立 Amazon S3 儲存貯體。

## 組態檔案下載
<a name="template-download"></a>

AWS Service Catalog 提供範例[https://github.com/aws-samples/service-catalog-engine-for-terraform-os/blob/main/sample-provisioning-artifacts/s3bucket.tar.gz?raw=true](https://github.com/aws-samples/service-catalog-engine-for-terraform-os/blob/main/sample-provisioning-artifacts/s3bucket.tar.gz?raw=true)組態檔案，供您在本教學課程中使用。

## 組態檔案概觀
<a name="template-overview"></a>

範例組態檔案的文字如下：

```
variable "bucket_name" {
  type = string
}
provider "aws" {
}
resource "aws_s3_bucket" "bucket" {
  bucket = var.bucket_name
}
output regional_domain_name {
  value = aws_s3_bucket.bucket.bucket_regional_domain_name
}
```

**組態資源**

組態檔案會在 AWS Service Catalog 佈建產品時宣告要建立的資源。它由下列各部分組成：
+ **變數** （選用） – 管理員使用者 （中樞帳戶管理員） 可指派以自訂組態的值定義。變數提供一致的界面，以變更指定組態的行為。變數關鍵字後面的標籤是變數的名稱，在相同模組中的所有變數中必須是唯一的。此名稱用於將外部值指派給變數，並從模組中參考變數的值。
+ **提供者** （選用） – 資源佈建的雲端服務提供者，僅支援 `AWS`. AWS Service Catalog only `AWS`作為提供者。因此，Terraform 佈建引擎會將任何其他列出的提供者覆寫為 `AWS`。
+ **資源** （必要） – 佈建的 AWS 基礎設施資源。在本教學課程中，Terraform 組態檔案會指定 Amazon S3。
+ **輸出** （選用） – 傳回的資訊或值，類似於程式設計語言傳回的值。您可以使用輸出資料，透過自動化工具設定基礎設施工作流程。

# 步驟 2：建立 Terraform 產品
<a name="getstarted-product-Terraform"></a>

安裝 Terraform 佈建引擎後，您就可以在其中建立 HashiCorp Terraform 產品 AWS Service Catalog。在本教學課程中，您會建立包含簡單 Amazon S3 儲存貯體的 Terraform 產品。

**建立 Terraform 產品**

1. 在 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 開啟 AWS Service Catalog 主控台，並以管理員使用者身分登入。

1. 導覽至**管理**區段，然後選擇**產品清單**。

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

1. 在**產品詳細資訊區段的建立**產品頁面上，選擇**外部**或 **Terraform Cloud** 產品類型。Service Catalog 使用*外部*產品類型來支援 Terraform Community Edition 產品。

1. 輸入下列產品詳細資訊：
   + **Product name** (產品名稱) – **Simple S3 bucket**
   + **產品描述** – 包含 Amazon S3 儲存貯體的 Terraform 產品。
   + **擁有者** – **IT**
   + **Distributor** – *（空白）*

1. 在**版本詳細資訊**窗格中，選擇**上傳範本檔案**，然後選擇**選擇檔案**。選取您在 中下載的檔案[步驟 1：Terraform 組態檔案下載](getstarted-template-Terraform.md)。

1. 輸入下列資料：
   + **版本名稱** – **v1.0**
   + **版本描述** – **Base Version**

1. 在**支援詳細資訊**區段中，輸入以下內容，然後選擇**建立產品**。
   + **電子郵件聯絡** – **ITSupport@example.com**
   + **支援連結** – **https://wiki.example.com/IT/support**
   + **支援描述** – **Contact the IT department for issues deploying or connecting to this product.**

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

成功建立產品後， 會在產品頁面上 AWS Service Catalog 顯示確認橫幅。

# 步驟 3：建立 AWS Service Catalog 產品組合
<a name="getstarted-portfolio-Terraform"></a>

您可以在 AWS Service Catalog 管理員帳戶 （中樞帳戶） 中建立產品組合，以便輕鬆進行產品組織，並分發至最終使用者帳戶 （輪換帳戶）。

**建立產品組合**

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

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

1. 輸入下列值：
   + **產品組合名** – **S3 bucket**
   + **產品組合描述** – **Sample portfolio for Terraform configurations. ** 
   + **擁有者** – **IT (it@example.com)** 

1. 選擇**建立**。

# 步驟 4：將產品新增至產品組合
<a name="getstarted-portfolio-add-product-Terraform"></a>

建立產品組合後，您可以新增您在步驟 2 中建立的 HashiCorp Terraform 產品。

**將產品新增至產品組合**

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

1.  選取您在步驟 2 中建立的 Simple S3 儲存貯體 Terraform 產品，然後選擇**動作**。從下拉式選單中，選擇**新增產品至產品組合**。 AWS Service Catalog 會顯示**新增簡單 S3 儲存貯體至產品組合**窗格。

1. 選取 S3 儲存貯體產品組合，然後關閉**建立啟動限制**。稍後您將在教學課程中建立啟動限制。

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

成功將產品新增至產品組合後， 會在產品清單頁面上 AWS Service Catalog 顯示確認橫幅。

# 步驟 5：建立啟動角色
<a name="getstarted-launchrole-Terraform"></a>

在此步驟中，您將建立 IAM 角色 （啟動角色），指定 Terraform 佈建引擎在最終使用者啟動 HashiCorp Terraform 產品時 AWS Service Catalog 可擔任的許可。

 您稍後做為啟動限制條件指派給簡單 Amazon S3 儲存貯體 Terraform 產品的 IAM 角色 （啟動角色） 必須具有下列許可：
+ 存取 Terraform 產品的基礎 AWS 資源。在本教學課程中，這包括對 `s3:CreateBucket*`、`s3:DeleteBucket*`、`s3:List*`、 `s3:Get*`和 `s3:PutBucketTagging` Amazon S3 操作的存取。
+ 在 AWS Service Catalog擁有的 Amazon S3 儲存貯體中讀取對 Amazon S3 範本的存取權 
+ 存取 `CreateGroup`、`DeleteGroup`、 `ListGroupResources`和資源`Tag`群組操作。這些操作 AWS Service Catalog 可讓 管理資源群組和標籤

**在 AWS Service Catalog 管理員帳戶中建立啟動角色**

1. 登入 AWS Service Catalog 管理員帳戶時，請遵循 *IAM 使用者指南*[中 JSON 標籤上建立新政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)的指示。

1. 為您的簡單 Amazon S3 儲存貯體 Terraform 產品建立**政策**。此政策必須在您建立啟動角色之前建立，並包含下列許可：
   +  `s3`— 允許列出、讀取、寫入、佈建和標記 Amazon S3 產品 AWS Service Catalog 的完整許可。
   +  `s3`— 允許存取 擁有的 Amazon S3 儲存貯體 AWS Service Catalog。若要部署產品， AWS Service Catalog 需要存取佈建成品。
   +  `resourcegroups`— 允許 AWS Service Catalog 建立、列出、刪除和標記 AWS Resource Groups。
   +  `tag`— 允許 AWS Service Catalog 標記許可。
**注意**  
 根據您要部署的基礎資源，您可能需要修改範例 JSON 政策。

   貼上下列 JSON 政策文件：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "s3:GetObject",
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "s3:ExistingObjectTag/servicecatalog:provisioning": "true"
                   }
               }
           },
           {
               "Action": [
                   "s3:CreateBucket*",
                   "s3:DeleteBucket*",
                   "s3:Get*",
                   "s3:List*",
                   "s3:PutBucketTagging"
               ],
               "Resource": "arn:aws:s3:::*",
               "Effect": "Allow"
           },
           {
               "Action": [
                   "resource-groups:CreateGroup",
                   "resource-groups:ListGroupResources",
                   "resource-groups:DeleteGroup",
                   "resource-groups:Tag"
               ],
               "Resource": "*",
               "Effect": "Allow"
           },
           {
               "Action": [
                   "tag:GetResources",
                   "tag:GetTagKeys",
                   "tag:GetTagValues",
                   "tag:TagResources",
                   "tag:UntagResources"
               ],
               "Resource": "*",
               "Effect": "Allow"
           }
       ]
   }
   ```

------

1. 

   1. 選擇**下一步**、**標籤**。

   1. 選擇**下一步，****檢閱**。

   1. 在**檢閱政策**頁面中，針對**名稱**輸入 **S3ResourceCreationAndArtifactAccessPolicy**。

   1. 選擇**建立政策**。

1. 在導覽窗格中，選擇**角色**，然後選擇**建立角色**。

1. 針對**選取信任的實體**，選擇**自訂信任政策**，然後輸入下列 JSON 政策：

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

1. 在**政策**清單中，選取`S3ResourceCreationAndArtifactAccessPolicy`您剛建立的 。

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

1. 在**角色名稱**中，輸入 **SCLaunch-S3product**。
**重要**  
啟動角色名稱**必須以**「SCLaunch」開頭，後面接著所需的角色名稱。

1. 選擇建**立角色**。
**重要**  
在 AWS Service Catalog 管理員帳戶中建立啟動角色之後，您還必須在 AWS Service Catalog 最終使用者帳戶中建立相同的啟動角色。最終使用者帳戶中的角色必須具有與管理員帳戶中的角色相同的名稱，並包含相同的政策。

**在 AWS Service Catalog 最終使用者帳戶中建立啟動角色**

1. 以管理員身分登入最終使用者帳戶，然後遵循 *IAM 使用者指南*[中 JSON 標籤上建立新政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)的指示。

1. 重複上述* AWS Service Catalog 管理員帳戶中建立啟動角色的步驟 *2-10。

**注意**  
在 AWS Service Catalog 最終使用者帳戶中建立啟動角色時，請確定您在自訂信任政策**AccountId**中使用相同的管理員。

現在您已在管理員和最終使用者帳戶中建立啟動角色，您可以將啟動限制新增至產品。

# 步驟 6：將啟動限制新增至 Terraform 產品
<a name="getstarted-launchconstraint-Terraform"></a>

**重要**  
您必須為 HashiCorp Terraform 產品建立啟動限制。如果沒有啟動限制，最終使用者就無法佈建產品。

在管理員帳戶中建立啟動角色後，您就可以將啟動角色與外部或 Terraform Cloud 產品的啟動限制建立關聯。

此啟動限制可讓最終使用者啟動產品，並在啟動後將其管理為佈建產品。如需詳細資訊，請參閱 [AWS Service Catalog 啟動限制](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/constraints-launch.html)。

使用啟動限制可讓您遵循 IAM 最佳實務，將最終使用者 IAM 許可保持在最低限度。如需詳細資訊，請參閱《IAM 使用者指南》中的[授予最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。

**將啟動限制指派給產品**

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

1. 在左側導覽主控台中，選擇**產品組合**。

1. 選擇 **S3 儲存貯**體產品組合。

1. 在**產品組合詳細資訊**頁面上，選擇**限制條件**索引標籤，然後選擇**建立限制條件**。

1. 針對**產品**，選擇 **Simple S3 儲存貯**體。 AWS Service Catalog 會自動選取**啟動**限制類型。

1. 選擇**輸入角色名稱**，然後選擇 **SCLaunch-S3product**。

1. 選擇**建立**。

**注意**  
指定的角色名稱必須存在於建立啟動限制的帳戶中，以及使用此啟動限制啟動產品的使用者帳戶中。

# 步驟 7：授予最終使用者存取權
<a name="getstarted-deploy-Terraform"></a>

將啟動限制套用至 HashiCorp Terraform 產品後，您就可以將存取權授予發言帳戶中的最終使用者。

在本教學課程中，您會使用主體名稱共用將存取權授予最終使用者。主體名稱是管理員可以在產品組合中指定的群組、角色和使用者的名稱，然後與產品組合共用。當您共用產品組合時， 會 AWS Service Catalog 驗證這些委託人名稱是否已存在。如果它們確實存在， AWS Service Catalog 會自動將相符的 IAM 主體與共用產品組合建立關聯，以將存取權授予最終使用者。如需詳細資訊[，請參閱共用產品組合](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/catalogs_portfolios_sharing_how-to-share)。

**先決條件**  
如果您尚未為最終使用者建立 IAM 群組，請參閱 [將許可授予 AWS Service Catalog 最終使用者](getstarted-iamenduser.md)。

**提供存取產品組合**

1. 導覽至**產品組合**頁面，然後選擇 **S3 儲存貯**體產品組合。

1. 選擇**存取**索引標籤，然後選擇**授予存取權**。

1. 在**存取類型**窗格中，選擇**主體名稱**。

1. 在**主體名稱**窗格中，選取**主體名稱**類型，然後在輻條帳戶中輸入所需最終使用者的主體**名稱**。

1. 選擇 **Grant access (授與存取權)**。

# 步驟 8：與最終使用者共用產品組合
<a name="getstarted-share-portfolio-end-user-Terraform"></a>

 AWS Service Catalog 管理員可以使用account-to-account共用或 AWS Organizations 共用，將產品組合與最終使用者帳戶分配。在本教學課程中，您要從管理員帳戶 （中樞帳戶） 與組織共用產品組合，這也是組織的管理帳戶。

**從管理員中樞帳戶共用產品組合**

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

1. 在**產品組合**頁面上，選取 S3 儲存貯體產品組合。在**動作**功能表中，選擇**共用**。

1. 選擇 **AWS Organizations**，然後篩選至您的組織結構。

1. 在**AWS 組織**窗格中，選擇最終使用者帳戶 （輻條帳戶）。

   您也可以根據組織結構，選取**根節點**來與整個組織、**父組織單位 (OU)** 或組織內的**子 OU **共用產品組合。如需詳細資訊，請參閱 [共用產品組合](catalogs_portfolios_sharing_how-to-share.md)。

1. 在**共用設定**窗格中，選擇**主體共用**。

1. 選擇**共用**。

成功與最終使用者共用產品組合後，下一步是驗證最終使用者體驗並佈建 Terraform 產品。

# 步驟 9：測試最終使用者體驗
<a name="getstarted-verify-Terraform"></a>

若要驗證最終使用者可以成功存取最終使用者主控台檢視並啟動您的**Simple S3 bucket**產品，請以最終使用者 AWS 身分登入 並執行以下任務。

**若要驗證最終使用者是否能存取最終使用者主控台**
+ 開啟位於 https：//[https://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) 的 AWS Service Catalog 主控台，查看：
  + **產品** – 使用者可以使用的產品。
  + **佈建的產品** – 使用者已啟動的佈建產品。

**驗證最終使用者可以啟動 Terraform 產品**

1. 在主控台的產品****區段中，選擇 **Simple S3 儲存貯**體。

1. 選擇**啟動產品**以啟動設定產品的精靈。

1. 在**啟動簡易 S3 儲存貯**體頁面上，輸入 **Amazon S3 product** 以取得佈建的產品名稱。

1. 在**參數**頁面上，輸入以下內容，然後選擇**下一步**：
   +  **bucket\$1name** – 提供 Amazon S3 儲存貯體的唯一名稱。例如 **terraform-s3-product**。

1. 選擇**啟動產品**。主控台會顯示 Amazon S3 產品啟動的堆疊詳細資訊頁面。產品的初始狀態為**變更中**。 AWS Service Catalog 啟動產品需要幾分鐘的時間。若要查看目前狀態，請重新整理瀏覽器。產品成功啟動後，狀態為**可用**。

   AWS Service Catalog 會建立新的 Amazon S3 儲存貯體，名為 **terraform-s3-product**。

# 步驟 10：監控 Terraform 佈建操作
<a name="getstarted-monitoring-Terraform"></a>

如果您想要監控佈建操作，您可以檢閱 Amazon CloudWatch logs和 AWS Step Functions 任何佈建工作流程。

佈建工作流程有兩個狀態機器：
+ `ManageProvisionedProductStateMachine` - 在佈建新的 Terraform 產品和更新現有的 Terraform 佈建產品時 AWS Service Catalog 調用此狀態機器。
+ `TerminateProvisionedProductStateMachine` - 在終止現有的 Terraform 佈建產品時 AWS Service Catalog 呼叫此狀態機器。

**執行監控狀態機器**

1. 開啟 AWS 管理主控台，並在安裝 Terraform 佈建引擎的管理員中樞帳戶中以管理員身分登入。

1. 打開 **AWS Step Functions**。

1. 在左側導覽面板中，選擇**狀態機器**。

1. 選擇 **ManageProvisionedProductStateMachine**。

1. 在**執行**清單中，輸入佈建的產品 ID 來尋找您的執行。
**注意**  
AWS Service Catalog 當您佈建產品時， 會建立佈建的產品 ID。佈建的產品 ID 格式如下：**pp-1111pwtn[ID number]**。

1. 選擇**執行 ID**。

在產生的**執行詳細資訊**頁面上，您可以檢視佈建工作流程中的所有步驟。您也可以檢閱任何失敗的步驟，以識別失敗的原因。