3단계: GetClusterCredentials 호출 권한이 있는 IAM 역할 생성 - Amazon Redshift

3단계: GetClusterCredentials 호출 권한이 있는 IAM 역할 생성

SQL 클라이언트가 사용자를 대신하여 GetClusterCredentials 작업을 호출할 수 있는 권한이 필요합니다. 그 인증을 제공하려면 사용자 또는 역할을 새로 만들어 필요한 권한을 허용하는 정책을 연결합니다.

GetClusterCredentials 호출 권한이 있는 IAM 역할 생성
  1. IAM 서비스를 이용해 사용자 또는 역할을 새로 만듭니다. 기존의 사용자 또는 역할을 사용할 수 있습니다. 예를 들어 IdP 액세스에 대해 IAM 역할을 생성한 경우, 그 역할에 필요한 IAM 정책을 연결할 수 있습니다.

  2. redshift:GetClusterCredentials 작업의 호출 권한이 있는 권한 정책을 연결합니다. 어떤 옵션 파라미터를 지정하느냐에 따라 정책에서 추가 작업 및 리소스를 허용하거나 제한할 수 있습니다.

    • SQL 클라이언트의 클러스터 ID, AWS 리전, 포트 검색을 허용하려면 Redshift 클러스터 리소스가 있는 redshift:DescribeClusters 작업의 호출 권한을 포함합니다.

    • AutoCreate 옵션을 사용하는 경우 redshift:CreateClusterUser호출(dbuser 리소스가 있는) 권한을 포함하십시오. 다음 Amazon 리소스 이름(ARN)은 Amazon Redshift dbuser를 지정합니다. region, account-idcluster-name을 AWS 리전, 계정 및 클러스터의 값으로 바꿉니다. dbuser-name에는 클러스터 데이터베이스에 로그인하는 데 사용할 사용자 이름을 지정합니다.

      arn:aws:redshift:region:account-id:dbuser:cluster-name/dbuser-name
    • (옵션) Amazon Redshift dbname 리소스를 지정하는 ARN을 다음 형식으로 추가합니다. region, account-idcluster-name을 AWS 리전, 계정 및 클러스터의 값으로 바꿉니다. database-name에는 사용자가 로그인할 데이터베이스의 이름을 지정합니다.

      arn:aws:redshift:region:account-id:dbname:cluster-name/database-name
    • DbGroups 옵션을 사용하는 경우 redshift:JoinGroup 작업(Amazon Redshift dbgroup 리소스가 있는)의 호출 권한을 다음 형식대로 포함합니다. region, account-idcluster-name을 AWS 리전, 계정 및 클러스터의 값으로 바꿉니다. dbgroup-name에는 사용자가 로그인할 때 조인하는 사용자 그룹의 이름을 지정합니다.

      arn:aws:redshift:region:account-id:dbgroup:cluster-name/dbgroup-name

자세한 정보와 지침은 GetClusterCredentials에 대한 리소스 정책 섹션을 참조하세요.

다음 예는 IAM 역할이 GetClusterCredentials 작업을 호출하도록 허용하는 정책입니다. Amazon Redshift dbuser 리소스를 지정하면 데이터베이스 사용자 이름 temp_creds_user(examplecluster라는 클러스터에서)에 역할의 액세스를 허용합니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:examplecluster/temp_creds_user" } }

와일드카드(*)를 사용하여 클러스터 이름, 사용자 이름, 데이터베이스 그룹 이름의 일부 또는 전부를 대체할 수 있습니다. 다음은 지정 계정에서 아무 클러스터가 있는 temp_로 시작하는 모든 사용자 이름을 허용하는 예입니다.

중요

다음 예의 구문은 리소스의 값의 일부로 와일드카드 문자(*)를 지정하여 정책이 해당 문자로 시작하는 모든 리소스를 허용하게 합니다. IAM 정책에 와일드카드 문자를 사용하면 너무 허용적일 수 있습니다. 가장 좋은 방법은 해당 업무 용도에 맞는 정책 중 가장 제한적인 정책을 사용하는 것입니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": "arn:aws:redshift:us-west-2:123456789012:dbuser:*/temp_*" } }

다음 예는 IAM 역할이 새 사용자를 자동으로 생성하고 사용자 로그인 시 조인하는 그룹을 지정하는 옵션으로 GetClusterCredentials 작업의 호출을 허용하는 정책입니다. "Resource": "*" 절은 클러스터, 데이터베이스 사용자, 또는 사용자 그룹을 포함한 모든 리소스에 역할 액세스 권한을 허용합니다.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials", "redshift:CreateClusterUser", "redshift:JoinGroup" ], "Resource": "*" } }

자세한 내용은 Amazon Redshift ARN 구문을 참조하십시오.