메뉴
Amazon Relational Database Service
사용 설명서 (API Version 2014-10-31)

Amazon RDS에 대한 자격 증명 기반 정책(IAM 정책) 사용

이 항목에서는 계정 관리자가 IAM 자격 증명(사용자, 그룹, 역할)에 권한 정책을 연결할 수 있는 자격 증명 기반 정책의 예를 제공합니다.

중요

Amazon RDS 리소스에 대한 액세스 관리를 위해 제공되는 기본 개념과 옵션 설명에 대한 소개 주제 부분을 먼저 읽어 보는 것이 좋습니다. 자세한 내용은 Amazon RDS 리소스에 대한 액세스 권한 관리 개요 단원을 참조하십시오.

이 항목의 단원들에서는 다음 내용을 학습합니다.

다음은 IAM 정책 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateDBInstanceOnly", "Effect": "Allow", "Action": [ "rds:CreateDBInstance" ], "Resource": [ "arn:aws:rds:*:123456789012:db:test*", "arn:aws:rds:*:123456789012:og:default*", "arn:aws:rds:*:123456789012:pg:default*", "arn:aws:rds:*:123456789012:subgrp:default" ], "Condition": { "StringEquals": { "rds:DatabaseEngine": "mysql", "rds:DatabaseClass": "db.t2.micro" } } } ] }

정책은 다음 IAM 사용자 권한을 지정하는 단일 명령문을 포함합니다.

  • 정책은 IAM 사용자가 CreateDBInstance API 작업을 사용하여 DB 인스턴스를 생성할 수 있도록 허용합니다. 이는 create-db-instance AWS CLI 명령과 AWS Management Console에도 적용됩니다.

  • Resource 요소는 사용자가 리소스 위치에서 또는 리소스를 사용하여 작업을 수행할 수 있도록 지정합니다. 리소스는 Amazon 리소스 이름(ARN)을 사용하여 지정합니다. 이 ARN에는 리소스가 속하는 서비스 이름(rds), AWS 리전(*는 위의 예제에서 사용하는 모든 리전을 의미함), 사용자 계정 번호(위의 예제에서 사용하는 사용자 ID는 123456789012임), 그리고 리소스 유형이 포함됩니다. ARN 생성에 대한 자세한 내용은 Amazon RDS의 Amazon 리소스 이름(ARN)을 사용한 작업 단원을 참조하십시오.

    위의 예제에서 Resource 요소는 사용자 리소스에 대해 다음과 같은 정책 제약 조건을 지정합니다.

    • 새 DB 인스턴스에 대한 DB 인스턴스 식별자는 test로 시작해야 합니다(예: testCustomerData1, test-region2-data).

    • 새로운 DB 인스턴스의 옵션 그룹은 default로 시작해야 합니다.

    • 새로운 DB 인스턴스의 DB 파라미터 그룹은 default로 시작해야 합니다.

    • 새로운 DB 인스턴스의 서브넷 그룹은 default 서브넷 그룹이 되어야 합니다.

  • Condition 요소는 DB 엔진은 MySQL이 되고, DB 인스턴스 클래스는 db.t2.micro가 되도록 지정합니다. Condition 요소는 정책 적용 시 조건을 지정합니다. 그 밖에도 Condition 요소를 사용하여 다른 권한이나 제한을 추가할 수 있습니다. 조건 지정에 대한 자세한 내용은 IAM 정책 조건을 사용하여 세부적인 액세스 제어 구현단원을 참조하십시오.

자격 증명 기반 정책에서는 권한을 가질 보안 주체를 지정하지 않으므로 이 정책은 Principal 요소를 지정하지 않습니다. 정책을 사용자에게 연결할 경우 사용자는 암시적인 보안 주체입니다. IAM 역할에 권한 정책을 연결할 경우 역할의 신뢰 정책에 식별된 보안 주체는 권한을 가집니다.

모든 Amazon RDS API 작업과 해당 작업이 적용되는 리소스를 보여주는 표는 Amazon RDS API 권한: 작업, 리소스 및 조건 참조 단원을 참조하십시오.

Amazon RDS 콘솔 사용에 필요한 권한

Amazon RDS 콘솔에서 작업하려면 최소한의 권한이 사용자에게 필요합니다. 이러한 권한이 있어야만 사용자가 자신의 AWS 계정에서 사용할 Amazon RDS 리소스를 설명하고, Amazon EC2 보안 및 네트워크 정보 등 다른 관련 정보를 입력할 수 있습니다.

최소 필수 권한보다 더 제한적인 IAM 정책을 만들면 콘솔은 해당 IAM 정책에 연결된 사용자에 대해 의도대로 작동하지 않습니다. 이 사용자가 Amazon RDS 콘솔을 사용할 수 있도록 하려면 AmazonRDSReadOnlyAccess 관리형 정책을 사용자에게 연결합니다(Amazon RDS에 대한 AWS 관리형(미리 정의된) 정책 참조).

AWS CLI 또는 Amazon RDS API만 호출하는 사용자에게 최소 콘솔 권한을 허용할 필요가 없습니다.

Amazon RDS에 대한 AWS 관리형(미리 정의된) 정책

AWS는 AWS에서 생성하고 관리하는 독립형 IAM 정책을 제공하여 많은 일반 사용 사례를 처리합니다. 관리형 정책은 사용자가 필요한 권한을 조사할 필요가 없도록 일반 사용 사례에 필요한 권한을 부여합니다. 자세한 내용은 IAM 사용 설명서AWS 관리형 정책을 참조하십시오.

계정의 사용자에게 연결할 수 있는 다음 AWS 관리형 정책은 Amazon RDS에 고유합니다.

  • AmazonRDSReadOnlyAccess – 루트 AWS 계정의 모든 Amazon RDS 리소스에 대한 읽기 전용 액세스를 부여합니다.

  • AmazonRDSFullAccess – 루트 AWS 계정의 모든 Amazon RDS 리소스에 대한 전체 액세스를 부여합니다.

사용자에게 필요한 Amazon RDS API 작업 및 리소스에 액세스하도록 허용하는 사용자 지정 IAM 정책을 생성할 수도 있습니다. 해당 권한이 필요한 IAM 사용자 또는 그룹에 이러한 사용자 지정 정책을 연결할 수 있습니다.

고객 관리형 정책 예

이 단원에서는 다양한 Amazon RDS 작업에 대한 권한을 부여하는 사용자 정책의 예를 제공합니다. 이러한 정책은 RDS API 작업, AWS SDK 또는 AWS CLI를 사용하는 경우에 유효합니다. 콘솔을 사용하는 경우 Amazon RDS 콘솔 사용에 필요한 권한의 설명과 같이 콘솔에 특정한 추가 권한을 부여해야 합니다.

참고

모든 예에서는 미국 서부(오리건) 리전(us-west-2)을 사용하며 가상의 계정 ID를 포함합니다.

예제 1: 사용자가 모든 RDS 리소스에서 Describe 작업을 수행할 수 있도록 허용

다음 권한 정책은 사용자에게 Describe로 시작하는 모든 작업을 실행할 수 있는 권한을 부여합니다. 이러한 작업은 DB 인스턴스와 같은 RDS 리소스에 대한 정보를 보여 줍니다. Resource 요소에 와일드카드 문자(*)가 있으면 계정이 소유한 모든 Amazon RDS 리소스에 대해 작업이 허용됩니다.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowRDSDescribe", "Effect":"Allow", "Action":"rds:Describe*", "Resource":"*" } ] }

예제 2: 사용자가 지정된 DB 파라미터 및 보안 그룹을 사용하는 DB 인스턴스를 생성할 수 있도록 허용

다음 권한 정책은 사용자가 mysql-production DB 파라미터 그룹 및 db-production DB 보안 그룹을 사용해야 하는 DB 인스턴스만 생성할 수 있도록 허용하는 권한을 부여합니다.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowMySQLProductionCreate", "Effect":"Allow", "Action":"rds:CreateDBInstance", "Resource":[ "arn:aws:rds:us-west-2:123456789012:pg:mysql-production", "arn:aws:rds:us-west-2:123456789012:secgrp:db-production" ] } ] }

예제 3: 사용자의 DB 인스턴스 삭제 방지

다음 권한 정책은 사용자의 특정 DB 인스턴스 삭제를 방지하는 권한을 부여합니다. 예를 들어, 관리자가 아닌 모든 사용자에 대해 프로덕션 인스턴스를 삭제할 수 있는 권한을 거부해야 할 수 있습니다.

{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyDelete1", "Effect":"Deny", "Action":"rds:DeleteDBInstance", "Resource":"arn:aws:rds:us-west-2:123456789012:db:my-mysql-instance" } ] }