Amazon Redshift에 대해 서비스 연결 역할 사용 - Amazon Redshift

Amazon Redshift에 대해 서비스 연결 역할 사용

Amazon Redshift는 AWS Identity and Access Management(IAM) 서비스 연결 역할을 사용합니다. 서비스 연결 역할은 Amazon Redshift에 직접 연결된 고유한 유형의 IAM 역할입니다. 서비스 연결 역할은 Amazon Redshift에서 사전 정의하며, 해당 서비스가 Amazon Redshift 클러스터를 대신해 AWS 서비스를 자동으로 호출하기 위해 필요한 모든 권한을 가지고 있습니다.

서비스 연결 역할을 사용하면 필요한 권한을 수동으로 추가할 필요가 없기 때문에 Amazon Redshift를 더 쉽게 설정할 수 있습니다. 서비스 연결 역할은 Amazon Redshift 사용 사례에 연결되고 사전 정의된 권한이 있습니다. Amazon Redshift만 역할을 수임할 수 있으며 서비스 연결 역할만 사전 정의된 권한 정책을 사용할 수 있습니다. Amazon Redshift는 클러스터 또는 Redshift 관리형 VPC 엔드포인트를 처음 생성할 때 계정에 서비스 연결 역할을 생성합니다. 계정에서 Amazon Redshift 클러스터 또는 Redshift 관리형 VPC 엔드포인트를 모두 삭제한 후에만 서비스 연결 역할을 삭제할 수 있습니다. 이렇게 하면 리소스에 대한 액세스에 필요한 권한을 부주의하게 삭제할 수 없기 때문에 Amazon Redshift 리소스가 보호됩니다.

Amazon Redshift는 서비스가 제공되는 모든 리전에서 서비스 연결 역할 사용을 지원합니다. 자세한 내용은 AWS 리전 및 엔드포인트 섹션을 참조하십시오.

서비스 연결 역할을 지원하는 기타 서비스에 대한 자세한 내용은 IAM으로 작업하는 AWS 서비스를 참조하고 Service-Linked Role(서비스 연결 역할) 열에 Yes(예)가 표시된 서비스를 찾으세요. 해당 서비스에 대한 서비스 연결 역할 설명서를 보려면 링크를 선택합니다.

Amazon Redshift에 대한 서비스 연결 역할 권한

Amazon Redshift는 AWSServiceRoleForRedshift라는 서비스 연결 역할을 사용합니다. 이를 통해 Amazon Redshift가 사용자를 대신하여 AWS 서비스를 호출할 수 있습니다. 이 서비스 연결 역할은 관리형 정책 AmazonRedshiftServiceLinkedRolePolicy에 연결됩니다. 이 정책에 대한 업데이트는 Amazon Redshift에 대한 AWS 관리형 (사전 정의된) 정책을 참조하세요.

AWSServiceRoleForRedshift 서비스 연결 역할은 redshift.amazonaws.com만 신뢰하여 역할을 맡습니다.

AWSServiceRoleForRedshift 서비스 연결 역할 권한 정책은 Amazon Redshift가 관련된 모든 리소스에서 다음을 완료하도록 허용합니다.

  • ec2:DescribeVpcs

  • ec2:DescribeSubnets

  • ec2:DescribeNetworkInterfaces

  • ec2:DescribeAddress

  • ec2:AssociateAddress

  • ec2:DisassociateAddress

  • ec2:CreateNetworkInterface

  • ec2:DeleteNetworkInterface

  • ec2:ModifyNetworkInterfaceAttribute

  • ec2:CreateVpcEndpoint

  • ec2:DeleteVpcEndpoints

  • ec2:DescribeVpcEndpoints

  • ec2:ModifyVpcEndpoint

  • ec2:DescribeVpcAttribute

  • ec2:DescribeSecurityGroups

  • ec2:DescribeInternetGateways

  • ec2:DescribeSecurityGroupRules

  • ec2:DescribeAvailabilityZones

  • ec2:DescribeNetworkAcls

  • ec2:DescribeRouteTables

  • ec2:AssignIpv6Addresses

  • ec2:UnassignIpv6Addresses

네트워크 리소스에 대한 권한

다음 권한은 Amazon EC2에서 보안 그룹 규칙의 생성 및 관리 작업을 허용합니다. 이러한 보안 그룹 및 규칙은 특히 Amazon Redshift aws:RequestTag/Redshift 리소스 태그와 관련이 있습니다. 이렇게 하면 권한 범위가 특정 Amazon Redshift 리소스로 제한됩니다.

  • ec2:CreateSecurityGroup

  • ec2:AuthorizeSecurityGroupEgress

  • ec2:AuthorizeSecurityGroupIngress

  • ec2:RevokeSecurityGroupEgress

  • ec2:RevokeSecurityGroupIngress

  • ec2:ModifySecurityGroupRules

  • ec2:DeleteSecurityGroup

서비스 할당량에 대한 권한

다음 권한을 통해 호출자는 서비스 할당량을 받을 수 있습니다.

servicequotas:GetServiceQuota

다음 JSON 조각은 서비스 할당량의 작업 및 리소스 범위를 보여줍니다.

{ "Sid": "ServiceQuotasToCheckCustomerLimits", "Effect": "Allow", "Action": [ "servicequotas:GetServiceQuota" ], "Resource": [ "arn:aws:servicequotas:*:*:ec2/L-0263D0A3", "arn:aws:servicequotas:*:*:vpc/L-29B6F2EB" ] }

할당량 코드는 다음과 같습니다.

  • L-0263D0A3 - EC2-VPC Elastic IP의 할당량 코드입니다.

  • L-29B6F2EB - VPC당 인터페이스 VPC 엔드포인트의 할당량 코드입니다.

자세한 내용은 AWS 서비스 할당량을 참조하십시오.

감사 로깅 작업

logs 접두사와 함께 나열된 작업은 감사 로깅 및 관련 기능과 관련이 있습니다. 특히, 로그 그룹 및 로그 스트림의 생성 및 관리와 관련이 있습니다.

  • logs:CreateLogGroup

  • logs:PutRetentionPolicy

  • logs:CreateLogStream

  • logs:PutLogEvents

  • logs:DescribeLogStreams

  • logs:GetLogEvents

다음 JSON은 감사 로깅을 위해 Amazon Redshift에 대한 작업 및 리소스 범위를 보여줍니다.

[ { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogGroups", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:PutRetentionPolicy" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*" ] }, { "Sid": "EnableCreationAndManagementOfRedshiftCloudwatchLogStreams", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "logs:GetLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/redshift/*:log-stream:*" ] } ]

서비스 연결 역할 및 AWS에서의 용도에 대한 자세한 내용은 서비스 연결 역할 사용을 참조하세요. Amazon Redshift의 특정 작업 및 기타 IAM 리소스에 대한 자세한 내용은 Amazon Redshift에 사용되는 작업, 리소스 및 조건 키를 참조하세요.

AWS Secrets Manager를 사용하여 관리자 보안 인증 정보를 관리하기 위한 작업

secretsmanager 접두사와 함께 나열된 작업은 Amazon Redshift를 사용하여 관리자 보안 인증 정보를 관리하는 것과 관련이 있습니다. 이러한 작업을 사용하면 Amazon Redshift는 AWS Secrets Manager를 사용하여 관리자 보안 인증 보안 암호를 생성하고 관리할 수 있습니다.

다음 JSON은 AWS Secrets Manager를 사용한 관리자 보안 인증 정보 관리와 관련하여 Amazon Redshift에 대한 작업 및 리소스 범위를 보여줍니다.

[ { "Effect": "Allow", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:DeleteSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecret", "secretsmanager:UpdateSecretVersionStage", "secretsmanager:RotateSecret" ], "Resource": [ "arn:aws:secretsmanager:*:*:secret:redshift!*" ], "Condition": { "StringEquals": { "secretsmanager:ResourceTag/aws:secretsmanager:owningService": "redshift" } } }, { "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*" } ]

IAM 엔터티가 AWSServiceRoleForRedshift 서비스 연결 역할을 생성하도록 허용

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

IAM 엔터티가 AWSServiceRoleForRedshift 서비스 연결 역할을 삭제하도록 허용

IAM 개체에 대한 권한에 다음 정책 설명을 추가합니다.

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::<AWS-account-ID>:role/aws-service-role/redshift.amazonaws.com/AWSServiceRoleForRedshift", "Condition": {"StringLike": {"iam:AWSServiceName": "redshift.amazonaws.com"}} }

또는 AWS 관리형 정책을 사용하여 Amazon Redshift에 대한 전체 액세스 권한을 제공할 수 있습니다.

Amazon Redshift에 대한 서비스 연결 역할 생성

AWSServiceRoleForRedshift 서비스 연결 역할은 수동으로 생성할 필요가 없습니다. Amazon Redshift에서 서비스 연결 역할을 자동으로 생성합니다. 사용자 계정에서 AWSServiceRoleForRedshift 서비스 연결 역할이 삭제되면 새 Amazon Redshift 클러스터를 시작할 때 Amazon Redshift에서 해당 역할을 생성합니다.

중요

Amazon Redshift 서비스가 서비스 연결 역할을 지원하기 시작한 2017년 12월 18일 이전에 이 서비스를 사용했다면 Amazon Redshift가 사용자 계정에 AWSServiceRoleForRedshift 역할을 이미 생성했습니다. 자세한 내용은 내 IAM 계정에 표시되는 새 역할을 참조하십시오.

Amazon Redshift에 대한 서비스 연결 역할 편집

Amazon Redshift는 AWSServiceRoleForRedshift 서비스 연결 역할을 편집하도록 허용하지 않습니다. 서비스 연결 역할을 생성한 후에는 다양한 엔터티가 역할을 참조할 수 있기 때문에 역할 이름을 변경할 수 없습니다. 그러나 IAM 콘솔, AWS Command Line Interface(AWS CLI) 또는 IAM API를 사용하여 역할에 대한 설명을 편집할 수 있습니다. 자세한 내용은 IAM User GuideModifying a role 섹션을 참조하세요.

Amazon Redshift에 대한 서비스 연결 역할 삭제

서비스 연결 역할이 필요한 기능 또는 서비스가 더 이상 필요 없는 경우에는 해당 역할을 삭제할 것을 권합니다. 그렇게 하면 적극적으로 모니터링하거나 유지 관리하지 않은 미사용 엔터티가 없습니다.

계정에 대한 서비스 연결 역할을 삭제하려면 클러스터를 종료한 다음 계정에서 삭제해야 합니다. 자세한 내용은 클러스터 종료 및 삭제 단원을 참조하십시오.

IAM 콘솔, AWS CLI 또는 IAM API를 사용하여 서비스 연결 역할을 삭제할 수 있습니다. 자세한 내용은 IAM 사용 설명서서비스에 연결 역할 삭제 단원을 참조하십시오.