Cloud (AWS, GCP)
OAI(Origin Access Identity) vs. OAC(Origin Access Control) 차이점과 개념 정리
duhwan98
2025. 2. 11. 16:49
AWS CloudFront에서 S3 버킷의 콘텐츠를 안전하게 제공할 때,
OAI(Origin Access Identity)와 OAC(Origin Access Control) 두 가지 방법이 있습니다.
둘 다 S3 버킷을 퍼블릭으로 열지 않고도 CloudFront를 통해 안전하게 파일을 제공하는 역할을 합니다.
🔹 1. OAI(Origin Access Identity)
📌 개념:
- CloudFront에서 S3 버킷에 직접 접근할 수 있도록 IAM 역할을 부여하는 방식
- CloudFront 전용 IAM 사용자를 생성하여 S3 접근 권한을 부여함
- S3 버킷의 Bucket Policy에서 CloudFront OAI만 허용하여 보안 강화
✅ OAI 방식 예제 (S3 버킷 정책)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "CloudFront의 Origin Access Identity (OAI) ARN"
},
"Action": "s3:GetObject",
"Resource": "사용할 버킷의 arn"
}
]
}
✔ CloudFront OAI만 접근 가능
✔ S3를 퍼블릭으로 열지 않아도 됨
🚀 OAI의 단점:
❌ IAM 역할만 사용할 수 있음 (AWS 정책 관리가 필요함)
❌ CloudFront 외에 다른 서비스에서 접근 관리하기 어려움
🔹 2. OAC(Origin Access Control) - 새로운 방식
📌 개념:
- OAI의 개선된 버전으로, 보다 유연한 권한 제어를 지원
- IAM 역할뿐만 아니라, CloudFront의 AWS Signature Version 4 인증을 사용하여 더 안전한 S3 접근이 가능
- OAC를 사용하면 S3 버킷 정책 대신 IAM 정책을 통해 권한을 관리할 수 있음
✅ OAC 방식 예제 (IAM 정책 적용)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "사용할 버킷의 arn 적는란",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "클라우드 프론트 arn 적는란"
}
}
}
]
}
✔ CloudFront OAC만 접근 가능
✔ 버킷 정책 없이 IAM 역할로 관리 가능
✔ CloudFront 외 다른 AWS 서비스와 통합이 쉬움
🚀 OAC의 장점:
✅ IAM 역할을 활용하여 더 세부적인 권한 설정 가능
✅ CloudFront 외의 다른 AWS 서비스와의 연동이 쉬움
✅ S3 버킷 정책을 간결하게 유지 가능
🎯 🚀 OAI vs. OAC 비교 정리(요약)
✨구분OAI (Origin Access Identity)OAC (Origin Access Control)
방식 | CloudFront에 IAM 사용자 부여 | CloudFront에 IAM 역할 부여 |
권한 관리 | S3 버킷 정책 사용 | IAM 정책으로 관리 |
보안 | 제한적 | 더 강력한 AWS 인증 사용 |
추천 사용 | 기존 CloudFront 설정을 유지할 경우 | 새로운 프로젝트 및 보안 강화 시 |