내용으로 건너뛰기

사용자가 Amazon RDS DB 인스턴스를 생성, 삭제, 수정, 백업, 복구할 때 필요한 최소 권한은 무엇입니까?

5분 분량
0

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 사용자 액세스를 구성하려면 다음 단계를 완료하십시오.

  1. IAM 콘솔을 엽니다.
  2. 탐색 창에서 Users(사용자)를 선택합니다.
  3. Add user(사용자 추가)를 선택한 다음 User name(사용자 이름)을 입력합니다.
  4. Access type(액세스 유형)에서 AWS Management Console 액세스를 선택한 다음 Amazon RDS 콘솔을 사용하기 위한 암호를 생성합니다. AWS CLI에 대한 액세스를 제공하려면 Programmatic access(프로그래밍 방식 액세스)를 선택합니다.
    중요: Programmatic access(프로그래밍 방식 액세스)의 경우 Download.csv를 선택하여 액세스 키 ID와 시크릿 액세스 키를 다운로드합니다. 나중에 보안 토큰을 생성하려면 키가 필요합니다.
  5. 권한 및 태그를 검토한 다음 Create user(사용자 생성)를 선택합니다.
    참고: 이렇게 하면 IAMUserChangePassword 정책을 가진 IAM 사용자가 생성됩니다.
  6. Amazon RDS에서 수행할 원하는 작업에 대한 IAM 정책을 생성합니다.
  7. 사용자에게 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 RDS의 ID 및 액세스 관리

사용자가 Amazon IAM 자격 증명을 통해 Amazon RDS for MySQL DB 인스턴스에 인증할 수 있도록 하려면 어떻게 해야 합니까?

댓글 없음