- 버킷 정책
- CORS(Cross-origin 리소스 공유) 설정
- 마치며
Bucket Policy(버킷 정책)은 버킷을 사용할 권한을 가진 여러 명의 사용자 별로 각각의 행위에 대한 권한 범위를 설정할 수 있습니다.
누군가는 읽기만 가능하고 누군가는 읽기, 쓰기 모두 가능한 상태로도 설정할 수 있습니다.
Bucket에 대한 설정은 Bucket Policy를 통해 설정합니다. 버킷 정책 또한 퍼블릭 액세스 설정에 따라 퍼블릭에 대한 액세스 권한을 오픈하더라도 무시되기도 합니다.
Add Statement
를 클릭합니다.Select Type of Policy : S3 Bucket Policy (s3 버킷에 해당하는 것)
Effect : Allow (Allow 부여, deny 차단)
Principal :
*
(* 전체 부여 , 따로 입력하여 가능한 사람만 선택 가능, IAM에 있는 사용자)AWS Service : Amazon S3
Actions : GetObject (다중 선택 가능)
조회만 가능하도록 GetObject 권한만 체크합니다.Amazon Resource Name (ARN) : arn:aws:s3:::bucket-name/* (앞의 arn:aws:s3::: 고정 뒤에 버킷 이름만 바꾸면 됨)
Generate Policy
를 누른 후 나온 코드를 복사하여 버킷 정책 부분에 붙여 넣고 변경사항 저장하면 정책 수정이 완료됩니다.CORS(Cross-Origin Resource Sharing)
는 최신 웹 브라우저의 보안 기능입니다.
한 곳에서 다른 곳(도메인, 프로토콜, 포트)와 다를때 체크하여 접근을 막아주는 것이 CORS
입니다.
따로 사용하기 위해선 아래처럼 권한에 대해 설정을 해주어야 접근이 가능해집니다.
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"HEAD",
"GET",
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"https://www.example.org"
],
"ExposeHeaders": [
"ETag",
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"],
"MaxAgeSeconds" : 3000
}
]
AllowedHeaders : 요청에서 허용되는 헤더를 지정합니다.
AllowedMethods : 교차 도메인 요청을 허용하는 메소드 유형을 지정합니다.
AllowedOrigins : 교차 도메인을 허용하는 도메인을 지정합니다. (따로 입력할 수 있으며 *를 통해 전부 허용할 수도 있습니다.
ExposeHeaders : SDK가 Amazon S3 에서 반환된 응답 헤더를 읽도록 합니다.
MaxAgeSeconds : 브라우저가 리소스, HTTP 메서드, 오리진으로 식별되는 preflight 요청에 대한 응답을 캐시할 수 있는 시간(초)을 지정합니다.