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

최종 업데이트 날짜: 2020년 6월 25일

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는 Athena JDBC 드라이버에서 직접 지원되는 유일한 SAML 2.0 자격 증명 공급자입니다. 다른 자격 증명 공급자를 사용하여 역할을 수임하는 경우에는 assume-role-with-saml 명령을 사용하여 임시 자격 증명을 얻으십시오.
  • 계정에서 다른 역할 수임: 동일한 AWS 계정에서 다른 역할을 수임하는 경우에는 assume-role을 사용하여 임시 자격 증명을 얻으십시오.

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

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

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

다음은 testprofile이라는 AWS CLI(AWS 명령줄 인터페이스) 프로파일에 저장되는 임시 자격 증명의 예입니다.

[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

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