권한 부여 파라미터 - Amazon Redshift

권한 부여 파라미터

COPY 명령을 실행하려면 Amazon S3, Amazon EMR, Amazon DynamoDB, Amazon EC2의 데이터를 포함해 다른 AWS 리소스의 데이터에도 액세스할 수 있도록 권한 부여가 필요합니다. 클러스터에 연결되어 있는 AWS Identity and Access Management(IAM) 역할을 참조하여 이러한 권한을 부여할 수 있습니다(역할 기반 액세스 제어). Amazon S3에서 로드 데이터를 암호화할 수 있습니다.

아래 주제에서는 더욱 자세한 내용과 함께 인증 옵션의 예를 살펴보겠습니다.

COPY 명령에서는 다음 중 한 가지를 사용하여 권한을 부여합니다.

IAM_ROLE { default | 'arn:aws:iam::<AWS 계정-id>:role/<role-name>' }

기본 키워드를 사용하여 COPY 명령이 실행될 때 Amazon Redshift에서 기본값으로 설정되고 클러스터와 연결된 IAM 역할을 사용하도록 합니다.

클러스터가 인증 및 권한 부여에 사용하는 IAM 역할의 Amazon 리소스 이름(ARN)을 사용합니다. IAM_ROLE을 지정하면 ACCESS_KEY_ID 및 SECRET_ACCESS_KEY, SESSION_TOKEN 또는 CREDENTIALS는 사용할 수 없습니다.

다음은 IAM_ROLE 파라미터에 대한 구문을 나타낸 것입니다.

IAM_ROLE { default | 'arn:aws:iam::<AWS 계정-id>:role/<role-name>' }

자세한 내용은 역할 기반 액세스 제어 단원을 참조하십시오.

ACCESS_KEY_ID 'access-key-id ' SECRET_ACCESS_KEY 'secret-access-key'

이 권한 부여 방법은 권장되지 않습니다.

참고

일반 텍스트로 입력되는 액세스 자격 증명보다는 IAM_ROLE 파라미터를 지정하는 역할 기반 인증의 사용을 강력하게 권장합니다. 자세한 내용은 역할 기반 액세스 제어 단원을 참조하십시오.

SESSION_TOKEN 'temporary-token'

임시 액세스 자격 증명으로 사용되는 세션 토큰입니다. SESSION_TOKEN을 지정할 때도 ACCESS_KEY_ID와 SECRET_ACCESS_KEY를 사용하여 임시 액세스 키 자격 증명을 입력해야 합니다. SESSION_TOKEN을 지정하면 IAM_ROLE 또는 CREDENTIALS는 사용할 수 없습니다. 자세한 내용은 IAM 사용 설명서에서 임시 보안 자격 증명 섹션을 참조하세요.

참고

임시 보안 자격 증명을 생성하는 것보다는 역할 기반 인증의 사용을 강력하게 권장합니다. IAM 역할을 사용하여 권한을 부여하면 Amazon Redshift가 각 세션마다 임시 사용자 자격 증명을 자동으로 생성합니다. 자세한 내용은 역할 기반 액세스 제어 단원을 참조하십시오.

다음은 ACCESS_KEY_ID 및 SECRET_ACCESS_KEY 파라미터를 사용한 SESSION_TOKEN 파라미터의 구문 예입니다.

ACCESS_KEY_ID '<access-key-id>' SECRET_ACCESS_KEY '<secret-access-key>' SESSION_TOKEN '<temporary-token>';

SESSION_TOKEN을 지정하면 CREDENTIALS 또는 IAM_ROLE은 사용할 수 없습니다.

[WITH] CREDENTIALS [AS] 'credentials-args'

클러스터가 데이터 파일 또는 매니페스트 파일이 위치한 다른 AWS 리소스에 액세스할 때 사용할 방법을 나타내는 절입니다. CREDENTIALS 파라미터는 IAM_ROLE 또는 ACCESS_KEY_ID 및 SECRET_ACCESS_KEY와 함께 사용할 수 없습니다.

참고

유연성을 높이려면 CREDENTIALS 파라미터 대신 IAM_ROLE 파라미터를 사용하는 것이 좋습니다.

옵션으로 ENCRYPTED 파라미터를 사용하는 경우에는 credentials-args 문자열 역시 암호화 키의 역할을 합니다.

credentials-args 문자열은 대소문자를 구분하며 공백이 포함되어서는 안됩니다.

키워드 WITH와 AS는 옵션이며 무시해도 좋습니다.

role-based access control 또는 key-based access control를 지정할 수 있습니다. 어떤 액세스 제어를 지정하든 간에 IAM 역할 또는 사용자는 지정한 AWS 리소스에 액세스할 수 있는 권한이 필요합니다. 자세한 내용은 COPY, UNLOAD 및 CREATE LIBRARY 작업을 위한 IAM 권한 단원을 참조하십시오.

참고

AWS 자격 증명을 안전하게 지키고 민감한 데이터를 보호하려면 역할 기반 액세스 제어의 사용을 강력하게 권장합니다.

역할 기반 액세스 제어를 지정하려면 credentials-args 문자열을 다음과 같은 형식으로 입력합니다.

'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>'

임시 토큰 자격 증명을 사용하려면 임시 액세스 키 ID와 임시 보안 액세스 키, 그리고 임시 토큰을 입력해야 합니다. credentials-args 문자열의 형식은 다음과 같습니다.

CREDENTIALS 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;token=<temporary-token>'

자세한 내용은 임시 보안 자격 증명 단원을 참조하십시오.

ENCRYPTED 파라미터를 사용하는 경우 credentials-args 문자열의 형식은 다음과 같습니다. 여기에서 <root-key>는 파일을 암호화할 때 사용한 루트 키의 값입니다.

CREDENTIALS '<credentials-args>;master_symmetric_key=<root-key>'

예를 들어 다음은 암호화 키와 함께 역할 기반 액세스 제어를 사용하는 COPY 명령입니다.

copy customer from 's3://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::<account-id>:role/<role-name>;master_symmetric_key=<root-key>'

다음 COPY 명령은 암호화 키를 사용한 역할 기반 액세스 제어를 보여줍니다.

copy customer from 's3://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>;master_symmetric_key=<root-key>'