2026년 9월 30일 · 6분 분량

Amazon S3 버킷을 공개하는 방법

새 S3 버킷은 모든 공개 액세스를 차단하고 ACL도 기본적으로 비활성화되어 있어, 객체마다 있던 예전의 ‘퍼블릭으로 설정’ 버튼은 더 이상 아무 효과가 없습니다. 이제 공개 읽기는 버킷 정책으로 설정합니다.

1단계: 공개 버킷 정책 허용하기

  1. S3 콘솔에서 버킷을 열고 Permissions 탭으로 이동합니다.
  2. Block public access (bucket settings)에서 Edit를 선택합니다.
  3. bucket and access point policies에 관한 두 설정을 해제합니다. 정책은 ACL을 쓰지 않으므로 ACL 관련 두 설정은 켜 둬도 됩니다.
  4. 저장하고 확인합니다.

계정 수준(S3 사이드바의 Block Public Access settings for this account)에서도 이 설정이 켜져 있으면 버킷 설정보다 우선하므로, 계정 수준에서도 정책을 허용해야 합니다.

2단계: 공개 읽기 버킷 정책 추가하기

계속 Permissions에서 Bucket policy를 편집하고, 버킷 이름을 바꿔 다음을 붙여 넣으세요.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicRead",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::your-bucket/*"
    }
  ]
}

이 정책은 객체 읽기만 허용하고 버킷 목록 보기는 허용하지 않습니다. 폴더 하나만 공개하려면 리소스를 arn:aws:s3:::your-bucket/public/*처럼 좁히세요.

AWS CLI로는 같은 두 단계를 다음과 같이 실행합니다.

aws s3api put-public-access-block --bucket your-bucket \
  --public-access-block-configuration \
  BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=false,RestrictPublicBuckets=false

aws s3api put-bucket-policy --bucket your-bucket --policy file://policy.json

3단계: 공개 URL 확인하기

이제 가상 호스팅 방식 URL에서 객체를 열 수 있습니다.

https://your-bucket.s3.eu-central-1.amazonaws.com/2026/09/report.pdf

버킷의 리전을 사용하세요. 이 주소가 AccessDenied를 반환하면 Block Public Access 설정이 아직 정책을 막고 있거나, 정책의 버킷 이름에 오타가 있는 것입니다.

더 안전한 대안: 비공개 버킷과 CloudFront

버킷 자체를 공개하고 싶지 않다면 Block Public Access를 켜 둔 채, 버킷을 오리진으로 하고 Origin access control (OAC)을 사용하는 CloudFront 배포를 만드세요. CloudFront가 배포만 객체를 읽을 수 있게 하는 버킷 정책을 보여 줍니다. 내 도메인에서 HTTPS와 캐싱을 쓰면서 버킷은 비공개로 유지할 수 있습니다. 버킷 링크용 사용자 지정 도메인을 참고하세요.

자주 묻는 질문

‘ACL을 사용하여 퍼블릭으로 설정’이 더 이상 작동하지 않는 이유는 무엇인가요?

2023년 4월부터 새 버킷은 객체 소유권이 Bucket owner enforced로 설정되어 ACL이 비활성화됩니다. 공개 액세스는 버킷 정책이나 CloudFront로 설정해야 합니다.

공개 버킷이면 다른 사람이 내 파일 목록을 볼 수 있나요?

위 정책으로는 볼 수 없습니다. 이 정책은 s3:GetObject만 허용합니다. 목록을 보려면 버킷 자체에 대한 s3:ListBucket이 필요한데, 이를 공개적으로 부여해서는 안 됩니다.

버킷을 공개하면 AWS 요금이 늘어나나요?

사람들이 파일을 다운로드하면 요청과 외부 데이터 전송 요금이 발생합니다. 많이 공유되는 파일이라면 CloudFront나 Cloudflare R2처럼 송신 요금이 없는 제공업체가 보통 더 저렴합니다.