

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Terraform 製品の使用開始
<a name="getstarted-Terraform"></a>

AWS Service Catalog は、 内の [ HashiCorp Terraform ](https://developer.hashicorp.com/terraform/intro/terraform-editions)設定のガバナンスによる迅速なセルフサービスプロビジョニングを可能にします AWS。を 1 つのツール AWS Service Catalog として使用して、Terraform 設定を大規模に整理、管理、配布できます AWS。 は、標準化および事前承認された Terraform テンプレートのカタログ化、アクセスコントロール、バージョニング、タグ付け、他の AWS アカウントへの共有など、いくつかの主要な機能にわたって Terraform AWS Service Catalog をサポートします。では AWS Service Catalog、エンドユーザーがアクセスできる製品とバージョンの簡単なリストが表示され、それらの製品を 1 つのアクションでデプロイできます。

**注記**  
HashiCorp テクノロジーのサポートを継続するには、Terraform への最近のライセンス変更の結果として、 AWS Service Catalog は、Terraform オープンソースに関する以前の参照を External に変更しました。External 製品タイプには、以前は Terraform オープンソースとして知られていた Terraform Community Edition のサポートが含まれます。既存の Terraform オープンソース製品およびプロビジョニング済み製品を外部製品タイプに移行する方法の詳細と手順については、「[既存の Terraform Open Source 製品およびプロビジョニング済み製品の外部製品タイプへの更新](update_terraform_open_source_to_external.md)」をご覧ください。

以下のチュートリアルの手順は、 AWS Service Catalogで Terraform 製品を使い始めるのに役立ちます。

カタログ管理者は、中央管理者アカウント (ハブアカウント) で作業します。Terrafrm Community Edition 製品と Terraform Cloud 製品のどちらにも Terraform プロビジョニングエンジンが必要です。詳細については、「[Terraform Community Edition (External 製品タイプ) のプロビジョニングエンジン](getstarted-terraform-engine.md#getstarted-terraform-engine-os)」と「[Terraform クCloud 用のプロビジョニングエンジン](getstarted-terraform-engine.md#getstarted-terraform-engine-cloud)」を参照してください。

チュートリアルでは、管理者アカウントで以下のタスクを実行します。
+ Terraform Cloud または External 製品タイプのいずれかを使用して Terraform 製品を作成します。Service Catalog は、[External] 製品タイプを使用して 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 への最近のライセンス変更の結果として、 AWS Service Catalog は、Terraform オープンソースに関する以前の参照を External に変更しました。External 製品タイプには、以前は Terraform オープンソースとして知られていた Terraform Community Edition のサポートが含まれます。 AWS Service Catalog は、「新規」製品またはプロビジョニングされた製品の有効な製品タイプとして Terraform オープンソースをサポートしなくなりました。実行できる操作は、製品バージョンとプロビジョニング済み製品を始めとする既存の Terraform オープンソースリソースの更新または終了のみです。

まだ移行していない場合は、このセクションの指示に従って、既存の Terraform オープンソース製品とプロビジョニング済み製品をすべて External 製品に移行する必要があります。

1. の既存の Terraform リファレンスエンジンを更新 AWS Service Catalog して、**外部**オープンソース製品タイプと **Terraform オープンソース**製品タイプの両方のサポートを含めます。Terraform Reference Engine の更新方法については、[GitHub リポジトリ](https://github.com/aws-samples/service-catalog-engine-for-terraform-os)をご覧ください。

1. 新しい外部製品タイプを使用して、既存の Terraform Open Source 製品を再作成します。

1. Terraform Open Source 製品タイプを使用する既存の製品をすべて削除します。

1. 新しい External 製品タイプを使用して、残りのリソースを再プロビジョニングします。

1. Terraform Open Source 製品タイプを使用する既存のプロビジョニング済み製品をすべて終了します。

既存の製品を移行した後は、tar.gz 設定ファイルを使用する新しい製品に External 製品タイプを使用してください。

AWS Service Catalog は、必要に応じてこの変更を通じてお客様をサポートします。これらの変更によってお客様のアカウントに多大な労力が必要になる場合や、重要な製品ワークロードに影響が及ぶ場合は、アカウント担当者に連絡してサポートを依頼してください。

# 前提条件: Terraform プロビジョニングエンジンの設定
<a name="getstarted-terraform-engine"></a>

で Terraform 製品を作成するための前提条件として AWS Service Catalog、Service Catalog 管理者アカウント (ハブアカウント) にプロビジョニングエンジンをインストールして設定する必要があります。プロビジョニングエンジンは、Terraform Community Edition 製品 (External 製品タイプを使用) と Terraform Cloud 製品 (Terraform Cloud 製品タイプを使用) の両方に必要です。

**注記**  
エンジン設定は 1 回限りの設定で、約 30 分かかります。

## Terraform Community Edition (External 製品タイプ) のプロビジョニングエンジン
<a name="getstarted-terraform-engine-os"></a>

AWS Service Catalog は *External *製品タイプを使用して Terraform Community Edition 製品をサポートします。External 製品タイプは、プロビジョニングエンジンの設定に基づいて、Pulumi、Ansible、Chef などの他のプロビジョニングツールもサポートします。

HashiCorp の Terraform Community Edition で External 製品タイプを使用する AWS Service Catalog 製品の場合、 AWS Service Catalog 管理者アカウント (ハブアカウント) に Terraform プロビジョニングエンジンをインストールして設定する必要があります。 はこのエンジンとそのリソース AWS を管理します。

AWS Service Catalog は、GitHub リポジトリに[、 が提供する Terraform AWSプロビジョニングエンジンのインストールと設定](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 は、Terraform Cloud エンジンの設定手順を含む GitHub リポジトリを提供します。 [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 のみがプロバイダー`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://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) で AWS Service Catalog コンソールを開き、管理者ユーザーとしてサインインします。

1. 「**管理**」セクションに移動し、**[製品リスト]** を選択します。

1. **[製品の作成]** を選択します。

1. [製品の詳細] セクションの **[製品の作成]** ページで、**[External]**または **[Terraform Cloud]** の製品タイプを選択します。Service Catalog は、External 製品タイプを使用して Terraform Community Edition 製品をサポートします。

1. 次の製品の詳細を入力します。
   + [**製品名**] - **Simple S3 bucket**
   + [**製品説明**] — Amazon S3 バケットを含む Terraform 製品。
   + **[所有者]** - **IT**
   + [**ディストリビューター**] – (空白)

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://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 で作成したシンプルな S3 バケット Terraform 製品を選択し、**[アクション]** を選択します。ドロップダウンメニューから **[製品をポートフォリオに追加]** を選択します。 AWS Service Catalog に、**[シンプルな S3 バケットをポートフォリオに追加]** ペインが表示されます。

1. S3 バケットポートフォリオを選択し、**[起動制約の作成]** をオフにします。起動制約は、このチュートリアルの後半で作成します。

1. **[製品をポートフォリオに追加]** を選択します。

製品をポートフォリオに正常に追加すると、 は製品リストページに確認バナー AWS Service Catalog を表示します。

# ステップ 5: 起動ロールを作成する
<a name="getstarted-launchrole-Terraform"></a>

このステップでは、エンドユーザーが HashiCorp Terraform 製品を起動するときに Terraform プロビジョニングエンジンと が引き受け AWS Service Catalog ることができるアクセス許可を指定する IAM ロール (起動ロール) を作成します。

 起動制約としてシンプルな Amazon S3 バケット Terraform 製品に後で割り当てる IAM ロール (起動ロール) には、以下のアクセス許可が必要です。
+ Terraform 製品の基盤となる AWS リソースへのアクセス。このチュートリアルでは、`s3:CreateBucket*`、`s3:DeleteBucket*`、`s3:Get*`、`s3:List*`、および `s3:PutBucketTagging` Amazon S3 オペレーションへのアクセスが含まれます。
+  AWS Service Catalog所有の Amazon S3 バケット内の Amazon S3 テンプレートへの読み取りアクセス 
+ `CreateGroup`、`ListGroupResources`、`DeleteGroup`、および `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. [**Create policy**] を選択します。

1. ナビゲーションペインで [**Roles**] を選択し、続いて [**Create role**] を選択します。

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 製品の起動制限を作成する必要があります。起動制約がない場合、エンドユーザーは製品をプロビジョニングできません。

管理者アカウントで起動ロールを作成したら、その起動ロールを External または 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://console.aws.amazon.com/servicecatalog](https://console.aws.amazon.com/servicecatalog.) で AWS Service Catalog コンソールを開きます。

1. 左側のナビゲーションコンソールから **[ポートフォリオ]** を選択します。

1. **[S3 バケット]** ポートフォリオを選択します。

1. **[ポートフォリオの詳細]** ページで、**[制約]** タブを選択し、**[制約の作成]** を選択します。

1. **[製品]** には **[シンプル S3 バケット]** を選択します。 AWS Service Catalog は **[起動]** 制約タイプを自動的に選択します。

1. **[ロール名を入力]** を選択し、**[SCLaunch-S3product]** を選択します。

1. **[作成]** を選択します。

**注記**  
指定されたロール名は、起動制約を作成したアカウントと、この起動制約を使用して製品を起動するユーザーのアカウントに存在している必要があります。

# ステップ 7: エンドユーザーにアクセス許可を付与する
<a name="getstarted-deploy-Terraform"></a>

HashiCorp Terraform 製品に起動制限を適用したら、スポークアカウントのエンドユーザーにアクセス許可を付与する準備が整います。

このチュートリアルでは、プリンシパル名共有を使用してエンドユーザーにアクセス許可を付与します。プリンシパル名は、管理者がポートフォリオ内で指定してポートフォリオと共有できるグループ、ロール、およびユーザーの名前です。ポートフォリオを共有すると、 AWS Service Catalog はそれらのプリンシパル名がすでに存在するかどうかを確認します。存在する場合、 は一致する IAM プリンシパルを共有ポートフォリオ AWS Service Catalog に自動的に関連付けて、エンドユーザーにアクセスを許可します。詳細については、「[ポートフォリオの共有](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. **[アクセス権の付与]** を選択します。

# ステップ 8: ポートフォリオをエンドユーザーと共有する
<a name="getstarted-share-portfolio-end-user-Terraform"></a>

 AWS Service Catalog 管理者は、account-to-account共有または AWS Organizations 共有を使用して、エンドユーザーアカウントでポートフォリオを配布できます。このチュートリアルでは、組織の管理アカウントでもある管理者アカウント (ハブアカウント) からポートフォリオを組織と共有します。

**管理ハブアカウントからポートフォリオを共有するには**

1. [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://console.aws.amazon.com/servicecatalog/](https://console.aws.amazon.com/servicecatalog/) で AWS Service Catalog コンソールを開き、以下を確認します。
  + [**製品**] - ユーザーが使用できる製品。
  + [**プロビジョニング済み製品**] - ユーザーが起動したプロビジョニング済み製品。

**エンドユーザーが Terraform 製品を起動できることを確認するには**

1. コンソールの **[製品]** セクションで、**[シンプル 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 でプロビジョニングワークフローを確認できます。

プロビジョニングワークフローには次の 2 つのステートマシンがあります。
+ `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]** を選択します。

表示される **[実行詳細]** ページでは、プロビジョニングワークフローのすべてのステップを確認できます。障害が発生した手順を確認して、障害の原因を特定します。