

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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.는 표준화 및 사전 승인된 Terraform 템플릿 카탈로그 작성, 액세스 제어, 버전 관리, 태그 지정, 다른 AWS 계정과의 공유 등 여러 주요 기능에서 Terraform을 AWS Service Catalog 지원합니다. 에서 AWS Service Catalog최종 사용자는 액세스할 수 있는 간단한 제품 및 버전 목록을 확인한 다음 단일 작업으로 해당 제품을 배포할 수 있습니다.

**참고**  
최근 Terraform의 라이선스 변경으로 인해 HashiCorp 기술을 계속 지원하기 위해 AWS Service Catalog 는 *Terraform Open Source*에 대한 이전 참조를 *외부*로 변경헀습니다. 외부 제품 유형에는 이전에 Terraform Open Source로 알려진 Terraform Community Edition에 대한 지원이 포함됩니다. 기존 Terraform Open Source 제품 및 프로비저닝된 제품을 외부 제품 유형으로 마이그레이션하는 방법에 대한 자세한 정보 및 지침은 [기존 Terraform Open Source 제품 및 프로비저닝된 제품을 외부 제품 유형으로 업데이트](update_terraform_open_source_to_external.md) 섹션을 검토하십시오.

다음 자습서의 단계는 AWS Service Catalog에서 Terraform 제품을 시작하는 데 도움을 줍니다.

카탈로그 관리자로서 중앙 관리자 계정(허브 계정)에서 작업합니다. 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>

최근 Terraform의 라이선스 변경으로 인해 HashiCorp 기술을 계속 지원하기 위해 AWS Service Catalog 는 *Terraform Open Source*에 대한 이전 참조를 *외부*로 변경헀습니다. 외부 제품 유형에는 이전에 Terraform Open Source로 알려진 Terraform Community Edition에 대한 지원이 포함됩니다. AWS Service Catalog 는 더 이상 *새로운* 제품이나 프로비저닝된 제품에 대한 유효한 제품 유형으로 Terraform 오픈 소스를 지원하지 않습니다. 제품 버전 및 프로비저닝된 제품을 포함하여 기존 Terraform Open Source 리소스만 업데이트하거나 종료할 수 있습니다.

아직 전환하지 않은 경우 이 섹션의 지침에 따라 기존의 모든 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 제품을 생성하기 위한 사전 조건으로 Service Catalog 관리자 계정(허브 계정)에 프로비저닝 엔진을 설치하고 구성 AWS 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) 구성 파일을 제공합니다.

## SAML 구성 개요
<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` AWS Service Catalog 만를 지원합니다. 따라서 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. 제품 세부 정보 섹션의 **제품 생성** 페이지에서 **외부** 또는 **Terraform Cloud** 제품 유형을 선택합니다. Service Catalog는 *외부* 제품 유형을 사용하여 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. **생성(Create)**을 선택합니다.

# 4단계: 포트폴리오에 제품 추가
<a name="getstarted-portfolio-add-product-Terraform"></a>

포트폴리오를 만든 후 2단계에서 만든 HashiCorp Terraform Cloud 제품을 추가할 수 있습니다.

**포트폴리오에 제품을 추가하려면**

1.  **제품 목록** 페이지로 이동합니다.

1.  2단계에서 만든 Simple S3 버킷 Terraform Cloud 제품을 선택한 다음 **작업**을 선택합니다. 드롭다운 목록에서 **포트폴리오에 제품 추가**를 선택합니다. AWS Service Catalog 는 **포트폴리오에 Simple S3 버킷 추가** 창을 표시합니다.

1. S3 버킷 포트폴리오를 선택한 다음 **시작 제약 생성**을 끕니다. 나중에 이 자습서에서 시작 제약 조건을 생성합니다.

1. **포트폴리오에 제품 추가**를 선택합니다.

포트폴리오에 제품을 성공적으로 추가하면가 제품 목록 페이지에 확인 배너를 AWS Service Catalog 표시합니다.

# 5단계: 시작 역할 생성
<a name="getstarted-launchrole-Terraform"></a>

이 단계에서는 Terraform 프로비저닝 엔진과 최종 사용자가 HashiCorp 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. **정책 생성**을 선택합니다.

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\$110단계를 반복합니다.

**참고**  
 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://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 확인합니다. 존재하는 경우 일치하는 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. 콘솔의 **제품** 섹션에서 **Simple S3 버킷**을 선택합니다.

1. **제품 시작**을 선택하여 제품을 구성하는 마법사를 시작합니다.

1. **Simple S3 버킷 시작** 페이지에서 프로비저닝된 제품 이름에 **Amazon S3 product**를 입력합니다.

1. **파라미터** 페이지에서 다음을 입력한 후 **다음** 탭을 선택합니다.
   +  **bucket\$1name** – Amazon S3 버킷의 고유한 이름을 입력합니다. 예를 들어 **terraform-s3-product**입니다.

1. **제품 시작**을 선택합니다. 콘솔은 Amazon S3 제품 시작에 대한 스택 세부 정보 페이지를 표시합니다. 제품의 초기 상태는 **변경 중**입니다. 에서 제품을 시작하는 AWS Service Catalog 데 몇 분 정도 걸립니다. 현재 상태를 보려면 브라우저를 새로 고칩니다. 제품 시작에 성공하면 상태가 **Available**이 됩니다.

   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**를 선택합니다.

결과 **실행 세부 정보** 페이지에서 프로비저닝 워크플로의 모든 단계를 볼 수 있습니다. 또한 실패한 단계를 검토하여 실패 원인을 파악할 수 있습니다.