ODBC 클라이언트를 사용하여 Microsoft AD FS 사용자를 위해 Amazon Athena에 대한 페더레이션 액세스 구성
ODBC 클라이언트를 사용하여 Microsoft Active Directory Federation Services(AD FS) 사용자를 위해 Amazon Athena에 대한 페더레이션 액세스를 설정하려면 먼저 AD FS와 AWS 계정 간에 신뢰를 구축합니다. 이 신뢰가 구축되면 AD 사용자는 AD 보안 인증을 사용하여 AWS에 페더레이션하고 AWS Identity and Access Management
이 신뢰를 구축하려면 AD FS를 AWS 계정에 SAML 공급자로 추가하고 페더레이션 사용자가 맡을 수 있는 IAM 역할을 생성합니다. AD FS 측에서 AWS를 신뢰 당사자로 추가하고 승인(특히 Athena 및 Amazon S3)을 위해 AWS에 올바른 사용자 특성을 전송하도록 SAML 클레임 규칙을 작성합니다.
Athena에 대한 AD FS 액세스를 구성하는 주요 단계는 다음과 같습니다.
3. Active Directory 사용자 및 그룹 생성
4. Athena에 대한 AD FS ODBC 연결 구성
1. IAM SAML 공급자 및 역할 설정
이 단원에서는 AD FS를 AWS 계정에 SAML 공급자로 추가하고 페더레이션 사용자가 맡을 수 있는 IAM 역할을 생성합니다.
SAML 공급자를 설정하려면
AWS Management Console에 로그인하여 https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
탐색 창에서 [자격 증명 공급자(Identity providers)]를 선택합니다.
-
공급자 추가(Add Provider)를 선택합니다.
-
공급자 유형(Provider type)에 SAML을 선택합니다.
-
공급자 이름(Provider name)에
adfs-saml-provider
를 입력합니다. -
브라우저에서 다음 주소를 입력하여 AD FS 서버의 페더레이션 XML 파일을 다운로드합니다. 이 단계를 수행하려면 브라우저에서 AD FS 서버에 액세스할 수 있어야 합니다.
https://
adfs-server-name
/federationmetadata/2007-06/federationmetadata.xml -
IAM 콘솔의 Metadata document(메타데이터 문서)에서 Choose file(파일 선택)을 선택한 다음 페더레이션 메타데이터 파일을 AWS에 업로드합니다.
-
완료하려면 Add provider(공급자 추가)를 선택합니다.
그런 다음 페더레이션 사용자가 수임할 수 있는 IAM 역할을 생성합니다.
페더레이션 사용자에 대한 IAM 역할을 생성하려면
-
IAM 콘솔의 탐색 창에서 Roles(역할)를 선택합니다.
-
역할 생성을 선택합니다.
-
Trusted entity type(신뢰할 수 있는 엔터티 유형)에서 SAML 2.0 Federation(SAML 2.0 페더레이션)을 선택합니다.
-
SAML 2.0-based provider(SAML 2.0 기반 공급자)의 경우 생성한 adfs-saml-provider 공급자를 선택합니다.
-
프로그래밍 방식 및 AWS Management Console 액세스 허용을 선택한 후 다음을 선택합니다.
-
Add permissions(권한 추가) 페이지에서 이 역할에 필요한 IAM 권한 정책을 필터링한 다음 해당 확인란을 선택합니다. 이 자습서에서는
AmazonAthenaFullAccess
및AmazonS3FullAccess
정책을 연결합니다. -
Next(다음)를 선택합니다.
-
Name, review, and create(이름, 검토 및 생성) 페이지에서 Role name(역할 이름)에 역할의 이름을 입력합니다. 이 자습서에서는 adfs-data-access라는 이름을 사용합니다.
Step 1: Select trusted entities(1단계: 신뢰할 수 있는 엔터티 선택)에서 Principal(보안 주체) 필드에
"Federated:" "arn:aws:iam::
가 자동으로 채워져야 합니다.account_id
:saml-provider/adfs-saml-provider"Condition
필드에는"SAML:aud"
및"https://signin.aws.amazon.com/saml"
이 포함되어야 합니다.Step 2: Add permissions(2단계: 권한 추가)에서는 역할에 연결된 정책을 보여줍니다.
-
역할 생성을 선택합니다. 역할 생성을 확인하는 배너 메시지가 표시됩니다.
-
Roles(역할) 페이지에서 방금 생성한 역할의 이름을 선택합니다. 역할에 대한 요약 페이지에는 연결된 정책이 표시됩니다.
2. AD FS 구성
이제 AWS를 신뢰 당사자로 추가하고 SAML 클레임 규칙을 작성하여 인증을 위해 올바른 사용자 특성을 AWS에 전송할 수 있습니다.
SAML 기반 페더레이션에는 IdP(Active Directory) 및 신뢰 당사자(AWS)라는 두 참가 당사자가 있습니다. 이는 IdP에서 인증을 사용하는 서비스 또는 애플리케이션입니다.
AD FS를 구성하려면 먼저 신뢰 당사자 신뢰를 추가한 다음 신뢰 당사자에 대한 SAML 클레임 규칙을 구성합니다. AD FS는 클레임 규칙을 사용하여 신뢰 당사자에게 전송되는 SAML 어설션을 형성합니다. SAML 어설션에는 AD 사용자에 대한 정보가 참이며 사용자를 인증했다고 명시되어 있습니다.
신뢰 당사자 신뢰 추가
AD FS에서 신뢰 당사자 신뢰를 추가하려면 AD FS 서버 관리자를 사용합니다.
AD FS에서 신뢰 당사자 신뢰를 추가하려면
-
AD FS 서버에 로그인합니다.
-
Start(시작) 메뉴에서 Server Manager(서버 관리자)를 엽니다.
-
Tools(도구)를 선택한 다음 AD FS Management(AD FS 관리)를 선택합니다.
-
탐색 창의 Trust Relationships(신뢰 관계)에서 Relying Party Trusts(신뢰 당사자 신뢰)를 선택합니다.
-
Actions(작업)에서 Add Relying Party Trust(신뢰 당사자 신뢰 추가)를 선택합니다.
-
Add Relying Party Trust Wizard(신뢰 당사자 신뢰 추가 마법사) 페이지에서 시작을 선택합니다.
-
Select Data Source(데이터 소스 선택) 화면에서 Import data about the relying party published online or on a local network(온라인 또는 로컬 네트워크에 게시된 신뢰 당사자에 대한 데이터 가져오기) 옵션을 선택합니다.
-
Federation metadata address (host name or URL)(연동 메타데이터 주소(호스트 이름 또는 URL))에
https://signin.aws.amazon.com/static/saml-metadata.xml
URL을 입력합니다. -
[Next]를 선택합니다.
-
Specify Display Name(표시 이름 지정) 페이지의 Display name(표시 이름)에 신뢰 당사자에 대한 표시 이름을 입력한 후 Next(다음)를 선택합니다.
-
이 자습서에서는 Configure Multi-factor Authentication Now(지금 멀티 팩터 인증 구성) 페이지에서 I do not want to configure multi-factor authentication for this relying party trust at this time(지금은 이 신뢰 당사자 신뢰에 대한 멀티 팩터 인증을 구성하지 않습니다)을 선택합니다.
보안 강화를 위해 멀티 팩터 인증을 구성하여 AWS 리소스를 보호하는 것이 좋습니다. 샘플 데이터 세트를 사용하므로 이 자습서에서는 멀티 팩터 인증을 활성화하지 않습니다.
-
Next(다음)를 선택합니다.
-
Choose Issuance Authorization Rules(발급 권한 부여 규칙 선택) 페이지에서 Permit all users to access this relying party(모든 사용자가 이 신뢰 당사자에 액세스하도록 허용)를 선택합니다.
이 옵션을 사용하면 Active Directory의 모든 사용자가 AWS를 신뢰 당사자로 하여 AD FS를 사용할 수 있습니다. 보안 요구 사항을 고려하여 이 구성을 적절히 조정해야 합니다.
-
Next(다음)를 선택합니다.
-
Ready to Add Trust(신뢰 추가 준비 완료) 페이지에서 Next(다음)를 선택하여 신뢰 당사자 신뢰를 AD FS 구성 데이터베이스에 추가합니다.
-
Finish(마침) 페이지에서 Close(닫기)를 선택합니다.
신뢰 당사자를 위한 SAML 클레임 규칙 구성
이 작업에서는 두 클레임 규칙 세트를 생성합니다.
첫 번째 세트인 규칙 1~4에는 AD 그룹 구성원 자격에 따라 IAM 역할을 맡는 데 필요한 AD FS 클레임 규칙이 포함됩니다. 이는 AWS Management Console
두 번째 세트인 규칙 5~6은 Athena 액세스 제어에 필요한 클레임 규칙입니다.
AD FS 클레임 규칙을 생성하려면
-
AD FS 관리 콘솔 탐색 창에서 Trust Relationships(신뢰 관계), Relying Party Trusts(신뢰 당사자 신뢰)를 선택합니다.
-
이전 단원에서 생성한 신뢰 당사자를 찾습니다.
-
신뢰 당사자를 마우스 오른쪽 버튼으로 클릭하고 Edit Claim Rules(클레임 규칙 편집)를 선택하거나 Actions(작업) 메뉴에서 Edit Claim Rules(클레임 규칙 편집)를 선택합니다.
-
규칙 추가(Add Rule)를 선택합니다.
-
변환 클레임 규칙 추가 마법사의 Configure Rule(규칙 구성) 페이지에서 다음 정보를 입력하여 클레임 규칙 1을 생성한 다음 Finish(마침)를 선택합니다.
-
Claim Rule name(클레임 규칙 이름)에
NameID
를 입력합니다. -
Rule template(규칙 템플릿)에서 Transform an Incoming Claim(수신 클레임 변환)을 사용합니다.
-
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(모든 클레임 값 전달)를 선택합니다.
-
-
Add Rule(규칙 추가)을 선택하고 다음 정보를 입력하여 클레임 규칙 2를 생성한 다음 Finish(마침)를 선택합니다.
-
Claim Rule name(클레임 규칙 이름)에
RoleSessionName
을 입력합니다. -
Rule template(규칙 템플릿)으로 Send LDAP Attribute as Claims(LDAP 속성을 클레임으로 전송)를 사용합니다.
-
속성 저장의 경우 Active Directory를 선택합니다.
-
Mapping of LDAP attributes to outgoing claim types(발신 클레임 유형에 LDAP 속성 매핑)에서
E-Mail-Addresses
속성을 추가합니다. Outgoing Claim Type(발신 클레임 유형)에https://aws.amazon.com/SAML/Attributes/RoleSessionName
을 입력합니다.
-
-
Add Rule(규칙 추가)을 선택하고 다음 정보를 입력하여 클레임 규칙 3을 생성한 다음 Finish(마침)를 선택합니다.
-
Claim Rule name(클레임 규칙 이름)에
Get AD Groups
을 입력합니다. -
Rule template(규칙 템플릿)에서 Send Claims Using a Custom Rule(사용자 지정 규칙을 사용하여 클레임 전송)을 사용합니다.
-
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);
-
-
규칙 추가(Add Rule)를 선택합니다. 다음 정보를 입력하여 클레임 규칙 4를 생성한 다음 Finish(마침)를 선택합니다.
-
Claim Rule name(클레임 규칙 이름)에
Role
을 입력합니다. -
Rule template(규칙 템플릿)에서 Send Claims Using a Custom Rule(사용자 지정 규칙을 사용하여 클레임 전송)을 사용합니다.
-
Custom rule(사용자 지정 규칙)에 이전에 생성한 SAML 공급자의 계정 번호 및 이름과 함께 다음 코드를 입력합니다.
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::AWS_ACCOUNT_NUMBER:saml-provider/adfs-saml-provider,arn:aws:iam:: AWS_ACCOUNT_NUMBER:role/"));
-
3. Active Directory 사용자 및 그룹 생성
이제 Athena에 액세스할 AD 사용자와 이들을 배치할 AD 그룹을 생성하여 그룹별로 액세스 수준을 제어할 수 있습니다. 데이터 액세스 패턴을 분류하는 AD 그룹을 생성한 후 해당 그룹에 사용자를 추가합니다.
Athena에 액세스할 수 있는 AD 사용자를 생성하려면
-
서버 관리자 대시보드에서 Tools(도구)를 선택한 다음 Active Directory Users and Computers(Active Directory 사용자 및 컴퓨터)를 선택합니다.
-
탐색 창에서 사용자를 선택합니다.
-
Active Directory Users and Computers(Active Directory 사용자 및 컴퓨터) 도구 모음에서 Create user(사용자 생성) 옵션을 선택합니다.
-
New Object – User(새 객체 - 사용자) 대화 상자에서 First name(이름), Last name(성), Full name(전체 이름)에 이름을 입력합니다. 이 자습서에서는
Jane Doe
를 사용합니다. -
Next(다음)를 선택합니다.
-
Password(암호)에 암호를 입력한 다음 확인을 위해 다시 입력합니다.
단순화를 위해 이 자습서에서는 User must change password at next sign on(사용자가 다음 로그온 시 암호를 변경해야 함)을 선택 취소합니다. 실제 시나리오에서는 새로 생성된 사용자에게 암호를 변경하도록 요구해야 합니다.
-
Next(다음)를 선택합니다.
-
마침을 클릭합니다.
-
Active Directory Users and Computers(Active Directory 사용자 및 컴퓨터)에서 사용자 이름을 선택합니다.
-
사용자에 대한 Properties(속성) 대화 상자에서 E-mail(이메일)에 이메일 주소를 입력합니다. 이 자습서에서는
jane@example.com
를 사용합니다. -
확인을 선택합니다.
데이터 액세스 패턴을 나타내는 AD 그룹 생성
구성원이 AWS에 로그인할 때 adfs-data-access
IAM 역할을 맡는 AD 그룹을 생성할 수 있습니다. 다음 예에서는 aws-adfs-data-access라는 AD 그룹을 생성합니다.
AD 그룹을 생성하려면
-
서버 관리자 대시보드의 Tools(도구) 메뉴에서 Active Directory Users and Computers(Active Directory 사용자 및 컴퓨터)를 선택합니다.
-
도구 모음에서 Create new group(새 그룹 생성) 옵션을 선택합니다.
-
New Object - Group(새 객체 - 그룹) 대화 상자에서 다음 정보를 입력합니다.
-
Role name(역할 이름)에
aws-adfs-data-access
를 입력합니다. -
Group scope(그룹 범위)에서 Global(글로벌)을 선택합니다.
-
Group type(그룹 유형)에서 Security(보안)를 선택합니다.
-
-
확인을 선택합니다.
적절한 그룹에 AD 사용자 추가
이제 AD 사용자와 AD 그룹을 모두 생성했으므로 그룹에 사용자를 추가할 수 있습니다.
AD 그룹에 AD 사용자를 추가하려면
-
서버 관리자 대시보드의 Tools(도구) 메뉴에서 Active Directory Users and Computers(Active Directory 사용자 및 컴퓨터)를 선택합니다.
-
First name(이름) 및 Last name(성)에서 사용자(예: Jane Doe)를 선택합니다.
-
사용자에 대한 Properties(속성) 대화 상자의 Member Of(소속 그룹) 탭에서 Add(추가)를 선택합니다.
-
요구 사항에 따라 AD FS 그룹을 하나 이상 추가합니다. 이 자습서에서는 aws-adfs-data-access 그룹을 추가합니다.
-
Select Groups(그룹 선택) 대화 상자에서 Enter the object names to select(선택할 객체 이름 입력)에 생성한 AD FS 그룹의 이름을 입력한 다음(예:
aws-adfs-data-access
) Check Names(이름 확인)를 선택합니다. -
확인을 선택합니다.
사용자에 대한 Properties(속성) 대화 상자에서 AD 그룹의 이름이 Member of(소속 그룹) 목록에 표시됩니다.
-
Apply(적용)를 선택한 다음 OK(확인)를 선택합니다.
4. Athena에 대한 AD FS ODBC 연결 구성
AD 사용자와 그룹을 생성한 이후에 Windows에서 ODBC 데이터 소스 프로그램을 사용하여 AD FS에 대한 Athena ODBC 연결을 구성할 수 있습니다.
Athena에 대한 AD FS ODBC 연결을 구성하려면
-
Athena용 ODBC 드라이버를 설치합니다. 다운로드 링크는 ODBC로 Amazon Athena에 연결를 참조하세요.
-
Windows에서 Start(시작), ODBC Data Sources(ODBC 데이터 소스)를 선택합니다.
-
ODBC 데이터 원본 관리자(ODBC Data Source Administrator) 프로그램에서 추가(Add)를 선택합니다.
-
Create New Data Source(새 데이터 소스 생성) 대화 상자에서 Simba Athena ODBC Driver(Simba Athena ODBC 드라이버)를 선택한 다음 Finish(마침)를 선택합니다.
-
Simba Athena ODBC Driver DSN Setup(Simba Athena ODBC 드라이버 DSN 설치) 대화 상자에서 다음 값을 입력합니다.
-
데이터 소스 이름(Data Source Name)에 데이터 소스 이름을 입력합니다(예:
Athena-odbc-test
). -
설명(Description)에 데이터 원본에 대한 설명을 입력합니다.
-
AWS 리전에 사용 중인 AWS 리전을 입력합니다(예:
us-west-1
). -
S3 출력 위치(S3 Output Location)에 출력을 저장할 Amazon S3 경로를 입력합니다.
-
-
인증 옵션(Authentication Options)을 선택합니다.
-
Authentication Options(인증 옵션) 대화 상자에서 다음 값을 지정합니다.
-
Authentication Type(인증 유형)에서 ADFS를 선택합니다.
-
User(사용자)에 사용자의 이메일 주소(예:
jane@example.com
)를 입력합니다. -
Password(암호)에 사용자의 ADFS 암호를 입력합니다.
-
IdP Host(IdP 호스트트)에 AD FS 서버 이름(예:
adfs.example.com
)을 입력합니다. -
IdP Port(IdP 포트)에서 기본값 443을 사용합니다.
-
SSL Insecure(안전하지 않은 SSL) 옵션을 선택합니다.
-
-
확인(OK)을 선택하여 인증 옵션(Authentication Options)을 닫습니다.
-
테스트(Test)를 선택하여 연결을 테스트하거나 확인(OK)을 선택하여 마칩니다.