AWS HTTP 프로토콜과 연동되는 스토리지 S3

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

S3 버킷 권한 관리하기

이제 버킷에 권한을 설정해보겠습니다. 버킷에 권한을 설정하면 버킷 안에 든 모든 객체에 적용됩니다. 예제로 버킷의 내용 전체를 인터넷에 공개하는 방법을 알아보겠습니다.

‘11.2 S3 버킷에 파일 올리기/받기’를 참조하여 버킷에 그림 파일을 하나 더 올립니다. 저는 Jellyfish.jpg라는 그림 파일을 새로 올렸습니다. 새로 올린 파일을 선택하고 위쪽의 Properties 버튼을 클릭합니다. Link 부분을 보면 URL의 아이콘이 노란색 자물쇠 모양인 것을 확인할 수 있습니다. 이 링크를 클릭합니다.


그림 11-25 S3에 새 파일을 올림

이 URL은 웹 브라우저로 접속해도 그림 파일이 열리지 않는 상태입니다.


그림 11-26 S3 객체 링크 열기

위쪽의 All Bucket을 클릭하면 모든 버킷의 목록이 표시됩니다. 버킷을 선택하고 위쪽의 Properties 버튼클 클릭한 뒤 Permissions 탭을 클릭합니다. 그리고 Add bucket policy 버튼을 클릭합니다(버킷을 선택하고 마우스 오른쪽 버튼을 클릭하면 나오는 팝업 메뉴에도 Properties가 있습니다).


그림 11-27 S3 버킷 권한 설정

Add more permissions를 클릭했을 때 나오는 내용은 ‘11.3.1 S3 객체 권한 관리하기’와 동일합니다. 단 여기서는 버킷 전체에 대해 설정하는 것이므로 버킷 안에 들어있는 모든 객체에 적용됩니다.

버킷 정책 편집기Bucket Policy Editor가 표시됩니다. 이곳에 JSONJavaScript Object Notation 형태의 정책을 입력하면 됩니다. 이 정책은 다소 복잡하기 때문에 AWS에서는 이 정책을 생성해주는 페이지를 제공하고 있습니다. 아래쪽 AWS Policy Generator 링크를 클릭합니다.


그림 11-28 Bucket Policy Editor

그림 11-19처럼 웹 브라우저의 새 창에서 AWS Policy Generator 페이지가 열렸습니다.

  • Select Type of Policy: SNS Topic Policy, IAM Policy, SQS Queue Policy, S3 Bucket Policy를 선택할 수 있습니다. 여기서는 S3 Bucket Policy를 선택합니다.
  • Effect: 허용(Allow), 거부(Deny)를 선택할 수 있습니다. 기본값 그대로 Allow를 선택합니다.
  • Principal: 권한을 적용할 사용자입니다. IAM 계정을 사용할 수 있습니다. 여기서는 인터넷에 전체 공개할 것이므로 *을 입력합니다.
  • AWS Service: 처음 Select Type of Policy를 선택하면 그에 맞는 서비스가 자동으로 선택됩니다. 기본값 그대로 사용합니다.
  • Actions: S3의 모든 액션이 표시됩니다. 우리는 파일을 받는 액션만 사용할 것이므로 GetObject를 선택합니다.
  • Amazon Resource Name(ARN): 아마존의 리소스를 고유하게 표현하는 방식입니다. arn:aws:s3:::examplebucket10/*을 입력합니다. 이것은 AWS의 S3에서 examplebucket10 아래 모든 파일을 뜻합니다. /* 대신 /Jellyfish.jpg 등으로 특정 파일을 지정해 줄 수도 있습니다.


그림 11-29 AWS Policy Generator로 정책 생성

Add Conditions에서 UserAgent, SourceIP 등 다양한 조건을 사용할 수 있습니다. 여러분들이 필요할 때 하나하나 사용해보기 바랍니다. 설정이 완료되었으면 Add Statement 버튼을 클릭합니다.


그림 11- AWS Policy Generator로 정책 생성

설정한 내용이 Statements 목록에 추가되었습니다. 아래쪽 Generate Policy 버튼을 클릭합니다.


그림 11-31 AWS Policy Generator Statement 목록

AWS 정책이 생성되었습니다. 이 JSON 텍스트를 전체 선택 한 뒤 복사합니다.


그림 11-32 JSON 형태의 AWS Policy

이제 다시 버킷 정책 편집기Bucket Policy Editor에 방금 AWS Policy Generator에서 복사한 JSON 텍스트를 붙여넣습니다. 붙여넣기가 완료되었다면 아래쪽 Save 버튼을 클릭합니다.


그림 11-33 버킷 정책 편집기

S3 버킷(examplebucket10)을 클릭하여 객체 목록으로 들어옵니다. 방금 올린 파일을 선택하고 위쪽 Properties 버튼을 클릭합니다. Link 부분을 보면 URL의 노란색 자물쇠 모양 아이콘이 사라졌습니다. 이제 이 링크를 클릭합니다.


그림 11-34 S3 객체의 링크

그림 11-35처럼 웹 브라우저에서 그림 파일이 잘 표시됩니다. 버킷 전체를 공개하도록 권한 설정을 했으므로 이제부터 이 버킷에 올리는 모든 파일은 인터넷에 자동으로 공개됩니다.


그림 11-35 S3 객체 링크 열기


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.