반응형
AWS에서 IAM 정책을 작성하거나 Lambda, S3, SNS 등 리소스를 참조할 때,
항상 등장하는 ARN — 도대체 이건 뭘까요?
✅ ARN이란 무엇인가요?
ARN (Amazon Resource Name)은
AWS 리소스를 유일하게 식별할 수 있는 표준 이름 체계입니다.
쉽게 말하면,
"AWS에서 무언가를 정확하게 가리키는 주소"라고 생각하시면 됩니다.
🧩 ARN 구조 (형식)
ARN은 다음과 같은 구조로 되어 있어요:
arn:partition:service:region:account-id:resource
예시:
arn:aws:s3:::my-bucket
arn:aws:iam::123456789012:user/john
arn:aws:lambda:us-east-1:123456789012:function:MyFunction
구성 요소설명
arn | 항상 arn 으로 시작 |
partition | aws, aws-cn, aws-us-gov 등 |
service | s3, ec2, lambda, iam 등 AWS 서비스 이름 |
region | us-east-1, ap-northeast-2 등 리전 (리전이 없는 서비스도 있음) |
account-id | AWS 계정 ID (12자리 숫자) |
resource | 서비스별 리소스 이름 또는 경로 |
📦 서비스별 ARN 예시 모음
서비스ARN 예시
S3 버킷 | arn:aws:s3:::my-bucket |
S3 객체 | arn:aws:s3:::my-bucket/my-file.txt |
Lambda 함수 | arn:aws:lambda:us-west-2:123456789012:function:MyFunc |
IAM 사용자 | arn:aws:iam::123456789012:user/john |
DynamoDB 테이블 | arn:aws:dynamodb:us-west-2:123456789012:table/MyTable |
SNS 토픽 | arn:aws:sns:us-east-1:123456789012:MyTopic |
🔐 왜 ARN이 중요할까요?
- IAM 정책에서 리소스를 지정할 때 사용
- { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::my-bucket/*" }
- Lambda 함수 호출, EventBridge 대상 설정 등에서도 필수
- AWS 리소스 간 접근 권한을 설정할 때 꼭 필요
🧠 ARN 팁 & 주의사항
- 리전이 없는 서비스도 있음 (예: IAM은 region이 비어 있음)
- S3 객체 접근 정책에서는 /*로 경로를 포함해야 전체 파일 지정 가능
- 일부 서비스는 리소스에 슬래시(/) 대신 콜론(:)을 사용함
✅ 마무리 요약
항목설명
이름 | ARN (Amazon Resource Name) |
기능 | AWS 리소스를 유일하게 식별 |
사용처 | IAM 정책, Lambda, S3, SNS 등 거의 모든 서비스 |
형식 | arn:partition:service:region:account-id:resource |
반응형