S3 Access Denied

Hermaeus Mora ·

S3 버킷 생성 시 퍼블릭 액세스를 허용해도 객체 조회 시 AccessDenied에러가 발생한다.

<Error>
<script/>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>P2CBD3TFQMZWF151</RequestId>
<HostId>3ZL618INPC+k8adHt/Ie+auJlxVbW80LCqOhiK85w94kL9S9LkLhaud2YxzdMWc18plxmrQmcXGUlG/dgh17Ew==</HostId>
</Error>

퍼블릭 액세스를 허용하기 위해선 추가적으로 버킷 정책을 추가해야 한다. 다음 정책은 foobucket에 대한 읽기 권한을 퍼블릭하게 열어버린다.

{
        \"Version\": \"2012-10-17\",
    \"Id\": \"FooPolicy\",
    \"Statement\": [
            {
                \"Sid\": \"PublicReadAccess\",
            \"Effect\": \"Allow\",
            \"Principal\": \"*\",
            \"Action\": \"s3:GetObject\",
            \"Resource\": \"arn:aws:s3:::foobucket/*\"
        }
    ]
}

하지만 S3 직접 접근 권한을 열기보다 권한을 CF에 부여하는 것을 권장한다.