

 Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 [블로그 게시물](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)을 참조하세요.

# 신뢰할 수 있는 자격 증명 전파와 함께 데이터 API 사용
<a name="data-api-trusted-identity-propagation"></a>

Amazon Redshift 계정 관리자는 Amazon Redshift 클러스터 또는 작업 그룹을 AWS IAM Identity Center와 통합할 수 있으므로 Single Sign-On으로 Amazon Redshift에 대한 인력 액세스를 관리하는 데 도움이 됩니다. 자세한 내용은 [Amazon Redshift와 AWS IAM Identity Center 통합 설정](redshift-iam-access-control-idp-connect-console.md) 섹션을 참조하세요. Amazon Redshift 데이터 API는 IAM Identity Center 사용자 ID를 Amazon Redshift 클러스터 또는 작업 그룹 및 AWS Lake Formation과 같은 체인 아래 단계의 다른 서비스에 전파하는 것을 지원합니다. [신뢰할 수 있는 ID 전파를 사용하여 프로그래밍 방식으로 AWS 서비스 액세스](https://aws.amazon.com/blogs//security/access-aws-services-programmatically-using-trusted-identity-propagation/)의 단계에 따라 데이터 API를 사용하여 설정하고 쿼리할 수 있습니다.

ID 강화 IAM 역할 세션에서 IAM Identity Center 사용자 ID를 사용하여 데이터 API를 직접적으로 호출하는 경우, 동일한 IAM Identity Center 사용자를 사용하여 결과 문 및 문 결과에만 액세스할 수 있습니다. 예를 들어 다음 AWS CLI 명령은 `execute-statement` 작업을 직접적으로 호출함으로써 신뢰할 수 있는 ID 전파를 사용하여 SQL 명령을 실행합니다.

```
aws redshift-data execute-statement 
--sql "{{select current_user;}}" 
--cluster-id {{mycluster}}
--database {{dev}}
```

다음 AWS CLI 명령은 `batch-execute-statement` 작업을 직접적으로 호출하여 두 개의 SQL 명령을 실행합니다.

```
aws redshift-data batch-execute-statement 
--sqls  "{{select current_user;}}"  "{{select current_date;}}"
--cluster-id {{mycluster}}
--database {{dev}}
```

자격 증명 강화 IAM 역할 세션에서 제출한 `cancel-statement`, `describe-statement`, `get-statement-result` 및 `get-statement-result-v2`를 사용하여 문에 액세스하려면 IAM Identity Center 사용자 및 IAM 역할이 `execute-statment` 또는 `batch-execute-statement`를 실행하는 데 사용된 자격 증명과 일치해야 합니다. 예를 들어 다음 AWS CLI 명령은 SQL 문의 결과를 가져옵니다.

```
aws redshift-data get-statement-result 
--id {{a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}}
```

문을 나열하려면 IAM Identity Center 사용자가 할당된 Amazon Redshift IAM Identity Center 애플리케이션에만 액세스할 수 있도록 `cluster-identifier` 또는 `workgroup-name` 파라미터를 제공해야 합니다. 예를 들어 다음 AWS CLI 명령은 특정 클러스터에 대한 문을 나열합니다.

```
aws redshift-data list-statements
--cluster-identifier {{mycluster}}
```

또한 신뢰할 수 있는 자격 증명 전파를 사용하여 클러스터 또는 작업 그룹의 데이터베이스 객체에 액세스하는 데이터 API 작업을 간접적으로 호출할 수 있습니다. 여기에는 `list-databases`, `list-schemas`, `list-tables` 및 `describe-table` 작업이 포함됩니다.

IAM Identity Center 사용자가 수행한 API 직접 호출은 AWS CloudTrail에서 추적할 수 있습니다. CloudTrail 이벤트의 `onBehalfOf` 섹션에는 IAM Identity Center 사용자 ID와 ID 스토어 ARN이 표시됩니다. 다음 예제는 IAM Identity Center 사용자 ID가 `a1b2c3d4-5678-90ab-cdef-EXAMPLE11111`이고 Identity 스토어 ARN이 `arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2`인 `onBehalfOf` 섹션이 표시된 CloudTrail 이벤트의 스니펫을 보여줍니다.

```
{
            "eventVersion":"1.10",
            "userIdentity":{
            "type":"AssumedRole",
            ...
            },
            "onBehalfOf":{
            "userId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
            "identityStoreArn":"arn:aws:identitystore::123456789012:identitystore/d-9067bc44d2"
            }
            },
            "eventTime":"2025-01-13T04:46:27Z",
            "eventSource":"redshift-data.amazonaws.com",
            "eventName":"ExecuteStatement",
            "awsRegion":"us-east-1"
            }
```

다음 SQL 명령을 실행하여 IAM Identity Center 사용자가 제출한 쿼리를 확인할 수 있습니다. 이 예제에서 Identity Center에 등록된 이메일은 `username@example.com`입니다.

```
SELECT
    h.query_id,
    h.database_name,
    h.status,
    h.query_text,
    u.usename,
    h.start_time,
    h.end_time
FROM
    sys_query_history h
LEFT JOIN
    pg_user u
ON
    h.user_id = u.usesysid
where u.usename='awsidc:{{username@example.com}}'    
ORDER BY
    h.start_time DESC;
```