JDBC 드라이버를 사용하여 Athena에 연결할 때 IAM 역할 자격 증명을 사용하거나 다른 IAM 역할로 전환하려면 어떻게 해야 하나요?

3분 분량
0

AWS Identity and Access Management(IAM) 역할을 사용하여 JDBC 드라이버를 통해 Amazon Athena에 연결하려고 합니다. -또는- JDBC 드라이버를 통해 Athena에 연결하기 전에 내 AWS 계정이나 다른 계정에서 다른 IAM 역할로 전환하려고 합니다.

해결 방법

IAM 역할 자격 증명을 사용하여 Athena JDBC 드라이버에 연결

역할의 임시 자격 증명을 얻습니다. 임시 자격 증명을 얻는 프로세스는 역할 수임 방식에 따라 다릅니다.

  • SAML 자격 증명 공급자를 사용한 역할 수임: Active Directory Federation Services(AD FS) 3.0, Okta, PingFederate, Azure AD는 Athena JDBC 드라이버에서 직접 지원되는 유일한 SAML 2.0 자격 증명 공급자입니다. 다른 자격 증명 공급자를 사용하여 역할을 수임하는 경우에는 assume-role-with-saml 명령을 사용하여 임시 자격 증명을 얻습니다.
  • 계정에서 다른 역할 수임: 동일한 AWS 계정에서 다른 역할을 수임하는 경우에는 assume-role을 사용하여 임시 자격 증명을 얻으세요.

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

자세한 내용은 IAM 역할 사용에서 역할 사용을 위한 방법 비교 표를 참조하세요.

임시 자격 증명에는 세션 토큰, 액세스 키 ID 및 보안 액세스 키가 포함됩니다. 이 세 가지 자격 증명은 Athena에 대한 JDBC 연결을 인증하는 데 필요합니다. 임시 자격 증명의 최대 수명은 12시간이므로 주의하세요.

1.    Athena JDBC 드라이버가 설치된 머신에서 임시 자격 증명을 AWS 자격 증명 파일(~/.aws/credentials)에 명명된 프로파일로 저장합니다. 자세한 내용은 구성 및 자격 증명 파일 설정을 참조하세요.

다음은 testprofile이라는 AWS CLI 프로파일에 저장되는 임시 자격 증명의 예입니다.

[testprofile]
aws_access_key_id=ASIAXXXXXXXXX
aws_secret_access_key=XXXXXXXX
aws_session_token=XXXXXXXXXXXXXXXXXX

2.    JDBC 드라이버를 사용하여 Athena에 연결하려면 JDBC 연결 문자열에 프로파일 이름을 지정합니다(예: jdbc:awsathena://AwsRegion=us-west-2;Profile=testprofile;). 또는 JDBC 구성 속성 Profile에 프로파일 이름을 설정합니다.

참고: JDBC 구성 속성 Profile은 Athena JDBC 드라이버 버전 2.0.6 이상에서 사용할 수 있습니다. 최신 JDBC 드라이버를 얻으려면 JDBC 드라이버 다운로드 링크를 참조하세요.

다른 IAM 역할로 전환한 후 Athena JDBC 드라이버에 연결

Athena JDBC 드라이버에 연결하기 전에 역할을 전환하려면 명명된 프로파일에서 source_profile 옵션을 사용하세요.

1.    Athena JDBC 드라이버가 설치된 머신에서 AWS CLI 자격 증명 파일(~/.aws/credentials)에 명명된 프로파일을 추가합니다. 명명된 프로파일 생성에 대한 자세한 내용은 명명된 프로파일을 참조하십시오. 프로파일에는 다음 속성이 포함되어야 합니다.

role_arn: 수임할 역할의 Amazon 리소스 이름(ARN)
source_profile: 해당 역할을 수임할 권한이 있는 IAM 사용자 또는 IAM 역할의 자격 증명이 포함된 프로파일

예를 들어 ARN이 arn:aws:iam::123456789012:role/testroletestrole이라는 역할을 수임하려면 다음과 같이 명명된 프로파일을 생성하세요.

[switchroletest]
role_arn=arn:aws:iam::123456789012:role/testrole
source_profile=default

이 예에서 default 프로파일에는 testrole을 수임할 권한이 있는 IAM 사용자 또는 역할의 자격 증명이 포함되어 있습니다.

[default]
aws_access_key_id=ASIAXXXXXXXXX
aws_secret_access_key=XXXXXXXX
aws_session_token=XXXXXXXXXXXXXXXXXX

참고: AWS CLI는 AWS CLI 구성 파일(/.aws/config)에 source_profile을 지정하고, 별도의 AWS CLI 자격 증명 파일(/.aws/credentials)에 사용자 자격 증명을 지정할 수 있습니다. 하지만 Athena JDBC 드라이버는 AWS CLI 자격 증명 파일에서만 자격 증명을 읽을 수 있도록 지원합니다. 이러한 제한으로 인해 앞의 예제에 나와 있는 프로파일은 동일한 AWS CLI 자격 증명 파일(~/.aws/credentials)에 배치되어야 하며 profile이 접두사로 지정되어서는 안 됩니다. Athena JDBC 드라이버는 명명된 프로파일에서 credential_source = Ec2InstanceMetadata 사용을 지원하지 않습니다.

2.    JDBC 드라이버를 사용하여 Athena에 연결하려면 JDBC 연결 문자열에 프로파일 이름을 지정합니다(예: jdbc:awsathena://AwsRegion=us-west-2;Profile=switchroletest;). 또는 JDBC 구성 속성 Profile에 프로파일 이름을 설정합니다.


관련 정보

임시 보안 자격 증명 요청

Simba Athena JDBC driver with SQL connector installation and configuration guide (version 2.0.9)

IAM 역할로 전환하기(AWS CLI)

AWS CLI에서 IAM 역할 사용

AWS 공식
AWS 공식업데이트됨 2년 전