- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
AWS HTTP 프로토콜과 연동되는 스토리지 S3
이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30
S3 세부 설정하기
이제 S3의 다양한 기능을 활용해보겠습니다. S3는 버킷과 객체를 어떻게 설정하느냐에 따라 기능이 달라집니다. 권한 설정은 파일을 전체 공개하거나 특정 사용자에게만 공개하고 싶을 때 사용합니다. 그리고 버킷 정책을 설정하는 것에 따라 다양한 접근 제어가 가능합니다. 따라서 특정 도메인에서만 S3 객체를 링크할 수 있도록 허용하고 싶을 때, HTTP Referer(Referrer) 접근 제어 설정을 활용할 수 있습니다.
버킷을 정적 웹 서버(정적 웹 호스팅)로 사용하도록 설정하면 버킷 자체로 간단한 웹사이트 운영이 가능합니다. 또한, 버킷 로그 기록 그리고 객체의 스토리지 옵션, 버저닝, 수명 주기Lifecycle 관리도 할 수 있습니다.
S3 객체 권한 관리하기
S3에 올라간 파일을 객체라고 표현합니다. S3에서는 이 객체마다 각각의 접근 권한을 설정할 수 있습니다. 가장 간단한 예제로 S3에 올린 파일을 인터넷에 공개해보겠습니다. S3 버킷의 객체 목록에서 파일을 선택하고 위쪽의 Properties 버튼을 클릭하면 그림 11-17과 같이 객체의 세부 내용이 표시됩니다(파일을 선택하고 마우스 오른쪽 버튼을 클릭해서 나오는 팝업 메뉴에도 Properties가 있습니다). 여기서 Link 부분을 보면 그림 파일의 URL이 표시됩니다. 이 링크를 클릭합니다.
웹 브라우저의 새 창이 열리고 링크의 내용이 표시됩니다. 하지만 AccessDenied라는 에러가 표시되고 그림 파일은 열리지 않습니다.
S3 객체 목록에서 파일을 선택하고 마우스 오른쪽 버튼을 클릭하면 팝업 메뉴가 나옵니다(위쪽 Actions 버튼을 클릭해도 같은 메뉴가 나옵니다). Make Public를 클릭합니다. Make Public은 객체를 인터넷에 공개(Public)하겠다는 것입니다.
파일을 공개하겠냐는 경고 창이 표시되면 확인 버튼을 클릭합니다.
Make Public이 완료되었다는 것이 오른쪽에 표시됩니다. 위의 Properties 버튼을 클릭합니다.
Link 부분을 보면 노란색 자물쇠 아이콘에서 파란색 전파 아이콘으로 바뀐 것을 확인할 수 있습니다. 이제 이 링크를 클릭합니다.
웹 브라우저에 S3 객체의 링크 내용이 잘 표시됩니다. 이제 이 그림 파일은 인터넷에 공개된 상태이기 때문에 다른 곳에 링크를 가져가서 이 그림 파일을 보여줄 수 있습니다.
많은 파일을 하나하나 Make Public으로 설정하기에는 귀찮은 면이 있습니다. 이럴 때에는 처음에 파일을 올릴 때 S3 버킷에 파일 올리기 부분에서 Set Permissions 화면의 Make everything public에 체크하면 됩니다.
이미 파일을 올렸다면 S3 객체 목록은 파일을 여러 개 선택할 수 있으므로 공개하고자 하는 파일을 모두 선택한 뒤 Make Public으로 설정해주면 됩니다. 방금 공개한 그림 파일을 선택하고 Properties 버튼을 클릭한 뒤 Permissions 탭을 클릭합니다. Grantee에 Everyone이 설정되어 있고 Open/Download가 체크되어 있는 것을 볼 수 있습니다. 이것은 Make Public을 실행하면 자동으로 설정됩니다.
Permissions 탭에서 수동으로 Grantee에 Everyone을 설정하고 Open/Download에 체크한 후 Save 버튼을 클릭하면 Make Public을 실행한 것과 똑같은 효과를 가집니다.
Permissions 탭에서 Add more permission를 클릭했을 때 다음 항목을 볼 수 있습니다.
- Grantee: 권한을 부여할 대상입니다. 보통 여기서는 Everyone과 자기 자신의 ID(Me도 자기자신의 ID를 뜻합니다.)을 선택합니다.
- 추가적으로 계정을 발급하여 계정 별로 권한을 부여하고 싶을 때가 있습니다. '16장 사용자와 그룹을 생성하여 접근제어 및 권한관리를 제공하는 IAM' 부분을 참조하여 계정을 생성하면 이곳에서 선택할 수 있게 됩니다. IAM 계정은 Access Key와 Secret Key를 이용하여 API로 접근 할 때 사용하게 됩니다.
- Open/Download: 파일을 열고 다운로드할 수 있는 권한입니다.
- View Permissions: 권한 내역을 볼 수 있는 권한입니다.
- Edit Permissions: 권한을 수정할 수 있는 권한입니다. 보통 이런 경우 S3 객체 목록을 이용하지 않고 IAM 계정을 통해 API로 접근하게 됩니다.
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.