예약된 쿼리 인증 - Amazon Redshift

예약된 쿼리 인증

쿼리를 예약할 때 SQL 실행 시 다음 인증 방법 중 하나를 사용합니다. 각 방법마다 쿼리 에디터 v2에서 서로 다른 입력 조합이 필요합니다. 이러한 인증 방법은 SQL 문을 실행하는 데 사용되는 데이터 API에서 지원됩니다.

쿼리를 실행하는 데 사용되는 데이터베이스 사용자 또는 역할에는 필요한 데이터베이스 권한이 있어야 합니다. 예를 들어 mytable 테이블에 IAMR:MyRedshiftQEv2Scheduler 권한을 부여하려면 다음 SQL 명령을 실행합니다.

GRANT all ON TABLE mytable TO "IAMR:MyRedshiftQEv2Scheduler";

클러스터 또는 작업 그룹의 데이터베이스 사용자 목록을 보려면 시스템 뷰 PG_USER_INFO를 쿼리하세요.

참고

쿼리를 예약하는 모든 Redshift Serverless 작업 그룹에는 RedshiftDataFullAccess 키로 태그가 지정됩니다. 자세한 내용은 Amazon Redshift Data API에 대한 액세스 권한 부여 단원을 참조하십시오.

작업 그룹에 태그를 지정하는 대신 redshift-serverless:GetCredentials를 허용하는 인라인 정책을 IAM 역할(일정과 함께 지정됨)에 추가할 수 있습니다. 예:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UseTemporaryCredentialsForAllServerlessWorkgroups", "Effect": "Allow", "Action": "redshift-serverless:GetCredentials", "Resource": [ "arn:aws:redshift-serverless:*:*:workgroup/*" ] } ] }
AWS Secrets Manager

이 방법으로 AWS Secrets Manager에 저장되어 있는 secret-arn에 대한 보안 암호 값을 제공합니다. 이 보안 암호에는 데이터베이스에 연결하기 위한 자격 증명이 포함되어 있습니다. 클러스터 또는 작업 그룹을 생성할 때 적절한 보안 인증을 사용하여 암호를 생성했을 수 있습니다. 보안 암호는 키 RedshiftDataFullAccess로 태그가 지정되어야 합니다. 태그 키가 아직 없는 경우 AWS Secrets Manager 콘솔을 사용하여 추가합니다. 보안 암호 생성에 대한 정보는 데이터베이스 연결 자격 증명을 위한 보안 암호 생성 섹션을 참조하세요.

최소 권한에 대한 자세한 내용은 AWS Secrets Manager User GuideCreating and Managing Secrets with AWS Secrets Manager를 참조하세요.

임시 보안 인증

이 방법을 사용하는 경우 클러스터의 데이터베이스에 연결할 때 데이터베이스 이름데이터베이스 사용자 값을 입력합니다. 작업 그룹의 데이터베이스에 연결할 때 데이터베이스 이름만 입력해야 합니다.

클러스터에 연결할 때, AmazonRedshiftDataFullAccess 정책은 redshift_data_api_user라는 데이터베이스 사용자에게 redshift:GetClusterCredentials에 대한 권한을 허용합니다. 다른 데이터베이스 사용자를 사용하여 SQL 문을 실행하려면 redshift:GetClusterCredentials를 허용하는 정책을 클러스터에 연결된 IAM 역할에 추가합니다. 다음 예제 정책에서는 데이터베이스 사용자를 awsusermyuser를 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "UseTemporaryCredentialsForAllDbUsers", "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": [ "arn:aws:redshift:*:*:dbuser:*/awsuser", "arn:aws:redshift:*:*:dbuser:*/myuser" ] } ] }