

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

# Amazon Redshift에 연결
<a name="connectors-redshift"></a>

App Studio를 Amazon Redshift와 연결하여 빌더가 애플리케이션에서 Amazon Redshift 리소스에 액세스하고 사용할 수 있도록 하려면 다음 단계를 수행해야 합니다.

1. [1단계: Amazon Redshift 리소스 생성 및 구성](#connectors-redshift-create-resources)

1. [2단계: 적절한 Amazon Redshift 권한을 사용하여 IAM 정책 및 역할 생성](#connectors-redshift-iam)

1. [3단계: Amazon Redshift 커넥터 생성](#connectors-redshift-create-connector)

## 1단계: Amazon Redshift 리소스 생성 및 구성
<a name="connectors-redshift-create-resources"></a>

다음 절차에 따라 App Studio와 함께 사용할 Amazon Redshift 리소스를 생성하고 구성합니다.

**App Studio와 함께 사용할 Amazon Redshift를 설정하려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/) Amazon Redshift 콘솔을 엽니다.

   에서 생성된 관리 사용자를 사용하는 것이 좋습니다[AWS 리소스 관리를 위한 관리 사용자 생성](setting-up-first-time-admin.md#setting-up-create-admin-user).

1. Redshift Serverless 데이터 웨어하우스 또는 프로비저닝된 클러스터를 생성합니다. 자세한 내용은 Amazon [Redshift 사용 설명서의 Redshift Serverless를 사용하여 데이터 웨어하우스 생성](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html#serverless-console-resource-creation) 또는 [클러스터 생성을](https://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html#create-cluster) 참조하세요. ** 

1. 프로비저닝이 완료되면 **쿼리 데이터를** 선택하여 쿼리 편집기를 엽니다. 데이터베이스에 연결합니다.

1. 다음 설정을 변경합니다.

   1. **격리된 세션** 토글을 로 설정합니다`OFF`. 이는 실행 중인 App Studio 애플리케이션과 같은 다른 사용자의 데이터 변경 사항을 볼 수 있도록 하기 위해 필요합니다.

   1. “톱니” 아이콘을 선택합니다. **계정 설정**(Account settings)을 선택합니다. 에 대한 **최대 동시 연결을** 늘립니다`10`. 이는 Amazon Redshift 데이터베이스에 연결할 수 있는 쿼리 편집기 세션 수에 대한 제한입니다. App Studio 애플리케이션과 같은 다른 클라이언트에는 적용되지 않습니다.

1. `public` 스키마로 데이터 테이블을 생성합니다. 이러한 테이블에 대한 초기 데이터`INSERT`입니다.

1. 쿼리 편집기에서 다음 명령을 실행합니다.

   다음 명령은 데이터베이스 사용자를 생성하고 App Studio에서 사용하는 {{AppBuilderDataAccessRole}}이라는 IAM 역할과 연결합니다. 이후 단계에서 IAM 역할을 생성하며, 여기에 있는 이름은 해당 역할에 지정된 이름과 일치해야 합니다.

   ```
   CREATE USER "IAMR:{{AppBuilderDataAccessRole}}" WITH PASSWORD DISABLE;
   ```

   다음 명령은 모든 테이블에 대한 모든 권한을 App Studio에 부여합니다.
**참고**  
보안 모범 사례를 위해 여기에 있는 권한의 범위를 적절한 테이블에 필요한 최소 권한으로 좁혀야 합니다. `GRANT` 명령에 대한 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 [GRANT](https://docs.aws.amazon.com/redshift/latest/dg/r_GRANT.html)를 참조하세요.

   ```
   GRANT ALL ON ALL TABLES IN SCHEMA public to "IAMR:{{AppBuilderDataAccessRole}}";
   ```

## 2단계: 적절한 Amazon Redshift 권한을 사용하여 IAM 정책 및 역할 생성
<a name="connectors-redshift-iam"></a>

App Studio에서 Amazon Redshift 리소스를 사용하려면 관리자가 IAM 정책 및 역할을 생성하여 App Studio에 리소스에 액세스할 수 있는 권한을 부여해야 합니다. IAM 정책은 빌더가 사용할 수 있는 데이터의 범위와 생성, 읽기, 업데이트 또는 삭제와 같이 해당 데이터에 대해 호출할 수 있는 작업을 제어합니다. 그런 다음 IAM 정책은 App Studio에서 사용하는 IAM 역할에 연결됩니다.

서비스 및 정책당 하나 이상의 IAM 역할을 생성하는 것이 좋습니다. 예를 들어 빌더가 Amazon Redshift의 서로 다른 테이블이 지원하는 두 개의 애플리케이션을 생성하는 경우 관리자는 Amazon Redshift의 각 테이블에 대해 하나씩 두 개의 IAM 정책 및 역할을 생성해야 합니다.

### 2a단계: 적절한 Amazon Redshift 권한을 사용하여 IAM 정책 생성
<a name="connectors-redshift-iam-policy"></a>

App Studio에서 생성하고 사용하는 IAM 정책에는 애플리케이션이 모범 보안 사례를 따르는 데 필요한 적절한 리소스에 대한 최소 권한만 포함되어야 합니다.

**적절한 Amazon Redshift 권한을 사용하여 IAM 정책을 생성하려면**

1. [IAM 정책을 생성할 권한이 있는 사용자로 IAM 콘솔](https://console.aws.amazon.com/iam)에 로그인합니다. 에서 생성된 관리 사용자를 사용하는 것이 좋습니다[AWS 리소스 관리를 위한 관리 사용자 생성](setting-up-first-time-admin.md#setting-up-create-admin-user).

1. 왼쪽 탐색 창에서 **정책을** 선택합니다.

1. **정책 생성**을 선택합니다.

1. **정책 편집기** 섹션에서 **JSON** 옵션을 선택합니다.

1. JSON 정책 문서를 입력하거나 붙여 넣습니다. 다음 탭에는 프로비저닝된 Amazon Redshift와 서버리스 Amazon Redshift 모두에 대한 정책 예제가 포함되어 있습니다.
**참고**  
다음 정책은 와일드카드()를 사용하는 모든 Amazon Redshift 리소스에 적용됩니다`*`. 보안 모범 사례를 위해 와일드카드를 App Studio와 함께 사용할 리소스의 Amazon 리소스 이름(ARN)으로 바꿔야 합니다.

------
#### [ Provisioned ]

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
         "Sid": "ProvisionedRedshiftForAppStudio",
         "Effect": "Allow",
            "Action": [
               "redshift:DescribeClusters",
               "redshift:GetClusterCredentialsWithIAM",
               "redshift-data:ListDatabases",
               "redshift-data:ListTables",
               "redshift-data:DescribeTable",
               "redshift-data:DescribeStatement",
               "redshift-data:ExecuteStatement",
               "redshift-data:GetStatementResult"
            ],
            "Resource": "*"
         }
      ]
   }
   ```

------

------
#### [ Serverless ]

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
         {
         "Sid": "ServerlessRedshiftForAppStudio",
         "Effect": "Allow",
            "Action": [
               "redshift-serverless:ListNamespaces",
               "redshift-serverless:GetCredentials",
               "redshift-serverless:ListWorkgroups",
               "redshift-data:ListDatabases",
               "redshift-data:ListTables",
               "redshift-data:DescribeTable",
               "redshift-data:DescribeStatement",
               "redshift-data:ExecuteStatement",
               "redshift-data:GetStatementResult"
            ],
            "Resource": "*"
         }
      ]
   }
   ```

------

------

1. **다음**을 선택합니다.

1. **검토 및 생성** 페이지에서 **RedshiftServerlessForAppStudio** 또는 , **설명**(선택 사항)**RedshiftProvisionedForAppStudio**과 같은 **정책 이름을** 제공합니다.

1. **정책 생성을** 선택하여 정책을 생성합니다.

### 2b단계: App Studio에 Amazon Redshift 리소스에 대한 액세스 권한을 부여하는 IAM 역할 생성
<a name="connectors-redshift-iam-role"></a>

이제 이전에 생성한 정책을 사용하는 IAM 역할을 생성합니다. App Studio는이 정책을 사용하여 구성된 Amazon Redshift 리소스에 액세스할 수 있습니다.

**App Studio에 Amazon Redshift 리소스에 대한 액세스 권한을 부여하는 IAM 역할을 생성하려면**

1. [IAM 역할을 생성할 권한이 있는 사용자로 IAM 콘솔](https://console.aws.amazon.com/iam)에 로그인합니다. 에서 생성된 관리 사용자를 사용하는 것이 좋습니다[AWS 리소스 관리를 위한 관리 사용자 생성](setting-up-first-time-admin.md#setting-up-create-admin-user).

1. 왼쪽 탐색 창에서 **역할을 선택합니다.**

1. **역할 생성**을 선택합니다.

1. **신뢰할 수 있는 엔터티 유형**에서 **사용자 지정 신뢰 정책을** 선택합니다.

1. App Studio 애플리케이션이 계정에서이 역할을 수임하도록 허용하려면 기본 정책을 다음 정책으로 바꿉니다.

   정책에서 다음 자리 표시자를 바꿔야 합니다. 사용할 값은 App Studio의 **계정 설정** 페이지에서 찾을 수 있습니다.
   + {{111122223333}}을 App Studio 인스턴스를 설정하는 데 사용된 계정의 AWS 계정 번호로 바꿉니다. App Studio 인스턴스의 계정 설정에 **AWS 계정 ID**로 나열됩니다.
   + {{1111111-2222-3333-4444-5555555555555를}} App Studio 인스턴스의 계정 설정에 인스턴스 ID로 **나열된 App Studio 인스턴스 ID**로 바꿉니다.

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

****  

   ```
   { 
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           { 
               "Effect": "Allow",
               "Principal": { 
                   "AWS": "arn:aws:iam::{{111122223333}}:root"
               }, 
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                           "aws:PrincipalTag/IsAppStudioAccessRole": "true",
                           "sts:ExternalId": "{{11111111-2222-3333-4444-555555555555}}"
                   }
               }
           } 
       ]
   }
   ```

------

   **다음**을 선택합니다.

1. **권한 추가**에서 이전 단계(**RedshiftServerlessForAppStudio** 또는 )에서 생성한 정책을 검색하고 선택합니다**RedshiftProvisionedForAppStudio**. 정책 옆에 있는 **\+**를 선택하면 정책이 확장되어 정책이 부여한 권한이 표시되고 확인란을 선택하면 정책이 선택됩니다.

   **다음**을 선택합니다.

1. **이름, 검토 및 생성** 페이지에서 **역할 이름** 및 **설명을** 제공합니다.
**중요**  
여기서 역할 이름은 [1단계: Amazon Redshift 리소스 생성 및 구성](#connectors-redshift-create-resources) ({{AppBuilderDataAccessRole}})의 `GRANT` 명령에 사용된 역할 이름과 일치해야 합니다.

1. **3단계: 태그 추가**에서 **새 태그 추가**를 선택하여 App Studio 액세스를 제공하는 다음 태그를 추가합니다.
   + **키: **`IsAppStudioDataAccessRole`
   + **값: **`true`

1. **역할 생성을** 선택하고 생성된 Amazon 리소스 이름(ARN)을 기록해 둡니다. [App Studio에서 Amazon Redshift 커넥터를 생성할](#connectors-redshift-create-connector) 때 필요합니다.

## 3단계: Amazon Redshift 커넥터 생성
<a name="connectors-redshift-create-connector"></a>

이제 Amazon Redshift 리소스와 IAM 정책 및 역할을 구성했으므로 해당 정보를 사용하여 빌더가 앱을 Amazon Redshift에 연결하는 데 사용할 수 있는 커넥터를 App Studio에 생성합니다.

**참고**  
커넥터를 생성하려면 App Studio에 관리자 역할이 있어야 합니다.

**Amazon Redshift용 커넥터를 생성하려면**

1. App Studio로 이동합니다.

1. 왼쪽 탐색 창의 **관리** 섹션에서 **커넥터를** 선택합니다. 각각에 대한 몇 가지 세부 정보가 포함된 기존 커넥터 목록이 표시된 페이지로 이동합니다.

1. **\+ 커넥터 생성을** 선택합니다.

1. **Amazon Redshift** 커넥터를 선택합니다.

1. 다음 필드를 작성하여 커넥터를 구성합니다.
   + **이름:** 커넥터의 이름을 입력합니다.
   + **설명:** 커넥터에 대한 설명을 제공합니다.
   + **IAM 역할:**에서 생성된 IAM 역할의 Amazon 리소스 이름(ARN)을 입력합니다[2b단계: App Studio에 Amazon Redshift 리소스에 대한 액세스 권한을 부여하는 IAM 역할 생성](#connectors-redshift-iam-role). IAM에 대한 자세한 내용은 [IAM 사용 설명서](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)를 참조하세요.
   + **리전:** Amazon Redshift 리소스가 있는 AWS 리전을 선택합니다.
   + **컴퓨팅 유형:** Amazon Redshift Serverless 또는 프로비저닝된 클러스터를 사용하고 있는지 선택합니다.
   + **클러스터 또는 작업 그룹 선택:** **프로비저닝됨을** 선택한 경우 App Studio에 연결할 클러스터를 선택합니다. **서버리스**를 선택한 경우 작업 그룹을 선택합니다.
   + **데이터베이스 선택:** App Studio에 연결할 데이터베이스를 선택합니다.
   + **사용 가능한 테이블:** App Studio에 연결할 테이블을 선택합니다.

1. **다음**을 선택합니다. 연결 정보를 검토하고 **생성을** 선택합니다.

1. 새로 생성된 커넥터가 **커넥터** 목록에 나타납니다.