Amazon Elastic Container Service를 위한 Identity and Access Management

Amazon Elastic Container Service를 위한 Identity and Access Management

AWS Identity and Access Management(IAM)는 관리자가 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있게 돕는 AWS 서비스예요. IAM 관리자는 누가 Amazon ECS 리소스를 사용하도록 인증(로그인)되고 권한 부여(권한을 가짐)될 수 있는지 제어합니다. IAM은 추가 요금 없이 사용할 수 있는 AWS 서비스입니다.

출처: 문서

본문

주제:

  • 대상(Audience)
  • ID로 인증(Authenticating with identities)
  • 정책을 사용한 액세스 관리(Managing access using policies)
  • Amazon Elastic Container Service가 IAM과 함께 작동하는 방식(How Amazon Elastic Container Service works with IAM)
  • Amazon Elastic Container Service용 ID 기반 정책 예시(Identity-based policy examples for Amazon Elastic Container Service)
  • Amazon Elastic Container Service용 AWS 관리형 정책(AWS managed policies for Amazon Elastic Container Service)
  • Amazon ECS용 서비스 연결 역할 사용(Using service-linked roles for Amazon ECS)
  • Amazon ECS용 IAM 역할(IAM roles for Amazon ECS)
  • Amazon ECS 콘솔에 필요한 권한(Permissions required for the Amazon ECS console)
  • Amazon ECS blue/green 배포의 Lambda 함수에 필요한 권한(Permissions required for Lambda functions in Amazon ECS blue/green deployments)
  • Amazon ECS 서비스 자동 확장에 필요한 IAM 권한(IAM permissions required for Amazon ECS service auto scaling)
  • 리소스 생성 시 태그 지정 권한 부여(Grant permission to tag resources on creation)
  • Amazon Elastic Container Service ID 및 액세스 트러블슈팅(Troubleshooting Amazon Elastic Container Service identity and access)
  • Amazon ECS용 IAM 모범 사례(IAM best practices for Amazon ECS)

대상(Audience)

AWS Identity and Access Management(IAM)를 사용하는 방법은 역할에 따라 다릅니다:

  • 서비스 사용자(Service user) – 기능에 액세스할 수 없다면 관리자에게 권한을 요청합니다(Amazon Elastic Container Service ID 및 액세스 트러블슈팅 참고).
  • 서비스 관리자(Service administrator) – 사용자 액세스를 결정하고 권한 요청을 제출합니다(Amazon Elastic Container Service가 IAM과 함께 작동하는 방식 참고).
  • IAM 관리자(IAM administrator) – 액세스를 관리하는 정책을 작성합니다(Amazon Elastic Container Service용 ID 기반 정책 예시 참고).

ID로 인증(Authenticating with identities)

인증은 ID 자격 증명을 사용해 AWS에 로그인하는 방법이에요. AWS 계정 루트 사용자, IAM 사용자 또는 IAM 역할을 가정(assume)하여 인증을 받아야 합니다.

  • AWS IAM Identity Center(IAM Identity Center), 단일 로그온 인증, Google/Facebook 자격 증명 같은 ID 소스의 자격 증명을 사용해 연합 ID(federated identity)로 로그인할 수 있어요. 로그인에 대한 자세한 내용은 AWS Sign-In 사용자 가이드의 AWS 계정에 로그인하는 방법(How to sign in to your AWS account)을 참고하세요.
  • 프로그래매틱 액세스의 경우 AWS는 요청을 암호화 서명하는 SDK와 CLI를 제공해요. 자세한 내용은 IAM 사용자 가이드의 API 요청에 대한 AWS Signature Version 4(AWS Signature Version 4 for API requests)를 참고하세요.

AWS 계정 루트 사용자 — AWS 계정을 만들면 모든 AWS 서비스와 리소스에 완전한 액세스 권한을 가진 AWS 계정 루트 사용자라는 로그인 ID 하나로 시작해요. 일상적인 작업에 루트 사용자를 사용하지 않을 것을 강력히 권장합니다. 루트 사용자 자격 증명이 필요한 작업은 IAM 사용자 가이드의 루트 사용자 자격 증명이 필요한 작업(Tasks that require root user credentials)을 참고하세요.

연합 ID(Federated identity) — 모범 사례로, 인간 사용자가 ID 공급자와의 페더레이션을 사용해 임시 자격 증명으로 AWS 서비스에 액세스하도록 요구하세요. 연합 ID는 기업 디렉터리, 웹 ID 공급자 또는 Directory Service의 사용자로, ID 소스의 자격 증명을 사용해 AWS 서비스에 액세스합니다. 연합 ID는 임시 자격 증명을 제공하는 역할을 가정합니다. 중앙 집중식 액세스 관리에는 AWS IAM Identity Center를 권장합니다. 자세한 내용은 AWS IAM Identity Center 사용자 가이드의 IAM Identity Center란 무엇인가요?(What is IAM Identity Center?)를 참고하세요.

IAM 사용자와 그룹 — IAM 사용자는 단일 사용자나 애플리케이션에 대한 특정 권한을 가진 ID예요. 장기 자격 증명이 있는 IAM 사용자보다 임시 자격 증명을 사용할 것을 권장합니다. IAM 그룹은 IAM 사용자 컬렉션을 지정하고 많은 사용자 집합에 대한 권한 관리를 더 쉽게 만듭니다.

IAM 역할 — IAM 역할은 임시 자격 증명을 제공하는 특정 권한을 가진 ID입니다. 사용자에서 IAM 역할로 전환(콘솔)하거나 AWS CLI 또는 AWS API 작업을 호출해 역할을 가정할 수 있어요. IAM 역할은 연합 사용자 액세스, 임시 IAM 사용자 권한, 크로스 계정 액세스, 크로스 서비스 액세스, Amazon EC2에서 실행되는 애플리케이션에 유용합니다.

정책을 사용한 액세스 관리(Managing access using policies)

정책을 만들고 AWS ID 또는 리소스에 연결해 AWS에서 액세스를 제어합니다. 정책은 ID 또는 리소스와 연결될 때 권한을 정의해요. AWS는 주체(principal)가 요청할 때 이러한 정책을 평가합니다. 대부분의 정책은 JSON 문서로 AWS에 저장됩니다.

정책을 사용해 관리자는 어떤 주체가 어떤 리소스에 어떤 조건에서 작업을 수행할 수 있는지 정의함으로써 누가 무엇에 액세스하는지 지정합니다. 기본적으로 사용자와 역할은 권한이 없습니다. IAM 관리자는 IAM 정책을 만들고 역할에 추가해 사용자가 가정할 수 있게 합니다.

ID 기반 정책 — ID(사용자, 그룹 또는 역할)에 연결하는 JSON 권한 정책 문서예요. 이러한 정책은 ID가 어떤 리소스에서 어떤 조건에서 어떤 작업을 수행할 수 있는지 제어합니다. ID 기반 정책은 인라인 정책(단일 ID에 직접 포함)이거나 관리형 정책(여러 ID에 연결되는 독립형 정책)일 수 있어요.

리소스 기반 정책 — 리소스에 연결하는 JSON 정책 문서입니다. 예로는 IAM 역할 신뢰 정책과 Amazon S3 버킷 정책이 있어요. 리소스 기반 정책을 지원하는 서비스에서 서비스 관리자는 이를 사용해 특정 리소스에 대한 액세스를 제어할 수 있습니다. 리소스 기반 정책에서는 주체를 지정해야 해요. 리소스 기반 정책은 그 서비스에 있는 인라인 정책이며, 리소스 기반 정책에서 IAM의 AWS 관리형 정책을 사용할 수 없습니다.

기타 정책 유형 — AWS는 더 일반적인 정책 유형이 부여하는 최대 권한을 설정할 수 있는 추가 정책 유형을 지원합니다:

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

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