Stack/AWS

권한(Permission), 정책(Policy), 역할(Role)

annovation 2025. 4. 8. 08:47

권한, 정책, 역할

AWS에서 IAM(Identity and Access Management)을 다룰 때, 권한(Permission), 정책(Policy), 역할(Role)을 이해하는 것이 중요하다. 이 개념들은 AWS 리소스에 대한 접근을 제어하는 데 사용된다.

💡 AWS 리소스란?
AWS에서 생성할 수 있는 모든 서비스의 개별 객체(Object)를 리소스라고 부름
예를 들어, 우리가 AWS에서 EC2(가상 서버)를 만들면 그 EC2 인스턴스가 하나의 AWS 리소스가 됨
마찬가지로 S3 버킷, RDS 데이터베이스, VPC 네트워크 등도 각각 하나의 리소스

권한(Permission)

  • 권한(Permission)은 "무엇을 할 수 있는지"를 정의
  • AWS 리소스에서 수행할 수 있는 동작을 의미

🔎 예시

예를 들어, S3 버킷에서 파일을 읽을 수 있는 권한을 주려면, 아래처럼 정의함

{
  "Effect": "Allow",
  "Action": "s3:GetObject",
  "Resource": "arn:aws:s3:::my-bucket/*"
}
  • 이 권한은 IAM 사용자, 그룹, 역할(Role)에 적용 가능

정책(Policy)

  • AWS 리소스에 대한 권한을 정의하는 JSON 형식의 문서 (권한들의 집합)
  • AWS 리소스에 대한 허용(Allow) 또는 거부(Deny) 규칙을 지정
  • 정책은 IAM 사용자(User), 그룹(Group), 역할(Role)에 적용 가능

🔎 예시

IAM 정책 예제 (EC2가 S3에서 파일 읽기 가능)

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::my-bucket/*"
    }
  ]
}
  • 이 정책을 EC2에 적용하면, EC2가 S3에서 파일을 읽을 수 있음

역할(Role)

  • 역할(Role)은 "누가 권한을 사용할 수 있는지"를 정의
  • IAM 역할(Role)은 특정 AWS 서비스(EC2, Lambda 등)나 외부 사용자가 특정 권한을 가지도록 허용하는 것
  • 즉, "권한"이 AWS 리소스에서 수행할 수 있는 동작이라면, "역할"은 AWS 서비스가 해당 권한을 사용할 수 있도록 허용하는 것

요약

개념 설명 예제
권한(Permission) 사용자가 AWS 리소스에서 수행할 수 있는 동작 "EC2가 S3에서 파일 읽기 가능"
정책(Policy) AWS 리소스에 대한 권한을 정의하는 JSON 문서 { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::my-bucket/*" }
역할(Role) 특정 AWS 서비스(EC2, Lambda 등)나 외부 사용자에게 권한을 부여하는 것 "EC2가 IAM 역할을 사용해 S3에 접근할 수 있도록 허용"

권한은 AWS 리소스에서 허용된 동작을 의미
정책은 여러 개의 권한을 JSON 문서로 정의한 것
역할은 특정 AWS 서비스(EC2, Lambda 등)나 외부 사용자가 특정 권한을 가지도록 허용하는 것
✅ IAM 역할을 사용하면 Access Key 없이 안전하게 AWS 리소스에 접근 가능


출처

OpenAI ChatGPT (https://openai.com)

'Stack > AWS' 카테고리의 다른 글

ECR, ECS  (0) 2025.04.18