본문 바로가기
클라우드/AWS

AWS) 객체 스토리지 S3 버킷 생성 및 버킷 정책 편집을 통한 파일 권한 설정

by 빈스터디 2023. 3. 15.

EC2에 EBS도 있다.

EBS는 블록 스토리지이다. EC2와 같이 컴퓨터가 있어야 사용할 수 있는 스토리지 서비스이다. (하드디스크 같은.. 폴더 안의 파일)

S3은 객체 스토리지는 그러한 컴퓨터 없이도 사용할 수 있는 스토리지 서비스이다. 

객체 스토리지는 파일 저장이 폴더-파일의 구조가 아니라 수평적인 구조를 가지고 있다.

파일 시스템이 다르다.

*파일시스템 : 파일을 어디에 어떻게 저장해 둘 것인가?

 

(면접에서 많이 물어보는 것)

객체 스토리지 vs 파일 스토리지 vs 파일 시스템

 

aws의 S3에서 버킷을 만들어서 사용한다.

버킷이름(은 유일한 값이어야 함, ID같은 개념) > 소유권, ACL 생성 후 변경 가능, 그래서 그냥 넘어감 > 생성

 

 

실습) 버킷 생성 후, 아무거나 업로드(파일추가 or 폴더 추가) 하면 다음과 같다.

 

업로드한 파일을 클릭하면 다음과 같이 나온다.

여기서 객체 URL을 클릭하면,,,

 

아래와 같이 출력된다.

이유는? 권한이 없기 때문이다.

 

따라서 권한 설정을 해준다.

 

버킷 > 권한 > 퍼블릭 액세스 차단 편집 > 해제 > 저장

버킷 > 버킷정책 편집 > 정책 생성기 > type : s3 bucket policy > effect : allow > principal : * > actions : get object > ARN : 버킷 정책 편집 페이지의 ARN복붙 > 

*버킷 정책 편집에서 특정 파일만 권한 허용, 업로드 허용 등을 세세하게 설정할 수 있다.

 

그럼 JSON 형식의 정책이 만들어지는데 이를 복사해서 버킷 정책 편집 페이지에 붙여넣기 >  변경사항 저장한다.

 

JSON 정책이 아래와 같이 만들어졌는데 

{
    "Version": "2012-10-17",
    "Id": "PolicyID[숫자]",
    "Statement": [
        {
            "Sid": "Stmt[숫자]",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::[버킷이름]"
        }
    ]
}

오류가 떠서, [버킷이름] 뒤에 '/*'을 추가해서 저장했다.

인터넷으로 찾아보니까 /*가 없으면 버킷 자체의 권한이고, 있으면 해당 버킷 내의 항목들에 권한을 줘서 그런 거라고 한다.

 

 

이 후, 다시 파일 url에 접속했을 때 다음과 같이 출력되는 것을 확인할 수 있다.