Amazon S3용 ID 및 액세스 관리

Amazon S3용 ID 및 액세스 관리 (Identity and Access Management for Amazon S3)

AWS Identity and Access Management(IAM)은 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있도록 도와주는 AWS 서비스예요. IAM 관리자는 누가 Amazon S3 리소스를 사용하도록 인증(로그인)되고 권한 부여(권한 보유)될 수 있는지 제어해요. IAM은 추가 비용 없이 사용할 수 있는 AWS 서비스예요.

S3 리소스 유형별 S3 API 작업 권한에 대한 자세한 내용은 Amazon S3 API 작업에 필요한 권한을 참고하세요.

참고 디렉터리 버킷과 함께 Amazon S3 Express One Zone 스토리지 클래스를 사용하는 방법에 대한 자세한 내용은 S3 Express One Zone과 디렉터리 버킷 작업을 참고하세요.

출처: 문서

본문

대상 (Audience)

AWS Identity and Access Management(IAM) 사용 방법은 역할에 따라 달라져요.

  • 서비스 사용자 – 기능에 액세스할 수 없으면 관리자에게 권한을 요청하세요(Amazon S3 ID 및 액세스 문제 해결 참고).
  • 서비스 관리자 – 사용자 액세스를 결정하고 권한 요청을 제출하세요(Amazon S3가 IAM과 함께 작동하는 방식 참고).
  • IAM 관리자 – 액세스를 관리하는 정책을 작성하세요(Amazon S3용 ID 기반 정책 참고).

ID로 인증 (Authenticating with identities)

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

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

프로그래밍 방식 액세스를 위해 AWS는 요청을 암호화적으로 서명하는 SDK와 CLI를 제공해요. 자세한 내용은 IAM 사용자 가이드의 API 요청용 AWS 서명 버전 4를 참고하세요.

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

페더레이션 ID. 모범 사례로, 사람이 사용자인 경우 임시 자격 증명을 사용해 AWS 서비스에 액세스하기 위해 ID 공급자와의 페더레이션을 사용하도록 요구하세요. 페더레이션 ID는 ID 소스의 자격 증명을 사용해 AWS 서비스를 액세스하는 엔터프라이즈 디렉터리, 웹 ID 공급자 또는 Directory Service의 사용자예요. 페더레이션 ID는 임시 자격 증명을 제공하는 역할을 가정해요.

중앙 집중식 액세스 관리를 위해 AWS IAM Identity Center를 권장해요. 자세한 내용은 AWS IAM Identity Center 사용자 가이드의 IAM Identity Center란 무엇인가요?를 참고하세요.

IAM 사용자 및 그룹. IAM 사용자는 단일 개인 또는 애플리케이션을 위한 특정 권한을 가진 ID예요. 장기 자격 증명을 가진 IAM 사용자 대신 임시 자격 증명을 사용할 것을 권장해요. 자세한 내용은 IAM 사용자 가이드의 사람 사용자가 임시 자격 증명으로 AWS에 액세스하려면 ID 공급자와의 페더레이션을 사용하도록 요구를 참고하세요.

IAM 그룹은 IAM 사용자 컬렉션을 지정하고 많은 사용자 집합에 대한 권한 관리를 더 쉽게 만들어요. 자세한 내용은 IAM 사용자 가이드의 IAM 사용자 사용 사례를 참고하세요.

IAM 역할. IAM 역할은 임시 자격 증명을 제공하는 특정 권한을 가진 ID예요. 사용자에서 IAM 역할로 전환(콘솔)하거나 AWS CLI 또는 AWS API 작업을 호출해 역할을 가정할 수 있어요. 자세한 내용은 IAM 사용자 가이드의 역할을 가정하는 방법을 참고하세요.

IAM 역할은 페더레이션 사용자 액세스, 임시 IAM 사용자 권한, 교차 계정 액세스, 교차 서비스 액세스, Amazon EC2에서 실행되는 애플리케이션에 유용해요. 자세한 내용은 IAM 사용자 가이드의 IAM의 교차 계정 리소스 액세스를 참고하세요.

정책으로 액세스 관리 (Managing access using policies)

AWS에서 권한을 관리하려면 정책을 만들고 AWS 자격 또는 리소스에 연결해요. 정책은 자격 또는 리소스와 연결될 때 권한을 정의해요. AWS는 보안 주체가 요청할 때 이러한 정책을 평가해요. 대부분의 정책은 AWS에 JSON 문서로 저장돼요. JSON 정책 문서에 대한 자세한 내용은 IAM 사용자 가이드의 JSON 정책 개요를 참고하세요.

정책을 사용해 관리자는 어떤 보안 주체(principal) 가 어떤 리소스(resources) 에서 어떤 작업(actions) 을 수행할 수 있고 어떤 조건(conditions) 아래에서 가능한지 정의하여 누가 무엇에 액세스할 수 있는지 지정해요.

기본적으로 사용자와 역할은 권한이 없어요. IAM 관리자는 IAM 정책을 만들고 역할에 추가하며, 사용자는 그 역할을 가정할 수 있어요. IAM 정책은 작업 수행에 사용되는 방법과 관계없이 권한을 정의해요.

ID 기반 정책. ID 기반 정책은 자격(사용자, 그룹 또는 역할)에 연결하는 JSON 권한 정책 문서예요. 이러한 정책은 자격이 어떤 리소스에서 어떤 조건으로 어떤 작업을 수행할 수 있는지 제어해요. ID 기반 정책을 만드는 방법을 알아보려면 IAM 사용자 가이드의 고객 관리형 정책으로 사용자 지정 IAM 권한 정의를 참고하세요.

ID 기반 정책은 인라인 정책(단일 자격에 직접 포함) 또는 관리형 정책(여러 자격에 연결된 독립형 정책)일 수 있어요. 관리형 정책과 인라인 정책 중 선택하는 방법을 알아보려면 IAM 사용자 가이드의 관리형 정책과 인라인 정책 중 선택을 참고하세요.

리소스 기반 정책. 리소스 기반 정책은 리소스에 연결하는 JSON 정책 문서예요. 예로는 IAM 역할 신뢰 정책과 Amazon S3 버킷 정책이 있어요. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이를 사용해 특정 리소스에 대한 액세스를 제어할 수 있어요. 리소스 기반 정책에서 보안 주체를 지정해야 해요.

리소스 기반 정책은 해당 서비스에 있는 인라인 정책이에요. 리소스 기반 정책에서 IAM의 AWS 관리형 정책을 사용할 수 없어요.

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

  • 권한 경계(Permissions boundaries) – ID 기반 정책이 IAM 엔터티에 부여할 수 있는 최대 권한을 설정해요. 자세한 내용은 IAM 사용자 가이드의 IAM 엔터티에 대한 권한 경계를 참고하세요.
  • 서비스 제어 정책(SCP) – AWS Organizations의 조직 또는 조직 단위에 대한 최대 권한을 지정해요. 자세한 내용은 AWS Organizations 사용자 가이드의 서비스 제어 정책을 참고하세요.
  • 리소스 제어 정책(RCP) – 계정의 리소스에 사용 가능한 최대 권한을 설정해요. 자세한 내용은 AWS Organizations 사용자 가이드의 리소스 제어 정책(RCP)을 참고하세요.
  • 세션 정책(Session policies) – 역할 또는 페더레이션 사용자를 위한 임시 세션을 만들 때 파라미터로 전달되는 고급 정책이에요. 자세한 내용은 IAM 사용자 가이드의 세션 정책을 참고하세요.

여러 정책 유형. 여러 유형의 정책이 요청에 적용되면 결과적인 권한은 이해하기 더 복잡해요. 여러 정책 유형이 관련될 때 AWS가 요청을 허용할지 결정하는 방법을 알아보려면 IAM 사용자 가이드의 정책 평가 논리를 참고하세요.