Overview of managing access permissions to your Amazon Redshift resources - Amazon Redshift

문서의 영문과 번역 사이에 충돌이 있는 경우에는 영문 버전을 따릅니다. 번역 버전은 기계 번역을 사용하여 제공합니다.

Overview of managing access permissions to your Amazon Redshift resources

모든 AWS 리소스는 AWS 계정의 소유이고, 리소스 생성 또는 액세스 권한은 권한 정책에 따라 결정됩니다. 계정 관리자는 IAM 자격 증명(즉, 사용자, 그룹, 역할)에 권한 정책을 연결할 수 있고, 일부 서비스(예: AWS Lambda)에서는 리소스에 대한 권한 정책 연결도 지원합니다.

참고

An account administrator 관리자 권한이 있는 사용자입니다. 자세한 내용은 IAM 모범 사례 in the IAM 사용 설명서.

권한을 부여하려면 권한을 부여 받을 사용자, 권한 대상이 되는 리소스, 해당 리소스에 허용되는 특정 작업을 결정합니다.

Amazon Redshift resources and operations

에서 Amazon Redshift기본 리소스는 cluster. Amazon Redshift 에서는 스냅샷, 파라미터 그룹 및 이벤트 구독과 같은 기본 리소스와 함께 사용할 수 있는 다른 리소스를 지원합니다. 이들은 subresources.

다음 표에 나와 있는 것처럼 이러한 리소스와 하위 리소스에는 고유한 Amazon 리소스 이름(ARN)이 연결되어 있습니다.

Resource type ARN format
클러스터 arn:aws:redshift:region:account-id:cluster:cluster-name
클러스터 데이터베이스 arn:aws:redshift:region:account-id:dbname:cluster-name/database-name
클러스터 데이터베이스 사용자 arn:aws:redshift:region:account-id:dbuser:cluster-name/database-user-name
클러스터 데이터베이스 사용자 그룹 arn:aws:redshift:region:account-id:dbgroup:cluster-name/database-group-name
클러스터 파라미터 그룹 arn:aws:redshift:region:account-id:parametergroup:parameter-group-name
클러스터 보안 그룹 arn:aws:redshift:region:account-id:securitygroup:security-group-name
CIDR/IP 주소 arn:aws:redshift:region:account-id:securitygroupingress:security-group-name/cidrip/IP-range
EC2 보안 그룹 arn:aws:redshift:region:account-id:securitygroupingress:security-group-name/ec2securitygroup/owner/EC2-security-group-id
이벤트 구독 arn:aws:redshift:region:account-id:eventsubscription:event-subscription-name
하드웨어 보안 모듈(HSM) 클라이언트 인증서 arn:aws:redshift:region:account-id:hsmclientcertificate:HSM-client-certificate-id
HSM 구성 arn:aws:redshift:region:account-id:hsmconfiguration:HSM-configuration-id
Parameter Group arn:aws:redshift:region:account-id:parametergroup:parameter-group-name
Snapshot arn:aws:redshift:region:account-id:snapshot:cluster-name/snapshot-name
Snapshot arn:aws:redshift:region:account-id:snapshotcopygrant:snapshot-copy-grant-name
Subnet Group arn:aws:redshift:region:account-id:subnetgroup:subnet-group-name

Amazon Redshift은(는) Amazon Redshift 리소스를 처리하기 위한 작업을 제공합니다. 사용 가능한 작업 목록은 Amazon Redshift API permissions reference 단원을 참조하십시오.

Understanding resource ownership

A resource owner 리소스를 생성한 AWS 계정입니다. 즉, 리소스 소유자는 principal entity 리소스를 생성하는 요청을 인증하는 루트 계정, IAM 사용자 또는 IAM 역할을 합니다. 다음 예에서는 이 계정의 작동 방식을 설명합니다.

  • If you use the root account credentials of your AWS account to create a DB cluster, your AWS account is the owner of the Amazon Redshift resource.

  • If you create an IAM user in your AWS account and grant permissions to create Amazon Redshift resources to that user, the user can create Amazon Redshift resources. However, your AWS account, to which the user belongs, owns the Amazon Redshift resources.

  • If you create an IAM role in your AWS account with permissions to create Amazon Redshift resources, anyone who can assume the role can create Amazon Redshift resources. Your AWS account, to which the role belongs, owns the Amazon Redshift resources.

Managing access to resources

A permissions policy 누가 무엇을 이용할 수 있는지 설명합니다. 다음 섹션에서는 권한 정책을 만드는 사용 가능한 옵션을 설명합니다.

참고

이 단원에서는 Amazon Redshift의 맥락에서 IAM을 사용하는 방법에 대해 설명하며, IAM 서비스에 대한 자세한 정보는 다루지 않습니다. 전체 IAM 문서는 다음을 참조하십시오. IAM이란 무엇입니까? in the IAM 사용 설명서. IAM 정책 구문에 대한 자세한 내용은 AWS IAM 정책 참조 in the IAM 사용 설명서.

IAM ID에 첨부된 정책은 identity-based 정책(IAM 정책)과 리소스에 첨부된 정책은 resource-based 정책. Amazon Redshift 은 ID 기반 정책(IAM 정책)만 지원합니다.

Identity-based policies (IAM policies)

정책을 IAM 자격 증명에 연결할 수 있습니다. 예를 들면,

  • Attach a permissions policy to a user or a group in your account – An account administrator can use a permissions policy that is associated with a particular user. Such a policy grants permissions for that user to create an Amazon Redshift resource, such as a cluster.

  • Attach a permissions policy to a role (grant cross-account permissions) – You can attach an identity-based permissions policy to an IAM role to grant cross-account permissions. For example, the administrator in Account A can create a role to grant cross-account permissions to another AWS account (for example, Account B) or an AWS service as follows:

    1. Account A administrator creates an IAM role and attaches a permissions policy to the role that grants permissions on resources in Account A.

    2. Account A administrator attaches a trust policy to the role identifying Account B as the principal who can assume the role.

    3. Account B administrator can then delegate permissions to assume the role to any users in Account B. Doing this allows users in Account B to create or access resources in Account A. The principal in the trust policy can also be an AWS service principal if you want to grant an AWS service permissions to assume the role.

    For more information about using IAM to delegate permissions, see Access management in the IAM 사용 설명서.

다음은 사용자에게 AWS 계정의 Amazon Redshift 클러스터를 생성, 삭제, 수정 및 재부팅하도록 허용하는 예 정책입니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid":"AllowManageClusters", "Effect":"Allow", "Action": [ "redshift:CreateCluster", "redshift:DeleteCluster", "redshift:ModifyCluster", "redshift:RebootCluster" ], "Resource":"*" } ] }

Amazon Redshift에서 자격 증명 기반 정책을 사용하는 방법에 대한 자세한 내용은 Using identity-based policies (IAM policies) for Amazon Redshift 단원을 참조하십시오. 사용자, 그룹, 역할 및 권한에 대한 자세한 내용은 ID(사용자, 그룹 및 역할) in the IAM 사용 설명서.

Resource-based policies

Amazon S3와 같은 다른 서비스도 리소스 기반 권한 정책을 지원합니다. 예를 들어, 정책을 S3 버킷에 연결하여 해당 버킷에 대한 액세스 권한을 관리할 수 있습니다. Amazon Redshift는 리소스 기반 정책을 지원하지 않습니다. 

Specifying policy elements: Actions, effects, resources, and principals

각 Amazon Redshift 리소스(Amazon Redshift resources and operations 참조)에 대해 서비스는 API 작업을 정의합니다(작업 참조). 이러한 API 작업에 대한 권한을 부여하기 위해 Amazon Redshift에서는 정책에서 지정할 수 있는 작업을 정의합니다. API 작업을 실시하려면 둘 이상의 작업에 대한 권한이 필요할 수 있습니다.

다음은 기본 정책 요소입니다.

  • Resource – In a policy, you use an Amazon Resource Name (ARN) to identify the resource to which the policy applies. For more information, see Amazon Redshift resources and operations.

  • Action – You use action keywords to identify resource operations that you want to allow or deny. For example, the redshift:DescribeClusters permission allows the user permissions to perform the Amazon Redshift DescribeClusters operation.

  • Effect – You specify the effect when the user requests the specific action—this can be either allow or deny. If you don't explicitly grant access to (allow) a resource, access is implicitly denied. You can also explicitly deny access to a resource, which you might do to make sure that a user cannot access it, even if a different policy grants access.

  • Principal – In identity-based policies (IAM policies), the user that the policy is attached to is the implicit principal. For resource-based policies, you specify the user, account, service, or other entity that you want to receive permissions (applies to resource-based policies only). Amazon Redshift doesn't support resource-based policies.

IAM 정책 구문에 대한 자세한 내용은 AWS IAM 정책 참조 in the IAM 사용 설명서.

모든 Amazon Redshift API 작업과 해당 작업이 적용되는 리소스를 보여주는 표는 Amazon Redshift API permissions reference 단원을 참조하십시오.

Specifying conditions in a policy

권한을 부여할 때 액세스 정책 언어를 사용하여 조건이 적용되는 조건을 지정할 수 있습니다. 예를 들어, 특정 날짜 이후에만 정책을 적용할 수 있습니다. 액세스 정책 언어의 조건을 지정하는 방법에 대한 자세한 내용은 다음을 참조하십시오. IAM JSON 정책 요소: 조건 in the IAM 사용 설명서.

권한 정책이 적용되는 조건을 식별하려면 Condition 요소를 IAM 권한 정책에 포함시킵니다. 예를 들어, 사용자가 redshift:CreateCluster 작업을 사용하여 DB 인스턴스를 만들 수 있도록 허용하는 정책을 만들 수 있으며 Condition 요소를 추가하여 해당 사용자가 MySQL 데이터베이스 엔진을 사용하여 DB 인스턴스만 만들 수 있도록 제한할 수 있습니다. 자세한 내용은 Using IAM policy conditions for fine-grained access control 단원을 참조하십시오. 모든 조건 키 값과 이 값이 적용되는 Amazon Redshift 작업 및 리소스를 보여주는 목록은 Amazon Redshift API permissions reference 단원을 참조하십시오.

Using IAM policy conditions for fine-grained access control

Amazon Redshift에서는 리소스 태그에 따라 조건 키를 사용하여 리소스에 대한 액세스를 제한할 수 있습니다. 다음은 공통의 Amazon Redshift 조건 키입니다.

조건 키 설명

aws:RequestTag

사용자가 리소스를 생성할 때마다 태그 키(이름)와 값을 포함해야 합니다. 자세한 내용은 aws:요청 태그 in the IAM 사용 설명서.

aws:ResourceTag

특정 태그 키 및 값에 따라 리소스에 대한 사용자 액세스를 제한합니다. 자세한 내용은 aws:resourcetag in the IAM 사용 설명서.

aws:TagKeys

이 키를 사용하여 요청의 태그 키를 정책에서 지정한 키와 비교합니다. 자세한 내용은 aws:태그 키 in the IAM 사용 설명서.

태그를 생성하는 방법에 대한 자세한 내용은 태그 지정 개요 단원을 참조하십시오.

redshift:RequestTagredshift:ResourceTag 조건 키를 지원하는 API 작업 목록은 Amazon Redshift API permissions reference 단원을 참조하십시오.

다음 조건 키는 Amazon Redshift GetClusterCredentials 작업과 함께 사용할 수 있습니다.

조건 키 설명

redshift:DurationSeconds

기간에 대해 지정할 수 있는 시간(초)을 제한합니다.

redshift:DbName

지정할 수 있는 데이터베이스 이름을 제한합니다.

redshift:DbUser

지정할 수 있는 데이터베이스 사용자 이름을 제한합니다.

Example 1: Restricting access by using the aws:ResourceTag condition key

다음 IAM 정책을 사용하여 us-west-2 리전에서 이름이 environment인 태그와 값이 test인 태그가 있는 특정 AWS 계정에 한해 사용자에게 Amazon Redshift 클러스터를 수정하도록 허용할 수 있습니다.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowModifyTestCluster", "Effect": "Allow", "Action": "redshift:ModifyCluster", "Resource": "arn:aws:redshift:us-west-2:123456789012:cluster:*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "test" } } } }

Example 2: Restricting access by using the aws:RequestTag condition key

다음 IAM 정책을 사용하여 사용자에게 Amazon Redshift 클러스터를 생성할 명령에 이름이 포함된 태그가 포함된 경우에만 클러스터를 usage 태그 값 production. 이 질환은 aws:TagKeys 그리고 ForAllValues 수정자는 키만 지정합니다. costcenter and usage 요청 에서 지정할 수 있습니다.

{ "Version": "2012-10-17", "Statement": { "Sid": "AllowCreateProductionCluster", "Effect": "Allow", "Action": [ "redshift:CreateCluster", "redshift:CreateTags" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/usage": "production" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "costcenter", "usage" ] } } } }