

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

# AWS Service Catalog설정
<a name="setup"></a>

시작하기 전에 다음 작업을 AWS Service Catalog완료합니다.

**Topics**
+ [에 가입 AWS 계정](#sign-up-for-aws)
+ [관리자 액세스 권한이 있는 사용자 생성](#create-an-admin)
+ [AWS Service Catalog 관리자에게 권한 부여](getstarted-iamadmin.md)
+ [AWS Service Catalog 최종 사용자에게 권한 부여](getstarted-iamenduser.md)
+ [Terraform 프로비저닝 엔진 설치 및 구성](install-config-engine.md)

## 에 가입 AWS 계정
<a name="sign-up-for-aws"></a>

이 없는 경우 다음 단계를 AWS 계정완료하여 생성합니다.

**에 가입하려면 AWS 계정**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)을 엽니다.

1. 온라인 지시 사항을 따르세요.

   등록 절차 중 전화 또는 텍스트 메시지를 받고 전화 키패드로 확인 코드를 입력하는 과정이 있습니다.

   에 가입하면 AWS 계정*AWS 계정 루트 사용자*이 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스 및 리소스에 액세스할 권한이 있습니다. 보안 모범 사례는 사용자에게 관리 액세스 권한을 할당하고, 루트 사용자만 사용하여 [루트 사용자 액세스 권한이 필요한 작업](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)을 수행하는 것입니다.

AWS 는 가입 프로세스가 완료된 후 확인 이메일을 보냅니다. 언제든지 [https://aws.amazon.com/](https://aws.amazon.com/)으로 이동하고 **내 계정**을 선택하여 현재 계정 활동을 확인하고 계정을 관리할 수 있습니다.

## 관리자 액세스 권한이 있는 사용자 생성
<a name="create-an-admin"></a>

에 가입한 후 일상적인 작업에 루트 사용자를 사용하지 않도록 관리 사용자를 AWS 계정보호 AWS IAM Identity Center, AWS 계정 루트 사용자활성화 및 생성합니다.

**보안 AWS 계정 루트 사용자**

1.  **루트 사용자를** 선택하고 AWS 계정 이메일 주소를 입력하여 계정 소유자[AWS Management Console](https://console.aws.amazon.com/)로에 로그인합니다. 다음 페이지에서 비밀번호를 입력합니다.

   루트 사용자를 사용하여 로그인하는 데 도움이 필요하면 *AWS Sign-In 사용 설명서*의 [루트 사용자로 로그인](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)을 참조하세요.

1. 루트 사용자의 다중 인증(MFA)을 활성화합니다.

   지침은 *IAM 사용 설명서*의 [AWS 계정 루트 사용자(콘솔)에 대한 가상 MFA 디바이스 활성화를 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html).

**관리자 액세스 권한이 있는 사용자 생성**

1. IAM Identity Center를 활성화합니다.

   지침은 *AWS IAM Identity Center 사용 설명서*의 [AWS IAM Identity Center설정](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)을 참조하세요.

1. IAM Identity Center에서 사용자에게 관리 액세스 권한을 부여합니다.

   를 자격 증명 소스 IAM Identity Center 디렉터리 로 사용하는 방법에 대한 자습서는 사용 *AWS IAM Identity Center 설명서*[의 기본값으로 사용자 액세스 구성을 IAM Identity Center 디렉터리](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) 참조하세요.

**관리 액세스 권한이 있는 사용자로 로그인**
+ IAM IDentity Center 사용자로 로그인하려면 IAM Identity Center 사용자를 생성할 때 이메일 주소로 전송된 로그인 URL을 사용합니다.

  IAM Identity Center 사용자를 사용하여 로그인[하는 데 도움이 필요하면 사용 설명서의 AWS 액세스 포털에 로그인](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)을 참조하세요. *AWS Sign-In * 

**추가 사용자에게 액세스 권한 할당**

1. IAM Identity Center에서 최소 권한 적용 모범 사례를 따르는 권한 세트를 생성합니다.

   지침은 *AWS IAM Identity Center 사용 설명서*의 [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)를 참조하세요.

1. 사용자를 그룹에 할당하고, 그룹에 Single Sign-On 액세스 권한을 할당합니다.

   지침은 *AWS IAM Identity Center 사용 설명서*의 [그룹 추가](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)를 참조하세요.

**Topics**
+ [에 가입 AWS 계정](#sign-up-for-aws)
+ [관리자 액세스 권한이 있는 사용자 생성](#create-an-admin)
+ [AWS Service Catalog 관리자에게 권한 부여](getstarted-iamadmin.md)
+ [AWS Service Catalog 최종 사용자에게 권한 부여](getstarted-iamenduser.md)
+ [Terraform 프로비저닝 엔진 설치 및 구성](install-config-engine.md)

액세스 권한을 제공하려면 사용자, 그룹 또는 역할에 권한을 추가하세요.
+ 의 사용자 및 그룹 AWS IAM Identity Center:

  권한 세트를 생성합니다. *AWS IAM Identity Center 사용자 안내서*에서 [권한 세트 생성](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)의 지침을 따릅니다.
+ ID 제공업체를 통해 IAM에서 관리되는 사용자:

  ID 페더레이션을 위한 역할을 생성합니다. *IAM 사용자 설명서*의 [Create a role for a third-party identity provider (federation)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)의 지침을 따릅니다.
+ IAM 사용자:
  + 사용자가 맡을 수 있는 역할을 생성합니다. *IAM 사용자 설명서*에서 [Create a role for an IAM user](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)의 지침을 따릅니다.
  + (권장되지 않음) 정책을 사용자에게 직접 연결하거나 사용자를 사용자 그룹에 추가합니다. IAM 사용 설명서**에서 [사용자(콘솔)에 권한 추가](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)의 지침을 따르세요.

# AWS Service Catalog 관리자에게 권한 부여
<a name="getstarted-iamadmin"></a>

카탈로그 관리자는 다음과 같은 작업을 수행할 수 있는 AWS Service Catalog 관리자 콘솔 보기 및 IAM 권한에 액세스해야 합니다.
+ 포트폴리오 생성 및 관리
+ 제품 생성 및 관리
+ 템플릿 제약 조건을 추가하여 최종 사용자가 제품을 시작할 때 사용할 수 있는 옵션 제어
+ 시작 제약 조건을 추가하여 최종 사용자가 제품을 시작할 때가 수 AWS Service Catalog 임하는 IAM 역할 정의
+ 최종 사용자에게 제품에 대한 액세스 권한 부여

IAM 권한을 관리하는 사용자 또는 관리자는 이 자습서를 완료하는 데 필요한 정책을 IAM 사용자, 그룹 또는 역할에 연결해야 합니다.

**카탈로그 관리자에게 권한을 부여하려면**

1. IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))을 엽니다.

1.  서비스 탐색 창에서 **액세스 관리**를 확장하고 **사용자**를 선택합니다. 카탈로그 관리자로 사용하려는 IAM 사용자를 이미 만든 경우, 해당 사용자 이름을 선택하고 **권한 추가**를 선택합니다. 그렇지 않은 경우 사용자를 다음과 같이 만듭니다.

   1.  **사용자 추가**를 선택합니다.

   1.  **사용자 이름**에 **ServiceCatalogAdmin**을 입력합니다.

   1.  **프로그래밍 방식 액세스** 및 **AWS Management Console 액세스**를 선택합니다.

   1.  **다음: 권한**을 선택합니다.

1.  **기존 정책 직접 첨부**를 선택합니다.

1.  **정책 생성**을 선택하고 다음 작업을 수행합니다.

   1.  **JSON** 탭을 선택합니다.

   1.  다음 정책 예제를 복사하여 **정책 설명서**에 붙여넣습니다.

      ```
      {
          "Version": "2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ec2:CreateKeyPair",
                      "iam:AddRoleToInstanceProfile",
                      "iam:AddUserToGroup",
                      "iam:AttachGroupPolicy",
                      "iam:CreateAccessKey",
                      "iam:CreateGroup",
                      "iam:CreateInstanceProfile",
                      "iam:CreateLoginProfile",
                      "iam:CreateRole",
                      "iam:CreateUser",
                      "iam:Get*",
                      "iam:List*",
                      "iam:PutRolePolicy",
                      "iam:UpdateAssumeRolePolicy"
                  ],
                  "Resource": [
                      "*"
                  ]
              }
          ]
      }
      ```

   1.  **다음: 태그**를 선택합니다.

   1.  (선택 사항) 키-값 쌍을 리소스와 연결하려면 **태그 추가**를 선택합니다. 최대 50개의 태그를 추가할 수 있습니다.
**참고**  
 태그는 리소스에 추가할 수 있는 키-값 쌍입니다. 이렇게 하면 리소스를 식별, 구성, 검색할 수 있습니다. 자세한 내용은 *AWS 일반 참조 참조 안내서*의 [AWS 리소스 태그 지정](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)을 참조하세요.

   1.  **다음: 검토**를 선택합니다.

   1.  **정책 이름**에 **ServiceCatalogAdmin-AdditionalPermissions**을 입력합니다.
**중요**  
 Amazon S3에가 AWS Service Catalog 저장하는 템플릿에 액세스할 수 있는 권한을 관리자에게 부여해야 합니다Amazon S3. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [버킷 정책 사용](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html)을 참조하십시오.

   1.  **정책 생성**을 선택하세요.

1. 권한 페이지가 있는 브라우저 창으로 돌아와 **새로고침**을 선택합니다.

1. 검색 필드에 **ServiceCatalog**를 입력하여 정책 목록을 필터링합니다.

1. **`AWSServiceCatalogAdminFullAccess`**의 관리형 정책 옆의 확인란을 선택한 후 **`ServiceCatalogAdmin-AdditionalPermissions`** **다음: 검토**를 선택합니다.

1. 사용자를 업데이트하려는 경우 **권한 추가**를 선택합니다.

   사용자를 만들려는 경우 **사용자 생성**을 선택합니다. 보안 인증을 다운로드하거나 복사한 후 **닫기**를 선택합니다.

1. 카탈로그 관리자로 로그인하려면 계정별 URL을 사용합니다. 이 URL을 찾으려면 탐색 창에서 **대시보드**를 선택하고 **링크 복사**를 선택합니다. 브라우저에 링크를 붙여넣고, 이 절차에서 만들거나 업데이트한 IAM 사용자의 이름과 암호를 사용합니다.

# AWS Service Catalog 최종 사용자에게 권한 부여
<a name="getstarted-iamenduser"></a>

최종 사용자가를 사용하려면 먼저 AWS Service Catalog 최종 사용자 콘솔 보기에 대한 액세스 권한을 부여 AWS Service Catalog해야 합니다. 액세스 권한을 부여하려면 최종 사용자가 사용하는 역할, 그룹 또는 IAM 사용자에 정책을 연결합니다. 다음 절차에서는 ****`AWSServiceCatalogEndUserFullAccess`**** 정책을 IAM 그룹에 연결합니다.

**최종 사용자 그룹에 권한을 부여하려면**

1. IAM 콘솔([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/))을 엽니다.

1. 탐색 창에서 **사용자 그룹**을 선택합니다.

1. **새 그룹 생성**을 선택하고 다음 작업을 수행합니다.

   1. **그룹 이름**에 **Endusers**를 입력합니다.

   1. 검색 필드에 **AWSServiceCatalog**를 입력하여 정책 목록을 필터링합니다.

   1. ****`AWSServiceCatalogEndUserFullAccess`**** 정책에 대한 확인란을 선택합니다. 대신에 ****`AWSServiceCatalogEndUserReadOnlyAccess`****을 선택할 수도 있습니다.

   1. **그룹 생성**을 선택합니다.

1. 탐색 창에서 **사용자**를 선택합니다.

1. **사용자 추가**를 선택하고 다음과 같이 합니다.

   1. **사용자 이름**에 사용자 이름을 입력합니다.

   1. **암호 - AWS 관리 콘솔 액세스를** 선택합니다.

   1. **다음: 권한**을 선택합니다.

   1. **사용자를 그룹에 추가**를 선택합니다.

   1. **최종 사용자** 그룹의 확인란을 선택하고 **다음: 태그**를 선택한 후 **다음: 검토**를 선택합니다.

   1. **검토** 페이지에서 **사용자 생성**을 선택합니다. 자격 증명을 다운로드하거나 복사한 후 [**Close**]를 선택합니다.

# Terraform 프로비저닝 엔진 설치 및 구성
<a name="install-config-engine"></a>

에서 Terraform 제품을 성공적으로 사용하려면 Terraform 제품을 관리할 계정과 동일한 계정에 Terraform 프로비저닝 엔진을 설치하고 구성해야 AWS Service Catalog합니다. 시작하려면에서 제공하는 Terraform 프로비저닝 엔진을 사용하면 Terraform 프로비저닝 엔진 AWS이 작동하는 데 필요한 코드와 인프라를 설치하고 구성할 수 있습니다 AWS Service Catalog. 이 일회성 설정은 약 30분이 소요됩니다.는 GitHub 리포지토리[에 Terraform 프로비저닝 엔진 설치 및 구성](https://github.com/aws-samples/service-catalog-engine-for-terraform-os) 지침을 AWS Service Catalog 제공합니다.

## 대기열 결정
<a name="queue-determination"></a>

프로비저닝 작업을 호출하면는 프로비저닝 엔진의 관련 대기열로 전송할 페이로드 메시지를 AWS Service Catalog 준비합니다. 대기열에 대한 ARN을 빌드하기 위해 AWS Service Catalog 는 다음과 같은 가정을 합니다.
+ 프로비저닝 엔진은 제품 소유자의 계정에 있습니다.
+ 프로비저닝 엔진은 호출이 이루어진 리전과 동일한 리전에 위치 AWS Service Catalog 합니다.
+ 프로비저닝 엔진 대기열은 아래에 설명된 문서화된 이름 지정 스키마를 따릅니다.

예를 들어 계정 1111111111에서 생성된 제품을 사용하여 계정 0000000000000`us-east-1`에서 ProvisionProduct를 호출하는 경우 올바른 SQS ARN이 라고 AWS Service Catalog 가정합니다`arn:aws:sqs:us-east-1:0000000000000:ServiceCatalogTerraformOSProvisionOperationQueue`.

`DescribeProvisioningParameters`에서 호출한 Lambda 함수에도 동일한 로직이 적용됩니다.

# Terraform 프로비저닝 엔진에 혼동된 대리자 추가
<a name="confused-deputy-TRFM-engine"></a>

## `lambda:Invoke` 작업에 대한 액세스를 제한하는 엔드포인트의 혼동된 대리자 컨텍스트 키
<a name="confused-deputy-TRFM-lambda"></a>

 AWS Service Catalog제공 엔진에서 생성한 파라미터 구문 분석기 Lambda 함수에는 AWS Service Catalog 서비스 보안 주체에게만 교차 계정 `lambda:Invoke` 권한을 부여하는 액세스 정책이 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ServiceCatalogTerraformOSParameterParser"
        }
    ]
}
```

------

이는 와의 통합이 제대로 작동하는 AWS Service Catalog 데 필요한 유일한 권한이어야 합니다. 하지만 `aws:SourceAccount` [Confused Deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy) 컨텍스트 키를 사용하여 이를 더 제한할 수 있습니다. 가 이러한 대기열로 메시지를 AWS Service Catalog 보낼 때는 키를 프로비저닝 계정의 ID로 AWS Service Catalog 채웁니다. 이는 포트폴리오 공유를 통해 제품을 배포하고 특정 계정만 엔진을 사용하도록 하려는 경우에 유용합니다.

예를 들어 아래 표시된 조건을 사용하여 000000000000 및 111111111111에서 시작된 요청만 허용하도록 엔진을 제한할 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "lambda:InvokeFunction",
            "Resource": "arn:aws:lambda:us-east-1:111122223333:function:ServiceCatalogTerraformOSParameterParser",
            "Condition": {
                "StringLike": {
                    "aws:SourceAccount": [
                        "000000000000",
                        "111111111111"
                    ]
                }
            }
        }
    ]
}
```

------

## `sqs:SendMessage` 작업에 대한 액세스를 제한하는 엔드포인트의 혼동된 대리자 컨텍스트 키
<a name="confused-deputy-TRFM-sqs"></a>

프로비저닝 작업은 AWS Service Catalog제공 엔진에서 생성한 Amazon SQS 대기열에 AWS Service Catalog 서비스 보안 주체에게만 교차 계정`sqs:SendMessage`(및 관련 KMS) 권한을 부여하는 액세스 정책을 적용합니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable AWS Service Catalog to send messages to the queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "sqs:SendMessage",
            "Resource": [
                "arn:aws:sqs:us-east-1:111122223333:ServiceCatalogTerraformOSProvisionOperationQueue"
            ]
        },
        {
            "Sid": "Enable AWS Service Catalog encryption/decryption permissions when sending message to queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": [
                "kms:DescribeKey",
                "kms:Decrypt",
                "kms:ReEncryptFrom",
                "kms:ReEncryptTo",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_id"
        }
    ]
}
```

------

이는 와의 통합이 제대로 작동하는 AWS Service Catalog 데 필요한 유일한 권한이어야 합니다. 하지만 `aws:SourceAccount` [Confused Deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy) 컨텍스트 키를 사용하여 이를 더 제한할 수 있습니다. 가 이러한 대기열에 메시지를 AWS Service Catalog 보내면는 키를 프로비저닝 계정의 ID로 AWS Service Catalog 채웁니다. 이는 포트폴리오 공유를 통해 제품을 배포하고 특정 계정만 엔진을 사용하도록 하려는 경우에 유용합니다.

예를 들어 아래 표시된 조건을 사용하여 000000000000 및 111111111111에서 시작된 요청만 허용하도록 엔진을 제한할 수 있습니다.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable AWS Service Catalog to send messages to the queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": "sqs:SendMessage",
            "Resource": [
                "arn:aws:sqs:us-east-1:111122223333:ServiceCatalogTerraformOSProvisionOperationQueue"
            ],
            "Condition": {
                "StringLike": {
                    "aws:SourceAccount": [
                        "000000000000",
                        "111111111111"
                    ]
                }
            }
        },
        {
            "Sid": "Enable AWS Service Catalog encryption/decryption permissions when sending message to queue",
            "Effect": "Allow",
            "Principal": {
                "Service": "servicecatalog.amazonaws.com"
            },
            "Action": [
                "kms:DescribeKey",
                "kms:Decrypt",
                "kms:ReEncryptFrom",
                "kms:ReEncryptTo",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_id"
        }
    ]
}
```

------