AWS S3 - 버킷 권한 설정

doohyunlm·2021년 7월 5일
3

AWS-S3

목록 보기
4/4
post-thumbnail

버킷 권한 설정



목차

  1. 버킷 정책
  2. CORS(Cross-origin 리소스 공유) 설정
  3. 마치며

  • S3에 대한 버킷 정책 및 CORS 설정에 대해 알아보겠습니다.



  • 권한을 변경하고 싶은 버킷을 들어가 권한을 클릭합니다.



1. 버킷 정책


  • 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를 누른 후 나온 코드를 복사하여 버킷 정책 부분에 붙여 넣고 변경사항 저장하면 정책 수정이 완료됩니다.



2. CORS 설정


  • 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
    }
]

  • 위 json 코드를 복사하여 용도에 맞게 수정합니다.

AllowedHeaders : 요청에서 허용되는 헤더를 지정합니다.

AllowedMethods : 교차 도메인 요청을 허용하는 메소드 유형을 지정합니다.

AllowedOrigins : 교차 도메인을 허용하는 도메인을 지정합니다. (따로 입력할 수 있으며 *를 통해 전부 허용할 수도 있습니다.

ExposeHeaders : SDK가 Amazon S3 에서 반환된 응답 헤더를 읽도록 합니다.

MaxAgeSeconds : 브라우저가 리소스, HTTP 메서드, 오리진으로 식별되는 preflight 요청에 대한 응답을 캐시할 수 있는 시간(초)을 지정합니다.



  • 수정하여 변경 사항 저장하면 설정이 완료됩니다.



3. 마치며


  • 틀린 부분이 있으면 말씀해주시면 감사하겠습니다.
profile
백엔드 개발자

0개의 댓글