> ## Documentation Index
> Fetch the complete documentation index at: https://docs.iru.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Amazon Redshift Data API

> Iru Compliance가 클러스터 및 서버리스 작업 그룹에 대한 Redshift Data API 문 및 스키마 메타데이터를 읽을 수 있도록 교차 계정 IAM 역할을 사용합니다.

### Amazon Redshift Data API 정보

**Data API**는 JDBC 셸 없이 **문(statement)**, **데이터베이스**, **스키마** 및 **테이블** 목록을 제공합니다. Iru에는 **`redshift-data:`** 읽기 작업과 함께 프로비저닝된 클러스터를 위한 **`redshift:DescribeClusters`**, 그리고 작업 그룹이 범위에 포함된 경우 **`redshift-serverless:List*`** 보조 작업이 필요합니다. \*\*`AmazonRedshiftDataFullAccess`\*\*는 편리하지만 \*\*`ExecuteStatement`\*\*를 포함하므로, 최소 권한을 위해 아래의 **인라인** 정책을 사용하는 것이 좋습니다.

### 작동 방식

Iru는 자체 AWS 계정에서 실행됩니다. 사용자를 대신하여 **Redshift Data API**를 호출하려면 AWS 계정에 두 부분으로 구성된 **IAM 역할**을 생성합니다. 하나는 마법사의 **External ID**를 조건으로 Iru의 principal이 \*\*`sts:AssumeRole`\*\*을 호출할 수 있도록 허용하는 **신뢰 정책**이고, 다른 하나는 읽기 전용 **`redshift-data:`** 작업(그리고 [**AWS**](#aws) 탭의 인라인 예시와 같이 커넥터에 필요한 보조 **`redshift:`** / **`redshift-serverless:`** 호출)이 포함된 **권한 정책**입니다. 그런 다음 역할의 **ARN**을 Iru에 다시 붙여넣습니다.

| 세부 정보 | 값 |
| - | - |
| **카테고리** | Databases |
| **인증** | 교차 계정 IAM 역할 |

### 사전 요구 사항

* Redshift 리소스를 소유한 계정에서 **역할을 생성**할 수 있는 IAM 권한.

### Amazon Redshift Data를 Iru에 연결

<Tabs>
  <Tab title="Iru Compliance">
    <Note>
      여기서 시작하세요. 소스 마법사를 열고 **신뢰 정책**을 복사하세요(**external ID**도 기록해 두세요). AWS에서 역할을 생성할 준비가 되면 [**AWS**](#aws) 탭으로 전환하여 [**IAM 역할 생성**](#create-the-iam-role)을 따르세요. **Role ARN**을 얻은 후 [**Iru Compliance**](#iru-compliance) 탭으로 돌아가 아래의 [**Iru에 역할 ARN 제출**](#submit-the-role-arn-in-iru)을 완료하세요.
    </Note>

    #### Iru에서 신뢰 정책 가져오기

    <Steps>
      <Step title="소스 열기">
        Iru Compliance의 왼쪽 탐색 모음에서 **컴플라이언스**를 펼치고 **소스**를 선택하세요.

        <Frame>
          <img src="https://mintcdn.com/iru/tI0HDLDwHj8r9Ile/assets/media/images/iru-navigation-compliance-sources.png?fit=max&auto=format&n=tI0HDLDwHj8r9Ile&q=85&s=87dcef15fc17d2fb9a6e53f454e41710" alt="왼쪽 탐색: Compliance가 펼쳐지고 Sources가 선택됨" width="410" height="1024" data-path="assets/media/images/iru-navigation-compliance-sources.png" />
        </Frame>
      </Step>

      <Step title="Amazon Redshift Data 켜기">
        **Amazon Redshift Data**를 찾으세요(**범주** 또는 **이름 또는 설명으로 검색** 사용). 해당 카드에서 **토글**을 켜세요. **Iru가 외부 서비스에 대한 액세스를 요청하고 있습니다** 마법사 탭은 열어 두세요.
      </Step>

      <Step title="신뢰 정책 JSON 복사">
        마법사에는 IAM 역할이 사용해야 하는 **신뢰 정책** JSON(**Principal** 및 **sts:ExternalId**)이 표시됩니다. 아래는 구조의 **예시**입니다. 계정, principal ARN 및 external ID가 정확히 일치하도록 **마법사에 표시된 실제 JSON을 복사하세요**.

        ```json copy=false lines theme={null}
        {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Effect": "Allow",
              "Principal": {
                "AWS": "arn:aws:iam::753695775620:role/IruConnect"
              },
              "Condition": {
                "StringEquals": {
                  "sts:ExternalId": "YOUR_EXTERNAL_ID"
                }
              },
              "Action": "sts:AssumeRole"
            }
          ]
        }
        ```
      </Step>

      <Step title="역할을 생성하기 위해 AWS로 전환">
        참고용으로 Iru 마법사 탭을 열어 둔 채 [**AWS**](#aws) 탭으로 전환하여 [**IAM 역할 생성**](#create-the-iam-role)을 따르세요.
      </Step>
    </Steps>

    #### Iru에 역할 ARN 제출

    <Note>
      새 역할의 **Role ARN**을 확보할 수 있도록 먼저 [**AWS**](#aws) 탭([**IAM 역할 생성**](#create-the-iam-role)까지)을 완료하세요.
    </Note>

    <Steps>
      <Step title="IAM Role ARN 붙여넣기">
        Iru 마법사 탭으로 돌아가세요. 커넥터에서 요청하는 위치에 **Role ARN**을 붙여넣으세요.
      </Step>

      <Step title="연결 완료">
        **Submit Role**을 선택하세요. 연결이 성공하면 마법사에 **연결 구성됨**이 표시됩니다.
      </Step>

      <Step title="소스가 활성인지 확인">
        **Iru가 외부 서비스에 대한 액세스를 요청하고 있습니다** 브라우저 탭을 닫은 다음 **컴플라이언스** → **소스**로 돌아가 **Amazon Redshift Data** 카드가 **활성** 상태인지 확인하세요.
      </Step>
    </Steps>
  </Tab>

  <Tab title="AWS">
    <Note>
      이 역할을 생성하기 전에 [**Iru Compliance**](#iru-compliance) 탭에서 [**Iru에서 신뢰 정책 가져오기**](#get-the-trust-policy-from-iru)를 완료하세요. **Trusted entity**를 구성할 때 실제 마법사의 **external ID**와 신뢰 정책을 사용하세요.
    </Note>

    #### IAM 역할 생성

    <Steps>
      <Step title="역할 생성 워크플로 시작">
        **IAM** → **Roles** → **Create role**을 여세요.
      </Step>

      <Step title="신뢰할 수 있는 엔터티 구성">
        **AWS account** → **Another AWS account**를 선택하세요. **`753695775620`**(또는 Iru에 표시된 ID)을 입력하세요. **Require external ID**를 활성화하고 Iru의 external ID를 붙여넣으세요.
      </Step>

      <Step title="권장 인라인 정책 연결">
        **인라인 정책**을 연결하세요(최소 권한을 위해 \*\*`AmazonRedshiftDataFullAccess`\*\*보다 권장됨). 아래 JSON은 권한 형태의 **예시**이므로 보안 팀이 더 적은 작업을 요구하는 경우 조정하세요.

        ```json lines theme={null}
        {
          "Version": "2012-10-17",
          "Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "redshift-data:DescribeStatement",
                "redshift-data:DescribeTable",
                "redshift-data:GetStatementResult",
                "redshift-data:ListDatabases",
                "redshift-data:ListSchemas",
                "redshift-data:ListStatements",
                "redshift-data:ListTables"
              ],
              "Resource": "*"
            },
            {
              "Effect": "Allow",
              "Action": [
                "redshift:DescribeClusters",
                "redshift-serverless:ListNamespaces",
                "redshift-serverless:ListWorkgroups"
              ],
              "Resource": "*"
            }
          ]
        }
        ```
      </Step>

      <Step title="역할 이름 지정 및 ARN 복사">
        역할 이름을 지정하고 생성한 다음 **Role ARN**을 복사하세요. [**Iru Compliance**](#iru-compliance) 탭으로 다시 전환하여 [**Iru에 역할 ARN 제출**](#submit-the-role-arn-in-iru)을 완료하세요.
      </Step>
    </Steps>

    <Note>
      [**Iru Compliance**](#iru-compliance) 탭에서 계속 진행하여 **Role ARN**을 붙여넣고 마법사를 완료하세요([**Iru에 역할 ARN 제출**](#submit-the-role-arn-in-iru)).
    </Note>
  </Tab>
</Tabs>

### 문제 해결

<AccordionGroup>
  <Accordion title="소스를 켰을 때 아무것도 열리지 않습니다">
    Iru 사이트에 대한 **팝업 차단** 설정을 확인하고 다시 시도하세요.
  </Accordion>

  <Accordion title="DescribeClusters 거부됨">
    **클러스터 ID**를 확인할 때 필요합니다. **`redshift:`** 문 블록을 추가하세요.
  </Accordion>

  <Accordion title="Serverless 데이터 누락">
    \*\*[Amazon Redshift Serverless](/ko/compliance/sources/amazon-redshift-serverless-source)\*\*에 따라 \*\*`redshift-serverless:Get*`\*\*로 확장하세요.
  </Accordion>

  <Accordion title="AssumeRole 거부됨">
    External ID가 일치하지 않습니다.
  </Accordion>
</AccordionGroup>

### 관련 문서

<CardGroup cols={2}>
  <Card title="AWS Redshift" icon="link" href="/ko/compliance/sources/amazon-redshift-source">
    Compliance에서 관련 소스를 연결하고 관리합니다.
  </Card>

  <Card title="Amazon Redshift Serverless" icon="link" href="/ko/compliance/sources/amazon-redshift-serverless-source">
    Compliance에서 관련 소스를 연결하고 관리합니다.
  </Card>

  <Card title="소스 관리" icon="plug" href="/ko/compliance/sources-management">
    모든 Compliance 소스를 찾아보고 관리합니다.
  </Card>

  <Card title="컴플라이언스 시작하기" icon="rocket" href="/ko/compliance/getting-started-with-compliance">
    프레임워크, 작업 및 **아티팩트**입니다.
  </Card>
</CardGroup>
