Amazon Redshift는 패치 198부터 새 Python UDF 생성을 더 이상 지원하지 않습니다. 기존 Python UDF는 2026년 6월 30일까지 계속 작동합니다. 자세한 내용은 블로그 게시물
자격 증명 강화 IAM 역할 세션을 사용하여 Redshift에 연결
IAM Identity Center를 사용하여 Amazon Redshift 클러스터 및 서버리스 작업 그룹에 대한 페더레이션 액세스를 제공할 수 있습니다. 이 접근 방식을 통해 사용자는 Identity Center 자격 증명을 사용하여 인증할 수 있습니다.
Amazon Redshift는 사용자 자격 증명 정보가 포함된 승인된 토큰을 생성하는 GetIdentityCenterAuthToken API 작업을 제공합니다. 이러한 API는 프로비저닝된 클러스터와 서버리스 작업 그룹 모두에 사용할 수 있습니다. 토큰을 사용하면 기존 Identity Center 설정을 사용하여 Amazon Redshift 데이터베이스에 원활하게 Single Sign-On 액세스할 수 있습니다.
사전 조건
Amazon Redshift에서 Identity Center 인증을 사용하기 전에 다음이 있는지 확인합니다.
-
Identity Center 설정: 계정에 사용자 ID 및 적절한 애플리케이션 할당으로 구성된 IAM Identity Center가 있어야 합니다. 설정 지침은 IAM Identity Center 설정을 참조하세요.
중요
Redshift에 연결하려면 redshift:connect 범위를 사용해야 합니다.
-
자격 증명 강화 자격 증명: 애플리케이션에서는 임베디드 사용자 자격 증명 정보가 포함된 자격 증명 강화 자격 증명을 사용해야 합니다. 자세한 내용은 자격 증명 강화 IAM 역할 세션 사용을 참조하세요.
-
IAM 권한: IAM 역할 또는 사용자에게
GetIdentityCenterAuthTokenAPI를 호출하고 지정된 클러스터 또는 작업 그룹에 액세스할 수 있는 권한이 있어야 합니다. 필요한 권한:-
프로비저닝된 클러스터의 경우: 클러스터 ARN의
redshift:GetIdentityCenterAuthToken(형식:arn:aws:redshift:region:account:cluster:cluster-name) -
서버리스 작업 그룹의 경우: 작업 그룹 ARN의
redshift-serverless:GetIdentityCenterAuthToken(형식:arn:aws:redshift-serverless:region:account:workgroup/workgroup-name)
-
-
호환되는 드라이버: Identity Center 인증 토큰을 지원하는 Amazon Redshift JDBC 또는 ODBC 드라이버를 사용합니다.
-
JDBC 드라이버: Amazon Redshift JDBC 드라이버 버전 2.0 설치 및 구성을 참조하세요.
-
ODBC 드라이버: Amazon Redshift ODBC 드라이버 버전 2.0 설치 및 구성을 참조하세요.
-
Identity Center 인증 작동 방식
Amazon Redshift에 대한 Identity Center 인증은 다음 워크플로를 사용합니다.
-
애플리케이션은 임베디드 사용자 자격 증명 정보가 포함된 자격 증명 강화 자격 증명을 사용하여
GetIdentityCenterAuthTokenAPI를 직접적으로 호출합니다. -
Amazon Redshift는 Identity Center 자격 증명을 검증하고 특정 클러스터 또는 작업 그룹으로 범위가 지정된 암호화된 권한 있는 토큰을 생성합니다. 예제 IAM 정책을 참조하세요.
-
애플리케이션은 이 토큰을 사용하여 지정된 Amazon Redshift 클러스터 또는 작업 그룹에 연결합니다.
-
Amazon Redshift 데이터 플레인은 토큰을 검증하고 Identity Center 애플리케이션 내에서 Identity Center 사용자의 권한을 기반으로 액세스 권한을 부여합니다.
중요
이 API에는 자격 증명 강화 자격 증명이 필요합니다. 자세한 내용은 자격 증명 강화 IAM 역할 세션 사용을 참조하세요.
자격 증명 강화 자격 증명 없이 API를 직접적으로 호출하면 UnsupportedOperationFault 오류가 발생합니다.
GetIdentityCenterAuthToken API 작업
Amazon Redshift는 프로비저닝된 클러스터용과 서버리스 작업 그룹용의 두 가지 개별 GetIdentityCenterAuthToken API 작업을 제공합니다. 두 작업의 이름은 동일하지만 대상 리소스 유형에 따라 다른 파라미터를 허용합니다.
프로비저닝된 클러스터에 대한 GetIdentityCenterAuthToken
프로비저닝된 Amazon Redshift 클러스터의 경우 Amazon Redshift 서비스의 GetIdentityCenterAuthToken API를 사용하여 승인된 토큰을 생성합니다.
요청 구문
{ "ClusterIds": [ "string" ] }
요청 파라미터
- ClusterIds
-
토큰에 액세스할 수 있는 권한이 부여될 Amazon Redshift 클러스터 식별자 목록입니다. 토큰은 이 목록에 지정된 클러스터로만 인증하는 데 사용할 수 있습니다.
유형: 문자열 배열
길이 제한: 최소 항목은 1입니다. 최대 항목 수 20개.
필수 여부: 예
CLI 예
예: 단일 클러스터에 대해 승인된 토큰 가져오기
aws redshift get-identity-center-auth-token \ --cluster-ids my-redshift-cluster
예: 여러 클러스터에 대해 승인된 토큰 가져오기
aws redshift get-identity-center-auth-token \ --cluster-ids my-cluster-1 my-cluster-2
서버리스 작업 그룹을 위한 GetIdentityCenterAuthToken
Amazon Redshift Serverless 작업 그룹의 경우 Amazon Redshift Serverless 서비스의 GetIdentityCenterAuthToken API를 사용하여 승인된 토큰을 생성합니다.
요청 구문
{ "WorkgroupNames": [ "string" ] }
요청 파라미터
- WorkgroupNames
-
토큰에 액세스할 수 있는 권한이 부여될 Amazon Redshift Serverless 작업 그룹 이름의 목록입니다. 토큰은 이 목록에 지정된 작업 그룹으로만 인증하는 데 사용할 수 있습니다.
유형: 문자열 배열
길이 제한: 최소 항목은 1입니다. 최대 항목 수 20개.
필수 여부: 예
CLI 예
예: 단일 작업 그룹에 대해 승인된 토큰 가져오기
aws redshift-serverless get-identity-center-auth-token \ --workgroup-names my-workgroup
예: 여러 작업 그룹에 대해 승인된 토큰 가져오기
aws redshift-serverless get-identity-center-auth-token \ --workgroup-names workgroup-1 workgroup-2
응답 구문
두 API 모두 동일한 응답 구조를 반환합니다.
{ "AuthorizedToken": "string", "ExpirationTime": "timestamp" }
응답 파라미터
- AuthorizedToken
-
사용자 자격 증명 정보와 권한 있는 클러스터 또는 작업 그룹 목록이 포함된 암호화된 권한 있는 토큰입니다. 이 토큰은 민감한 데이터로 취급해야 합니다.
유형: 문자열
- ExpirationTime
-
토큰이 만료되는 날짜 및 시간으로, UTC로 표시됩니다. 토큰은 생성 시점으로부터 1시간 동안 유효합니다.
유형: 타임스탬프
응답의 예
{ "AuthorizedToken": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ1c2VyQGV4YW1wbGUuY29tIiwiaWF0IjoxNjQwOTk1MjAwLCJleHAiOjE2NDA5OTg4MDAsImNsdXN0ZXJzIjpbIm15LWNsdXN0ZXIiXX0...", "ExpirationTime": "2024-01-01T12:00:00Z" }
드라이버 통합
Amazon Redshift 드라이버는 직접 토큰 사용을 통해 Identity Center 인증을 지원합니다.
직접 토큰 사용
GetIdentityCenterAuthToken API를 직접적으로 호출하여 토큰을 얻은 후 SUBJECT_TOKEN 토큰 유형과 함께 IdpTokenAuthPlugin을 사용합니다.
연결 구성:
plugin_name = com.amazon.redshift.plugin.IdpTokenAuthPlugin token_type = SUBJECT_TOKEN token = {encrypted_token_from_api_response}
Identity Center 인증 플러그인 및 드라이버 구성에 대한 자세한 내용은 Amazon Redshift 클러스터에 연결을 참조하세요.
Java 코드 예제
Identity Center 인증을 사용하여 연결할 샘플 Java 코드:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; // Get token from GetIdentityCenterAuthToken API String token = "your_encrypted_token_from_api_response"; // Configure connection properties Properties props = new Properties(); props.setProperty("user", "your_username"); props.setProperty("plugin_name", "com.amazon.redshift.plugin.IdpTokenAuthPlugin"); props.setProperty("token_type", "SUBJECT_TOKEN"); props.setProperty("token", token); // Connect to Redshift String url = "jdbc:redshift://your-cluster.region.redshift.amazonaws.com:5439/your_database"; try (Connection conn = DriverManager.getConnection(url, props)) { // Use connection System.out.println("Connected successfully!"); } catch (SQLException e) { e.printStackTrace(); }
IAM 정책 요구 사항
Amazon Redshift에서 Identity Center 인증을 사용하려면 Amazon Redshift 클러스터 및 작업 그룹에 연결하는 데 필요한 표준 권한 외에 특정 IAM 권한이 필요합니다.
API 권한
프로비저닝된 클러스터의 경우 향상된 IAM 역할 세션에 다음이 있어야 합니다.
-
클러스터 ARN의
redshift:GetIdentityCenterAuthToken(형식:arn:aws:redshift:region:account:cluster:cluster-name)
서버리스 작업 그룹의 경우 향상된 IAM 역할 세션에 다음이 있어야 합니다.
-
작업 그룹 ARN의
redshift-serverless:GetIdentityCenterAuthToken(형식:arn:aws:redshift-serverless:region:account:workgroup/workgroup-name)
예제 IAM 정책
프로비저닝된 클러스터에 대한 정책 예제:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift:us-east-1:123456789012:cluster:my-cluster" ] } ] }
서버리스 작업 그룹에 대한 정책 예제:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-serverless:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift-serverless:us-east-1:123456789012:workgroup/my-workgroup" ] } ] }
여러 리소스에 대한 정책 예제:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift:*:123456789012:cluster/*" ] }, { "Effect": "Allow", "Action": [ "redshift-serverless:GetIdentityCenterAuthToken" ], "Resource": [ "arn:aws:redshift-serverless:*:123456789012:workgroup/*" ] } ] }
리전별 가용성
Identity Center 인증은 다음 AWS 리전에서 사용할 수 있습니다.
-
상용 리전: 지원되는 모든 Amazon Redshift 리전
-
AWS GovCloud: us-gov-east-1 및 us-gov-west-1에서 사용 가능
-
중국 리전: cn-north-1 및 cn-northwest-1에서 사용 가능
참고
초기 롤아웃 기간 동안 기능 사용 가능 여부는 달라질 수 있습니다.