

 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/)을 참조하세요.

# AD FS
<a name="setup-identity-provider-adfs"></a>

이 자습서에서는 AD FS를 ID 제공업체(idP)로 사용하여 Amazon Redshift 클러스터에 액세스하는 방법을 보여 줍니다.

## 1단계: AD FS와 AWS 계정을 서로 신뢰하도록 설정
<a name="setup-identity-provider-adfs-trust"></a>

 다음 절차에서는 신뢰 관계를 설정하는 방법을 설명합니다.

1. AD FS 사용자가 연결할 기존 Amazon Redshift 클러스터를 사용하거나 생성합니다. 연결을 구성하려면 이 클러스터의 특정 속성(예: 클러스터 식별자)이 필요합니다. 자세한 내용은 [클러스터 생성](https://docs.aws.amazon.com/redshift/latest/mgmt/create-cluster.html) 섹션을 참조하세요.

1. Microsoft Management Console에서 Amazon Redshift 액세스를 제어하도록 AD FS를 설정합니다.

   1. **ADFS 2.0**을 선택한 후 **Add Relying Party Trust(신뢰 당사자 신뢰 추가)**를 선택합니다. **Add Relying Party Trust Wizard(신뢰 당사자 신뢰 추가 마법사)** 페이지에서 **시작**을 선택합니다.

   1. **Select Data Source(데이터 원본 선택)** 페이지에서 **Import data about the relying party published online or on a local network(온라인 또는 로컬 네트워크에 게시된 신뢰 당사자에 대한 데이터 가져오기)**를 선택합니다.

   1. **Federation metadata address (host name or URL)(연동 메타데이터 주소(호스트 이름 또는 URL))**에 **https://signin.aws.amazon.com/saml-metadata.xml**을 입력합니다. 메타데이터 XML 파일은 AWS를 신뢰 당사자로 설명하는 표준 SAML 메타데이터 문서입니다.

   1. **표시 이름 지정** 페이지에서 **표시 이름**에 값을 입력합니다.

   1. **Choose Issuance Authorization Rules(발급 권한 부여 규칙 선택)** 페이지에서 발급 권한 부여 규칙을 선택하여 모든 사용자가 이 신뢰 당사자에 액세스할 수 있도록 허용하거나 거부합니다.

   1. **Ready to Add Trust(신뢰 추가 준비 완료)** 페이지에서 설정을 검토합니다.

   1. **Finish(완료)** 페이지에서 **Open the Edit Claim Rules dialog for this relying party trust when the wizard closes(마법사가 닫힐 때 이 신뢰 당사자 신뢰에 대한 클레임 규칙 편집 대화 상자 열기)**를 선택합니다.

   1. 컨텍스트(오른쪽 클릭) 메뉴에서 **Relying Party Trusts(신뢰 당사자 신뢰)**를 선택합니다.

   1. 신뢰 당사자의 경우 컨텍스트(오른쪽 클릭) 메뉴를 열고 **Edit Claim Rules(클레임 규칙 편집)**를 선택합니다. **클레임 규칙 편집(Edit Claim Rules)** 페이지에서 **규칙 추가(Add Rule)**를 선택합니다.

   1. **Claim rule template(클레임 규칙 템플릿)**에서 **Transform an Incoming Claim(수신 클레임 변환)**을 선택한 후 **Edit Rule – NameId(규칙 편집 – NameId)** 페이지에서 다음을 수행합니다.
      + **클레임 규칙 이름**에 **NameId**를 입력합니다.
      + **Incoming claim name(수신 클레임 이름)**으로 **Windows Account Name(Windows 계정 이름)**을 선택합니다.
      + **Outgoing claim name(발신 클레임 이름)**으로 **Name ID(이름 ID)**를 선택합니다.
      + **Outgoing name ID format(발신 이름 ID 형식)**으로 **Persistent Identifier(영구 식별자)**를 선택합니다.
      + **Pass through all claim values(모든 클레임 값 전달)**를 선택합니다.

   1. **Edit Claim Rules**(클레임 규칙 편집) 페이지에서 **Add Rule**(규칙 추가)를 선택합니다. **Select Rule Template(규칙 템플릿 선택)** 페이지에서 **Claim rule template(클레임 규칙 템플릿)**으로 **Send LDAP Attributes as Claims(LDAP 속성을 클레임으로 전송)**를 선택합니다.

   1. **규칙 구성** 페이지에서 다음 작업을 수행합니다.
      + **클레임 규칙 이름**에 **RoleSessionName**을 입력합니다.
      + **속성 저장**의 경우 **Active Directory**를 선택합니다.
      + **LDAP Attribute(LDAP 속성)**의 경우 **이메일 주소**를 선택합니다.
      + [**발신 클레임 유형(Outgoing Claim Type)**]으로 **https://aws.amazon.com/SAML/Attributes/RoleSessionName**을 선택합니다.

   1. **Edit Claim Rules**(클레임 규칙 편집) 페이지에서 **Add Rule**(규칙 추가)를 선택합니다. **규칙 템플릿 선택(Select Rule Template)** 페이지에서 **클레임 규칙 템플릿(Claim rule template)**으로 **사용자 지정 규칙을 사용하여 클레임 전송(Send Claims Using a Custom Rule)**을 선택합니다.

   1. **Edit Rule – Get AD Groups(규칙 편집 – AD 그룹 가져오기)** 페이지에서 **클레임 규칙 이름**에 **Get AD Groups(AD 그룹 가져오기)**를 입력합니다.

   1. **Custom rule(사용자 지정 규칙)**에 다음을 입력합니다.

      ```
      c:[Type ==
                                          "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname",
                                          Issuer == "AD AUTHORITY"] => add(store = "Active Directory",
                                          types = ("http://temp/variable"), query = ";tokenGroups;{0}",
                                          param = c.Value);
      ```

   1. **Edit Claim Rules**(클레임 규칙 편집) 페이지에서 **Add Rule**(규칙 추가)를 선택합니다. **Select Rule Template**(규칙 템플릿 선택) 페이지에서 **Claim rule template**(클레임 규칙 템플릿)으로 **Send Claims Using a Custom Rule**(사용자 지정 규칙을 사용하여 클레임 전송)을 선택합니다.

   1. **Edit Rule – Roles(규칙 편집 – 역할)** 페이지에서 **클레임 규칙 이름**에 **역할**을 입력합니다.

   1. **Custom rule(사용자 지정 규칙)**에 다음을 입력합니다.

      ```
      c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-"] => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-", "arn:aws:iam::123456789012:saml-provider/ADFS,arn:aws:iam::123456789012:role/ADFS-"));
      ```

      SAML 공급자 및 맡을 역할의 ARN을 적어 둡니다. 이 예에서 `arn:aws:iam:123456789012:saml-provider/ADFS`는 SAML 공급자의 ARN이고 `arn:aws:iam:123456789012:role/ADFS-`는 역할의 ARN입니다.

1. `federationmetadata.xml` 파일을 다운로드했는지 확인합니다. 문서 내용에 잘못된 문자가 없는지 확인합니다. 이는 AWS와의 신뢰 관계를 구성할 때 사용하는 메타데이터 파일입니다.

1. IAM 콘솔에서 IAM SAML 자격 증명 공급자를 만듭니다. 제공하는 메타데이터 문서는 Azure 엔터프라이즈 애플리케이션을 설정할 때 저장한 연동 메타데이터 XML 파일입니다. 자세한 단계는 *IAM User Guide*의 [Creating and Managing an IAM Identity Provider (Console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html#idp-manage-identityprovider-console)를 참조하세요.

1. IAM 콘솔에서 SAML 2.0 연동을 위한 IAM 역할을 만듭니다. 자세한 단계는 *IAM User Guide*의 [Creating a Role for SAML](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html#idp_saml_Create)을 참조하세요.

1. IAM 콘솔에서 SAML 2.0 연동을 위해 생성한 IAM 역할에 연결할 수 있는 IAM 정책을 만듭니다. 자세한 단계는 *IAM User Guide*의 [Creating IAM Policies (Console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start)를 참조하세요. Azure AD 예제는 [JDBC 또는 ODBC Single Sign-On 인증 설정](setup-azure-ad-identity-provider.md) 단원을 참조하십시오.

## 2단계: AD FS에 대한 인증을 위해 JDBC 또는 ODBC 설정
<a name="setup-identity-provider-adfs-auth"></a>

------
#### [ JDBC ]

 다음 절차에서는 AD FS에 대한 JDBC 관계를 설정하는 방법을 설명합니다.
+ AD FS Single Sign-On을 사용하여 JDBC를 통해 클러스터에 연결하도록 데이터베이스 클라이언트를 구성합니다.

  JDBC 드라이버를 사용하는 클라이언트를 사용하여 AD FS Single Sign-On으로 연결하거나 Java와 같은 언어를 사용하여 스크립트를 통해 연결할 수 있습니다. 설치 및 구성 정보는 [Amazon Redshift용 JDBC 드라이버 버전 2.x 연결 구성](jdbc20-install.md) 단원을 참조하십시오.

  예를 들어 SQLWorkbench/J를 클라이언트로 사용할 수 있습니다. SQLWorkbench/j를 구성할 때 데이터베이스의 URL은 다음 형식을 사용합니다.

  ```
  jdbc:redshift:iam://{{cluster-identifier}}:{{us-west-1}}/{{dev}}
  ```

  SQLWorkbench/J를 클라이언트로 사용하는 경우 다음 단계를 수행합니다.

  1. SQL Workbench/J를 시작합니다. [**연결 프로파일 선택(Select Connection Profile)**] 페이지에서 [**프로파일 그룹(Profile Group)**]을 추가합니다(예: **ADFS**).

  1. **Connection Profile(연결 프로파일)**에 연결 프로파일 이름을 입력합니다(예: **ADFS**).

  1. **Manage Drivers**(드라이버 관리)를 선택하고, **Amazon Redshift**를 선택합니다. [**라이브러리(Library)**] 옆에 있는 [**폴더 열기(Open Folder)**] 아이콘을 선택한 다음 적절한 JDBC .jar 파일을 선택합니다.

  1. **Select Connection Profile**(연결 프로파일 선택) 페이지에서 다음과 같이 연결 프로파일에 정보를 추가합니다.
     + **사용자**에 AD FS 사용자 이름을 입력합니다. 이는 Single Sign-On에 사용 중인 계정의 사용자 이름으로, 인증하려는 클러스터에 대한 권한이 있습니다.
     + **암호**에 AD FS 암호를 입력합니다.
     + **드라이버(Drivers)**에서 **Amazon Redshift(com.amazon.redshift.jdbc.Driver)**를 선택합니다.
     + **URL**에 **jdbc:redshift:iam://{{your-cluster-identifier}}:{{your-cluster-region}}/{{your-database-name}}**을 입력합니다.

  1. [**확장 속성(Extended Properties)**]을 선택합니다. **plugin\_name**에 **com.amazon.redshift.plugin.AdfsCredentialsProvider**를 입력합니다. 이 값은 드라이버에 AD FS Single Sign-On을 인증 방법으로 사용하도록 지정합니다.

------
#### [ ODBC ]

**AD FS에 대한 인증을 위해 ODBC를 설정하려면**
+ AD FS Single Sign-On을 사용하여 ODBC를 통해 클러스터에 연결하도록 데이터베이스 클라이언트를 구성합니다.

  Amazon Redshift는 Linux, Windows 및 macOS 운영 체제용 ODBC 드라이버를 제공합니다. ODBC 드라이버를 설치하려면 먼저 SQL 클라이언트 도구가 32비트인지, 64비트인지 확인합니다. SQL 클라이언트 도구의 요구 사항에 맞는 ODBC 드라이버를 설치합니다.

  Windows의 경우 **Amazon Redshift ODBC 드라이버 DSN 설정(Amazon Redshift ODBC Driver DSN Setup)** 페이지의 **연결 설정(Connection Settings)** 아래에 다음 정보를 입력합니다.
  + **데이터 원본 이름(Data Source Name)**에 **{{your-DSN}}**을 입력합니다. 이는 ODBC 프로파일 이름으로 사용되는 데이터 원본 이름을 지정합니다.
  + [**인증 유형(Auth type)**]에서 [**자격 증명 공급자: SAML(Identity Provider: SAML)**]을 선택합니다. 이는 ODBC 드라이버가 AD FS Single Sign-On을 사용하여 인증할 때 사용하는 인증 방법입니다.
  + **클러스터 ID(Cluster ID)**에 **{{your-cluster-identifier}}**를 입력합니다.
  + **리전(Region)**에 **{{your-cluster-region}}**을 입력합니다.
  + **데이터베이스(Database)**에 **{{your-database-name}}**을 입력합니다.
  + **사용자(User)**에 **{{your-adfs-username}}**을 입력합니다. 이는 Single Sign-On에 사용 중인 AD FS 계정의 사용자 이름으로, 인증하려는 클러스터에 대한 권한이 있습니다. **인증 유형(Auth type)**이 **자격 증명 공급자: SAML(Identity Provider: SAML)**인 경우에만 이를 사용합니다.
  + **Password**(암호)에 **{{your-adfs-password}}**를 입력합니다. **Auth type**(인증 유형)이 **Identity Provider: SAML**(자격 증명 공급자: SAML)인 경우에만 이를 사용합니다.

  macOS 및 Linux에서는 다음과 같이 `odbc.ini` 파일을 편집합니다.
**참고**  
모든 항목은 대/소문자를 구분하지 않습니다.
  + **clusterid**에 **{{your-cluster-identifier}}**를 입력합니다. 이는 생성된 Amazon Redshift 클러스터의 이름입니다.
  + **리전(region)**에 **{{your-cluster-region}}**을 입력합니다. 이는 생성된 Amazon Redshift 클러스터의 AWS 리전입니다.
  + **데이터베이스(database)**에 **{{your-database-name}}**을 입력합니다. 이는 Amazon Redshift 클러스터에서 액세스하려는 데이터베이스의 이름입니다.
  + **로캘(locale)**에 **en-us**를 입력합니다. 이는 오류 메시지가 표시되는 언어입니다.
  + **iam**에 **1**을 입력합니다. 이 값은 드라이버에 IAM 자격 증명을 사용하여 인증하도록 지정합니다.
  + **plugin\_name**의 경우 다음 중 하나를 수행합니다.
    + MFA를 사용하는 Azure AD Single Sign-On 구성에 **BrowserSAML**을 입력합니다. 이는 ODBC 드라이버가 AD FS에 인증할 때 사용하는 인증 방법입니다.
    + Azure AD Single Sign-On 구성에 **ADFS**를 입력합니다. 이는 ODBC 드라이버가 Azure AD Single Sign-On을 사용하여 인증할 때 사용하는 인증 방법입니다.
  + **uid**에 **{{your-adfs-username}}**을 입력합니다. 이는 Single Sign-On에 사용 중인 Microsoft Azure 계정의 사용자 이름으로, 인증하려는 클러스터에 대한 권한이 있습니다. **plugin\_name**이 **ADFS**인 경우에만 이를 사용합니다.
  + **pwd**에 **{{your-adfs-password}}**를 입력합니다. **plugin\_name**이 **ADFS**인 경우에만 이를 사용합니다.

  macOS 및 Linux에서는 프로파일 설정을 편집하여 다음 내보내기도 추가합니다.

  ```
  export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
  ```

  ```
  export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
  ```

------