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 설정을 유지할 경우 새로운 프로젝트 및 보안 강화 시