반응형

0. 들어가기

-. S3 버킷을 이용한 이미지 호스팅을 할 때 권한설정을 해보자...

-. 1차 목표는 특정 도메인/ip에서만 접근이 가능한 이미지 호스팅을 해보는 것... 을 위한 삽질기

1. S3 이미지 호스팅 (퍼블릭)

-. 현재는 조금 무식하게, 완전 퍼블릭을 다 열어놨다. 첨에 이미지를 올릴 땐 이런저런 것 생각을 하기가 귀찮아서 (...) 그냥 접근만 되면 되지 뭐.. 라는 생각이었다.

-. 위 캡쳐처럼 무식하게 퍼블릭 액세스를 열어두면 당연히.. 보안설정따위 없이 사용하는데에 편하고, 간단하게 구현할 수 있었다. 근데, 아무래도 접근은 최대한 조여두는 것이 좋으니까 이제 슬슬 공부를 좀 해보려고 한다. 

-. 우선 시작은 어디서든 접근이 되는 상황

2. 접근권한 설정 삭제

-. 우선은 모든 접근권한을 삭제해 봤다.

-. '권한'탭에 들어가서 위와 같이 설정을 해주면, 아래와 같이, 처음에 보이던 퍼블릭 경고표시가 사라진다.

-. 그리고 당연하겠지만, 앞에서 보이던 우리은행 그림이 보이지 않는다. 리퀘스트/호스트 아이디는 잘 모르겠지만 뭔가 공개되면 안될거같아서 일단 가림.

3. 읽기 권한만 열기

-. 이게 이번 포스팅의 본문인데... 특정 도메인 혹은 ip에서만 접근 가능하게 설정을 하고싶다.

1) 파일 개별 권한 부여해보기

-. 우선 해당 파일의 권한 설정이 되는지 볼려고... 파일의 권한 탭에 들어가봤다. 객체에 대해, 객체 소유자의 AWS계정을 통해서만 접근할 수 있게 되었다. 하지만 난 이미지 호스팅이 필요하니, 퍼블릭하게 해당 이미지에 접근은 할 수 있게 설정을 해줘야 한다.

-. 오른쪽 위의 편집 버튼을 누르니 해당 권한 설정 이 뜨긴 하는데.... 기존에 부여된 객체 소유자 외에는 설정 자체가 되질 않는다.

2) 버킷에 대한 접근 정책

-. 버킷의 파일 접근 정책에 대해 '버킷 정책' 탭에서 세부 설정을 할 수 있다. S3 예문을 보고 동일하게 진행해 보자.

-. 버킷 정책 편집을 위해선 우선 버킷을 퍼블릭으로 세팅하고 → 버킷 정책을 설정하고 → 다시 퍼블릭 액세스를 차단해야 한다. 이를 위해 우선 버킷을 퍼블릭으로 설정하자.

-. 정책 편집 탭으로 들어가면, 간단하게 ui를 이용해 json 구문으로 된 정책 작성이 가능하다.

{
	"Version": "2012-10-17", //정책 버전
	"Statement": [
		{
			"Sid": "Statement1", //정책 이름. 임의설정
			"Principal": "*", //접근 권한 부여 대상자. 퍼블릭 접근이 가능해야 하므로 *
			"Effect": "Allow",
			"Action": [
				"s3:GetObject" //오브젝트 get 만 가능
			],
			"Resource": [
				"arn:aws:s3:::fitka/*" //bucket 네임, 그리고 그 이하 모든 오브젝트 (/*)
			]
		}
	]
}

-. 그리고 퍼블릭 액세스 접근 권한에 대해 4번째 체크 해제 (차단 해제)를 해주면 이제 다시 이미지를 볼 수 있다. 이렇게 그나마 안전한 정책 설정 완료.

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기