Amazon RDS의 ID 및 접근 관리

Amazon RDS의 ID 및 접근 관리

AWS Identity and Access Management(IAM)는 관리자가 AWS 리소스에 대한 접근을 안전하게 제어할 수 있게 도와주는 AWS 서비스예요. IAM 관리자는 누가 인증(로그인)되고 누가 Amazon RDS 리소스를 사용하도록 권한(허가)을 받는지 제어해요. IAM은 추가 비용 없이 사용할 수 있는 AWS 서비스예요.

출처: 문서

본문

AWS Identity and Access Management(IAM)는 관리자가 AWS 리소스에 대한 접근을 안전하게 제어할 수 있게 도와주는 AWS 서비스예요. IAM 관리자는 누가 인증(로그인)되고 누가 Amazon RDS 리소스를 사용하도록 권한(허가)을 받는지 제어해요. IAM은 추가 비용 없이 사용할 수 있는 AWS 서비스예요.

Amazon RDS의 AWS 관리형 정책 업데이트에 대한 정보는 "Amazon RDS의 AWS 관리형 정책 업데이트" 문서를 참고하세요.

주제 (Topics)

  • 대상 사용자 (Audience)
  • ID로 인증 (Authenticating with identities)
  • 정책을 사용한 접근 관리 (Managing access using policies)
  • Amazon RDS가 IAM과 함께 작동하는 방식 (How Amazon RDS works with IAM)
  • Amazon RDS의 ID 기반 정책 예시 (Identity-based policy examples for Amazon RDS)
  • Amazon RDS의 AWS 관리형 정책 (AWS managed policies for Amazon RDS)
  • Amazon RDS의 AWS 관리형 정책 업데이트 (Amazon RDS updates to AWS managed policies)
  • 교차 서비스 confused deputy 문제 방지 (Preventing cross-service confused deputy problems)
  • MariaDB, MySQL, PostgreSQL용 IAM 데이터베이스 인증 (IAM database authentication for MariaDB, MySQL, and PostgreSQL)
  • Amazon RDS ID 및 접근 문제 해결 (Troubleshooting Amazon RDS identity and access)

대상 사용자 (Audience)

Amazon RDS에서 어떤 작업을 하느냐에 따라 AWS Identity and Access Management(IAM) 사용 방식이 달라져요.

  • 서비스 사용자(Service user) – Amazon RDS 서비스를 사용해 업무를 수행한다면, 관리자가 필요한 자격 증명과 권한을 제공해요. 업무를 수행하면서 더 많은 Amazon RDS 기능을 사용하게 되면 추가 권한이 필요할 수 있어요. 접근이 어떻게 관리되는지 이해하면 관리자에게 올바른 권한을 요청하는 데 도움이 돼요. Amazon RDS의 기능에 접근할 수 없다면 "Amazon RDS ID 및 접근 문제 해결" 문서를 참고하세요.
  • 서비스 관리자(Service administrator) – 회사에서 Amazon RDS 리소스를 담당한다면 아마 Amazon RDS에 대한 전체 접근 권한이 있을 거예요. 직원들이 어떤 Amazon RDS 기능과 리소스에 접근해야 하는지 결정하는 것이 여러분의 업무예요. 그런 다음 서비스 사용자의 권한을 변경하도록 관리자에게 요청을 제출해야 해요. 이 페이지의 정보를 검토해 IAM의 기본 개념을 이해해요. 회사가 Amazon RDS와 함께 IAM을 사용하는 방법에 대해 자세히 알아보려면 "Amazon RDS가 IAM과 함께 작동하는 방식" 문서를 참고하세요.
  • 관리자(Administrator) – 관리자라면 Amazon RDS에 대한 접근을 관리하는 정책 작성 방법에 대한 세부 내용을 배우고 싶을 거예요. IAM에서 사용할 수 있는 Amazon RDS ID 기반 정책 예시를 보려면 "Amazon RDS의 ID 기반 정책 예시" 문서를 참고하세요.

ID로 인증 (Authenticating with identities)

인증은 ID 자격 증명을 사용해 AWS에 로그인하는 방식이에요. AWS 계정 루트 사용자, IAM 사용자로 인증되거나 IAM 역할을 맡아(assume) 인증되어야 해요.

AWS IAM Identity Center(IAM Identity Center), SSO(single sign-on) 인증, 또는 Google/Facebook 자격 증명 같은 ID 소스의 자격 증명을 사용해 페더레이션 ID로 로그인할 수 있어요. 로그인에 대한 자세한 내용은 AWS Sign-In 사용자 가이드의 "AWS 계정에 로그인하는 방법" 문서를 참고하세요.

프로그래매틱 접근을 위해 AWS는 요청에 암호화 서명을 하는 SDK와 CLI를 제공해요. 자세한 내용은 IAM 사용자 가이드의 "API 요청에 대한 AWS Signature Version 4" 문서를 참고하세요.

AWS 계정 루트 사용자

AWS 계정을 생성하면 모든 AWS 서비스와 리소스에 대한 완전한 접근 권한을 가진 AWS 계정 루트 사용자라는 로그인 ID 하나로 시작해요. 루트 사용자를 일상적인 작업에 사용하지 않는 것을 강력히 권장해요. 루트 사용자 자격 증명이 필요한 작업은 IAM 사용자 가이드의 "루트 사용자 자격 증명이 필요한 작업" 문서를 참고하세요.

페더레이션 ID (Federated identity)

모범 사례로서, 사람 사용자에게 ID 공급자와의 페더레이션을 사용해 임시 자격 증명으로 AWS 서비스에 접근하도록 요구해요.

페더레이션 ID는 엔터프라이즈 디렉터리, 웹 ID 공급자 또는 Directory Service의 사용자로서, ID 소스의 자격 증명을 사용해 AWS 서비스에 접근하는 사용자예요. 페더레이션 ID는 임시 자격 증명을 제공하는 역할을 맡아요.

중앙 집중식 접근 관리에는 AWS IAM Identity Center를 권장해요. 자세한 내용은 AWS IAM Identity Center 사용자 가이드의 "IAM Identity Center란 무엇인가?" 문서를 참고하세요.

IAM 사용자 및 그룹

IAM 사용자는 한 사람이나 애플리케이션에 대한 특정 권한을 가진 ID예요. 장기 자격 증명을 가진 IAM 사용자보다 임시 자격 증명을 사용할 것을 권장해요. 자세한 내용은 IAM 사용자 가이드의 "사람 사용자에게 임시 자격 증명으로 AWS에 접근하도록 ID 공급자와의 페더레이션 요구" 문서를 참고하세요.

IAM 그룹은 IAM 사용자 집합을 지정해 대규모 사용자 집합의 권한 관리를 더 쉽게 만들어요. 자세한 내용은 IAM 사용자 가이드의 "IAM 사용자의 사용 사례" 문서를 참고하세요.

IAM 데이터베이스 인증을 사용해 DB 인스턴스에 인증할 수 있어요. IAM 데이터베이스 인증은 다음 DB 엔진과 함께 작동해요.

  • RDS for MariaDB
  • RDS for MySQL
  • RDS for PostgreSQL

IAM을 사용해 DB 인스턴스에 인증하는 방법에 대한 자세한 내용은 "MariaDB, MySQL, PostgreSQL용 IAM 데이터베이스 인증" 문서를 참고하세요.

IAM 역할

IAM 역할은 특정 권한을 가진 AWS 계정 내의 ID예요. 사용자와 비슷하지만 특정 사람과 연결되지 않아요. AWS Management Console에서 역할을 전환(switch)해 IAM 역할을 일시적으로 맡을 수 있어요. AWS CLI 또는 AWS API 작업을 호출하거나 사용자 지정 URL을 사용해 역할을 맡을 수 있어요. 역할 사용 방법에 대한 자세한 내용은 IAM 사용자 가이드의 "IAM 역할 사용" 문서를 참고하세요.

임시 자격 증명이 있는 IAM 역할은 다음 상황에서 유용해요.

  • 임시 사용자 권한 – 사용자가 IAM 역할을 맡아 특정 작업에 대해 일시적으로 다른 권한을 가질 수 있어요.
  • 페더레이션 사용자 접근 – 페더레이션 ID에 권한을 할당하려면 역할을 만들고 역할에 대한 권한을 정의해요. 페더레이션 ID가 인증되면 ID는 역할과 연결되고 역할이 정의한 권한을 부여받아요. 페더레이션 역할에 대한 정보는 IAM 사용자 가이드의 "타사 ID 공급자(페더레이션)용 역할 생성" 문서를 참고하세요. IAM Identity Center를 사용한다면 권한 집합(permission set)을 구성해요. ID가 인증 후 접근할 수 있는 것을 제어하기 위해 IAM Identity Center는 권한 집합을 IAM의 역할에 연결해요. 권한 집합에 대한 정보는 AWS IAM Identity Center 사용자 가이드의 "권한 집합" 문서를 참고하세요.
  • 교차 계정 접근 – IAM 역할을 사용해 다른 계정의 누군가(신뢰할 수 있는 주체)가 내 계정의 리소스에 접근하도록 허용할 수 있어요. 역할은 교차 계정 접근을 부여하는 주요 방법이에요. 그러나 일부 AWS 서비스에서는 대리자로 역할을 사용하는 대신 정책을 리소스에 직접 연결할 수 있어요. 교차 계정 접근을 위한 역할과 리소스 기반 정책의 차이를 배우려면 IAM 사용자 가이드의 "IAM 역할이 리소스 기반 정책과 어떻게 다른가" 문서를 참고하세요.
  • 교차 서비스 접근 – 일부 AWS 서비스는 다른 AWS 서비스의 기능을 사용해요. 예를 들어 어떤 서비스에서 호출할 때 그 서비스가 Amazon EC2에서 애플리케이션을 실행하거나 Amazon S3에 객체를 저장하는 것이 일반적이에요. 서비스는 호출 주체의 권한, 서비스 역할(service role) 또는 서비스 연결 역할(service-linked role)을 사용해 이 작업을 수행할 수 있어요.
  • 전방 접근 세션 (Forward access sessions) – 전방 접근 세션(FAS)은 AWS 서비스를 호출하는 주체의 권한과 요청하는 AWS 서비스를 결합해 다운스트림 서비스에 요청을 수행해요. FAS 요청 시 정책 세부 내용은 "전방 접근 세션(Forward access sessions)" 문서를 참고하세요.
  • 서비스 역할 (Service role) – 서비스 역할은 서비스가 사용자 대신 작업을 수행하기 위해 맡는 IAM 역할이에요. IAM 관리자는 IAM 내에서 서비스 역할을 생성, 수정, 삭제할 수 있어요. 자세한 내용은 IAM 사용자 가이드의 "AWS 서비스에 권한을 위임할 역할 생성" 문서를 참고하세요.
  • 서비스 연결 역할 (Service-linked role) – 서비스 연결 역할은 AWS 서비스에 연결된 서비스 역할의 한 유형이에요. 서비스가 사용자 대신 작업을 수행하기 위해 역할을 맡을 수 있어요. 서비스 연결 역할은 AWS 계정에 나타나며 서비스가 소유해요. IAM 관리자는 서비스 연결 역할의 권한을 볼 수 있지만 편집할 수는 없어요.
  • Amazon EC2에서 실행되는 애플리케이션 – IAM 역할을 사용해 EC2 인스턴스에서 실행되고 AWS CLI 또는 AWS API 요청을 수행하는 애플리케이션의 임시 자격 증명을 관리할 수 있어요. 이것은 EC2 인스턴스 내에 액세스 키를 저장하는 것보다 선호돼요. EC2 인스턴스에 AWS 역할을 할당하고 모든 애플리케이션에서 사용할 수 있게 하려면 인스턴스에 연결된 인스턴스 프로파일(instance profile)을 생성해요. 인스턴스 프로파일은 역할을 포함하며 EC2 인스턴스에서 실행되는 프로그램이 임시 자격 증명을 얻을 수 있게 해요. 자세한 내용은 IAM 사용자 가이드의 "IAM 역할을 사용해 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 권한 부여" 문서를 참고하세요.

IAM 역할을 사용할지 여부를 배우려면 IAM 사용자 가이드의 "IAM 역할(사용자 대신)을 생성할 때" 문서를 참고하세요.

정책을 사용한 접근 관리 (Managing access using policies)

정책을 만들고 IAM ID 또는 AWS 리소스에 연결해 AWS에서 접근을 제어해요. 정책은 ID나 리소스와 연결되면 해당 권한을 정의하는 AWS의 객체예요. AWS는 주체(루트 사용자, 사용자 또는 IAM 역할)가 요청할 때 이 정책들을 평가해요. 정책의 권한은 요청이 허용되는지 거부되는지 결정해요. 대부분의 정책은 JSON 문서로 AWS에 저장돼요. JSON 정책 문서의 구조와 내용에 대한 자세한 내용은 IAM 사용자 가이드의 "JSON 정책 개요" 문서를 참고하세요.

관리자는 정책을 사용해 누가 AWS 리소스에 접근할 수 있고 그 리소스에서 어떤 작업을 수행할 수 있는지 지정할 수 있어요. 모든 IAM 주체(권한 집합 또는 역할)는 권한이 없는 상태로 시작해요. 즉, 기본적으로 사용자는 아무것도 할 수 없고 자신의 암호도 변경할 수 없어요. 사용자에게 무언가를 할 권한을 주려면 관리자가 사용자에게 권한 정책을 연결해야 해요. 또는 관리자가 의도한 권한을 가진 그룹에 사용자를 추가할 수 있어요. 관리자가 그룹에 권한을 부여하면 해당 그룹의 모든 사용자가 그 권한을 부여받아요.

IAM 정책은 작업을 수행하는 데 사용하는 방법과 관계없이 작업에 대한 권한을 정의해요. 예를 들어 iam:GetRole 작업을 허용하는 정책이 있다고 가정해보세요. 해당 정책이 있는 사용자는 AWS Management Console, AWS CLI 또는 AWS API에서 역할 정보를 얻을 수 있어요.

ID 기반 정책 (Identity-based policies)

ID 기반 정책은 권한 집합 또는 역할 같은 ID에 연결할 수 있는 JSON 권한 정책 문서예요. 이 정책은 해당 ID가 어떤 리소스에서 어떤 작업을 어떤 조건에서 수행할 수 있는지 제어해요. ID 기반 정책을 만드는 방법은 IAM 사용자 가이드의 "IAM 정책 생성" 문서를 참고하세요.

ID 기반 정책은 인라인 정책(inline policies) 또는 관리형 정책(managed policies)으로 더 분류할 수 있어요. 인라인 정책은 단일 권한 집합 또는 역할에 직접 포함돼요. 관리형 정책은 AWS 계정의 여러 권한 집합과 역할에 연결할 수 있는 독립형 정책이에요. 관리형 정책에는 AWS 관리형 정책과 고객 관리형 정책이 포함돼요. 관리형 정책과 인라인 정책 중 선택하는 방법은 IAM 사용자 가이드의 "관리형 정책과 인라인 정책 중 선택" 문서를 참고하세요.

Amazon RDS 특정의 AWS 관리형 정책에 대한 정보는 "Amazon RDS의 AWS 관리형 정책" 문서를 참고하세요.

기타 정책 유형 (Other policy types)

AWS는 추가적이고 덜 일반적인 정책 유형을 지원해요. 이 정책 유형은 더 일반적인 정책 유형이 부여한 최대 권한을 설정할 수 있어요.

  • 권한 경계 (Permissions boundaries) – 권한 경계는 ID 기반 정책이 IAM 주체(권한 집합 또는 역할)에 부여할 수 있는 최대 권한을 설정하는 고급 기능이에요. 주체에 권한 경계를 설정할 수 있어요. 결과 권한은 주체의 ID 기반 정책과 권한 경계의 교집합이에요. Principal 필드에 권한 집합 또는 역할을 지정하는 리소스 기반 정책은 권한 경계의 제한을 받지 않아요. 이 정책 중 하나의 명시적 거부(deny)는 허용을 재정의해요. 권한 경계에 대한 자세한 내용은 IAM 사용자 가이드의 "IAM 엔터티에 대한 권한 경계" 문서를 참고하세요.
  • 서비스 제어 정책(SCP) – SCP는 AWS Organizations의 조직 또는 조직 단위(OU)에 대한 최대 권한을 지정하는 JSON 정책이에요. AWS Organizations는 기업이 소유한 여러 AWS 계정을 그룹화하고 중앙에서 관리하는 서비스예요. 조직에서 모든 기능을 활성화하면 계정의 일부 또는 전체에 서비스 제어 정책(SCP)을 적용할 수 있어요. SCP는 각 AWS 계정 루트 사용자를 포함해 멤버 계정의 주체에 대한 권한을 제한해요. Organizations와 SCP에 대한 자세한 내용은 AWS Organizations 사용자 가이드의 "SCP 작동 방식" 문서를 참고하세요.
  • 세션 정책 (Session policies) – 세션 정책은 역할 또는 페더레이션 사용자에 대한 임시 세션을 프로그래매틱하게 생성할 때 매개변수로 전달하는 고급 정책이에요. 결과 세션의 권한은 권한 집합 또는 역할의 ID 기반 정책과 세션 정책의 교집합이에요. 권한은 리소스 기반 정책에서도 올 수 있어요. 이 정책 중 하나의 명시적 거부는 허용을 재정의해요. 자세한 내용은 IAM 사용자 가이드의 "세션 정책(Session policies)" 문서를 참고하세요.

여러 정책 유형 (Multiple policy types)

요청에 여러 유형의 정책이 적용되면 결과 권한을 이해하기가 더 복잡해져요. 여러 정책 유형이 관련될 때 AWS가 요청을 허용할지 결정하는 방법을 배우려면 IAM 사용자 가이드의 "정책 평가 로직(Policy evaluation logic)" 문서를 참고하세요.

더 알아보기 (Learn more)