사용자가 Amazon RDS DB 인스턴스를 생성, 삭제, 수정, 백업, 복구할 때 필요한 최소 권한은 무엇입니까?
AWS Identity and Access Management(IAM) 사용자에게 Amazon Relational Database Service(Amazon RDS) DB 인스턴스를 관리하는 데 필요한 최소 권한을 부여하려고 합니다.
해결 방법
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
RDS DB 인스턴스에 대한 IAM 사용자 액세스를 구성하려면 다음 단계를 완료하십시오.
- IAM 콘솔을 엽니다.
- 탐색 창에서 Users(사용자)를 선택합니다.
- Add user(사용자 추가)를 선택한 다음 User name(사용자 이름)을 입력합니다.
- Access type(액세스 유형)에서 AWS Management Console 액세스를 선택한 다음 Amazon RDS 콘솔을 사용하기 위한 암호를 생성합니다. AWS CLI에 대한 액세스를 제공하려면 Programmatic access(프로그래밍 방식 액세스)를 선택합니다.
중요: Programmatic access(프로그래밍 방식 액세스)의 경우 Download.csv를 선택하여 액세스 키 ID와 시크릿 액세스 키를 다운로드합니다. 나중에 보안 토큰을 생성하려면 키가 필요합니다. - 권한 및 태그를 검토한 다음 Create user(사용자 생성)를 선택합니다.
참고: 이렇게 하면 IAMUserChangePassword 정책을 가진 IAM 사용자가 생성됩니다. - Amazon RDS에서 수행할 원하는 작업에 대한 IAM 정책을 생성합니다.
- 사용자에게 IAM 정책을 추가합니다.
IAM 정책 예시
다음 정책 예시는 지정된 작업을 수행하는 데 필요한 최소 권한을 제공합니다. 정책에 필요한 권한이 없기 때문에 Amazon RDS 콘솔에 오류가 표시될 수 있습니다. 예를 들어 IAMUser is not authorized to perform: rds:Action 오류 메시지가 표시될 수 있습니다.
Describe 작업에 오류가 발생할 수 있지만 이 오류는 해당 작업을 수행하는 데 영향을 주지 않습니다. 오류를 방지하려면 다음 예제 IAM 정책을 수정하거나 AWS CLI를 사용하여 작업을 수행하십시오.
RDS DB 인스턴스 생성 및 삭제
사용자가 암호화를 활성화하지 않고 RDS DB 인스턴스를 생성할 수 있도록 하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DescribeAccountAttributes", "ec2:DescribeSubnets", "rds:Describe*", "rds:ListTagsForResource", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup" ], "Resource": "*" } ] }
사용자가 암호화가 활성화된 RDS DB 인스턴스를 생성할 수 있도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DescribeAccountAttributes", "ec2:DescribeSubnets", "rds:Describe*", "rds:ListTagsForResource", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "kms:ListAliases" ], "Resource": "*" } ] }
참고: 암호화에 고객 관리형 키를 사용하려면 고객 관리형 키 사용을 승인해야 합니다.
사용자가 RDS DB 인스턴스를 삭제하도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds:DeleteDBInstance", "rds:DescribeDBInstances" ], "Resource": "*" } ] }
사용자가 RDS DB 인스턴스를 생성하고 삭제하도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVpcAttribute", "ec2:DescribeSecurityGroups", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeVpcs", "ec2:DescribeAccountAttributes", "ec2:DescribeSubnets", "rds:Describe*", "rds:ListTagsForResource", "rds:CreateDBInstance", "rds:CreateDBSubnetGroup", "rds:DeleteDBInstance" ], "Resource": "*" } ] }
RDS DB 인스턴스 중지 및 시작
사용자가 RDS DB 인스턴스를 시작하고 중지하도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds:StopDBInstance", "rds:StartDBInstance", "rds:Describe*" ], "Resource": "*" } ] }
백업 및 복구 수행
사용자가 DB 스냅샷을 생성하도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds:Describe*", "rds:CreateDBSnapshot" ], "Resource": "*" } ] }
사용자가 DB 스냅샷을 사용하는 RDS DB 인스턴스를 복원하도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:Describe*", "rds:Describe*", "rds:RestoreDBInstanceFromDBSnapshot" ], "Resource": "*" } ] }
사용자가 시점 복구(PTTR)를 수행하도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:Describe*", "rds:Describe*", "rds:RestoreDBInstanceToPointInTime" ], "Resource": "*" } ] }
RDS DB 인스턴스 수정
사용자가 DB 인스턴스 클래스 유형, 할당된 스토리지, 스토리지 유형 및 인스턴스 버전을 변경하도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:Describe*", "rds:Describe*", "rds:ModifyDBInstance" ], "Resource": "*" } ] }
Enhanced Monitoring 및 Performance Insights 활성화
IAM:PassRole을 사용하는 경우 와일드카드(*)는 모든 리소스에 대해 IAM:PassRole 권한을 허용하므로 지나치게 관대합니다. ARN을 지정하는 것이 가장 좋습니다.
사용자가 Enhanced Monitoring을 활성화하도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:ListRoles", "rds:ModifyDBInstance", "rds:Describe*", "ec2:Describe*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::AccountID:role/rds-monitoring-role" } ] }
참고: AccountID를 Enhanced Monitoring 역할을 받는 각 사용자로 바꿔야 합니다.
사용자가 Performance Insights를 활성화하도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds:ModifyDBInstance", "ec2:Describe*", "rds:Describe*", "pi:*" ], "Resource": "*" } ] }
DB 파라미터 그룹 및 DB 옵션 그룹 생성, 수정, 삭제
사용자가 DB 파라미터 그룹 및 옵션 그룹을 생성, 수정 또는 삭제할 수 있도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:Describe*", "rds:Describe*", "rds:CreateDBParameterGroup", "rds:ModifyDBParameterGroup", "rds:DeleteDBParameterGroup", "rds:CreateOptionGroup", "rds:ModifyOptionGroup", "rds:DeleteOptionGroup" ], "Resource": "*" } ] }
Amazon RDS 콘솔에서 Amazon CloudWatch 지표 보기
사용자가 Amazon RDS 콘솔에서 CloudWatch 지표를 볼 수 있도록 허용하려면 다음 정책을 사용하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds:Describe*", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics" ], "Resource": "*" } ] }
관련 정보
사용자가 Amazon IAM 자격 증명을 통해 Amazon RDS for MySQL DB 인스턴스에 인증할 수 있도록 하려면 어떻게 해야 합니까?
관련 콘텐츠
- 질문됨 일 년 전

