권한, 정책, 역할
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)