Amazon Redshift가 사용자를 대신하여 AWS 서비스에 액세스할 수 있도록 권한 부여
일부 Amazon Redshift 기능을 사용하려면 Amazon Redshift가 사용자 대신 다른 AWS 서비스에 액세스해야 합니다. 예를 들어 COPY 및 UNLOAD 명령은 Amazon S3 버킷을 사용하여 Amazon Redshift 클러스터로 데이터를 로드하거나 언로드할 수 있습니다. CREATE EXTERNAL FUNCTION 명령은 스칼라 Lambda 사용자 정의 함수(UDF)를 사용하여 AWS Lambda 함수를 호출할 수 있습니다. Amazon Redshift Spectrum은 Amazon Athena 또는 AWS Glue의 데이터 카탈로그를 사용할 수 있습니다. Amazon Redshift 클러스터가 사용자를 대신하여 작동하도록 하려면 클러스터에 보안 자격 증명을 제공해야 합니다. 보안 자격 증명을 제공하는 데 선호되는 방법은 AWS Identity and Access Management(IAM) 역할을 지정하는 것입니다. COPY 및 UNLOAD의 경우 임시 자격 증명을 제공할 수 있습니다.
사용자가 AWS Management Console 외부에서 AWS와 상호 작용하려면 프로그래밍 방식의 액세스가 필요합니다. 프로그래밍 방식으로 액세스를 부여하는 방법은 AWS에 액세스하는 사용자 유형에 따라 다릅니다.
사용자에게 프로그래밍 방식 액세스 권한을 부여하려면 다음 옵션 중 하나를 선택합니다.
프로그래밍 방식 액세스가 필요한 사용자는 누구인가요? | To | 액세스 권한을 부여하는 사용자 |
---|---|---|
작업 인력 ID (IAM Identity Center가 관리하는 사용자) |
임시 자격 증명을 사용하여 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다. |
사용하고자 하는 인터페이스에 대한 지침을 따릅니다.
|
IAM | 임시 자격 증명을 사용하여 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다. | IAM 사용자 설명서의 AWS 리소스와 함께 임시 자격 증명 사용에 나와 있는 지침을 따르세요. |
IAM | (권장되지 않음) 장기 자격 증명을 사용하여 AWS CLI, AWS SDK 또는 AWS API에 대한 프로그래밍 요청에 서명합니다. |
사용하고자 하는 인터페이스에 대한 지침을 따릅니다.
|
다음을 통해 다른 AWS 서비스에 액세스하는 데 필요한 권한과 함께 IAM 역할을 생성하는 방법을 알아봅니다. Amazon Redshift 명령을 실행할 때 역할을 클러스터와 연관시키고 역할의 Amazon 리소스 이름(ARN)을 지정해야 합니다. 자세한 내용은 IAM 역할을 사용하여 COPY, UNLOAD, CREATE EXTERNAL FUNCTION 및 CREATE EXTERNAL SCHEMA 작업에 대한 권한 부여 섹션을 참조하세요.
또한 슈퍼 사용자는 특정 사용자 및 그룹에 ASSUMEROLE 권한을 부여하여 COPY 및 UNLOAD 작업을 위한 역할에 대한 액세스 권한을 제공할 수 있습니다. 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 GRANT를 참조하세요.
Amazon Redshift 클러스터가 AWS 서비스에 액세스 할 수 있도록 IAM 역할 생성
권한을 사용하여 IAM 역할 생성
Amazon Redshift 클러스터에서 사용자를 대신하여 다른 AWS 서비스와 통신하도록 허용하는 IAM 역할을 생성하려면 다음 단계를 수행합니다. 이 섹션에 사용된 값은 예시이며 필요에 따라 값을 선택할 수 있습니다.
Amazon Redshift에서 AWS 서비스에 액세스하도록 허용하는 IAM 역할을 생성하려면
-
IAM 콘솔(IAM console)
을 엽니다. -
탐색 창에서 역할을 선택합니다.
-
역할 생성(Create role)을 선택합니다.
-
AWS 서비스를 선택한 다음 Redshift를 선택합니다.
-
사용 사례 선택 아래에서, Redshift - 사용자 지정 가능(Redshift - Customizable)을 선택한 후 다음: 권한(Next: Permissions)을 선택합니다. 첨부 파일 권한 정책(Attach permissions policy) 페이지가 나타납니다.
-
예를 들어 COPY를 사용하여 Amazon S3에 액세스하려면
AmazonS3ReadOnlyAccess
를 사용하고 추가할 수 있습니다. COPY 또는 UNLOAD를 사용하여 Amazon S3에 액세스하려면 원하는 버킷 및 접두사에 대한 액세스를 제한하는 관리형 정책을 생성하는 것이 좋습니다. 읽기 및 쓰기 작업 모두에 대해 최소 권한을 적용하고 Amazon Redshift에 필요한 Amazon S3 버킷 및 키 접두사로만 제한하는 것이 좋습니다.CREATE EXTERNAL FUNCTION 명령에 대한 Lambda 함수 호출에 액세스하려면
AWSLambdaRole
을 추가합니다.Redshift Spectrum의 경우 Amazon S3 액세스 외에
AWSGlueConsoleFullAccess
또는AmazonAthenaFullAccess
를 추가합니다.다음: 태그를 선택합니다.
-
태그 추가(Add tags) 페이지가 나타납니다. 선택적으로 태그를 추가할 수 있습니다. 다음: 검토를 선택합니다.
-
Role name(역할 이름)에는 역할 이름을 입력합니다(예:
RedshiftCopyUnload
). 역할 생성(Create role)을 선택합니다. -
새로운 역할은 해당 역할을 사용하는 클러스터의 사용자라면 모두에게 제공됩니다. 특정 클러스터의 일부 사용자로 액세스를 제한하거나, 혹은 특정 리전의 클러스터로 제한하려면 역할에 대한 신뢰 관계를 편집하세요. 자세한 내용은 IAM 역할에 대한 액세스 제한 섹션을 참조하세요.
-
역할을 클러스터와 연결합니다. IAM 역할은 새롭게 생성한 클러스터와 연결할 수도 있고, 혹은 기존 클러스터에 추가할 수도 있습니다. 자세한 내용은 IAM 역할을 클러스터와 연결 섹션을 참조하세요.
참고
특정 데이터에 대한 액세스를 제한하려면 필요한 최소 권한을 부여하는 IAM 역할을 사용합니다.