AWS

[AWS]S3 버킷 생성 및 권한 설정

MoZZANG 2023. 12. 13. 23:05

하드디스크 클라우드 서비스로 유명한 AWS S3 사용방법을 알아보자

 

 

 

AWS S3에서 버킷만들기

 

 

AWS가입하고 로그인 하면 콘솔홈으로 접속될 것이다.

 

콘솔 홈

 

 

 

여기서 우측 상단 아이디 왼쪽에 region, 그러니까 지역을 선택하는 dropdown이 있을텐데 클릭 후 자신이 위치하는 곳에서 가장 가까운 곳으로 선택하자.

 

본인은 서울이므로 서울로 선택함

 

 

 

 

 

 

자 그리고 검색창에 s3라고 입력 후 나오는거 클릭하자

 

 

 

 

 

그리고 새 버킷, 즉 저장소를 만들기 위해 노랑버튼을 누르자

 

 

 

 

 

자 그러면 다음과 같은 창으로 넘어갈텐데

 

 

 

 

 

 

위에서 보듯이 버킷이름은 유니크한 이름으로 적어주자.

 

그리고 다른건 특별히 건드릴 것 없고 퍼블릭 엑세스 차단을 해제해주고 경고창의 체크박스에 체크를 해서 위험은 내가 감수하겠다는걸 얘기해준 후

 

 

최하단에 버킷만들기를 눌러 생성해주자.

 

 

 

 


 

 

버킷정책을 수정해주자

 

 

 

 

 

이제 자신만의 버킷이 생성되었을 것인데,  만든 사이트에서 파일이나 이미지등을 이 버킷에 업로드하고 그 파일이나 이미지등을 사이트에서 표출하기 위해 약간의 권한 설정들을 해줘야 한다.

 

 

방금만든 버킷을 클릭해서 들어오면

 

 

 

 

버킷 상세페이지로 들어오게 되고 상단 탭중에 권한을 클릭해주자

 

 

 

 

 

그리고 중간쯤에 보면 버킷정책이라는 것이 있을텐데 편집을 눌러 정책을 설정해주자.

 

 

이 정책이라는 건 말 그대로 이 버킷에 업로드 될 파일이나 이미지 등에 대한 정책을 정해주는 곳인데 여러 많은 옵션들이 있겠지만 베이직한 옵션으로 설정정도만 해줘도 충분할 것이라고 생각한다.(일단은)

 

 

 

 

 

신속하고 간단한 정책생성을 위해 새 문 추가라는 버튼을 눌러주면 되는데 하단이나 우측에 있는 버튼 모두 동일한 버튼이니 맘에 드는걸로 골라서 눌러주면 다음과 같이 정책이 하나 간단하게 생성될 것이다.

 

그리고는 다음과 같이 적어주자. 자세한 정책 설명은 다음과 같다

 

 

 

 

 

위 이미지에는 조금 빠진부분들이 있어서 붙여넣기를 위해서는 아래 코드를 참고바란다.

 

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "Statement1",
			"Effect": "Allow",
			"Principal": "*",
			"Action": "s3:GetObject",
			"Resource": "arn:aws:s3:::당신 버킷명/*"
		},
		{
			"Sid": "Statement2",
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::당신AWS계정ID:root"
			},
			"Action": [
				"s3:PutObject",
				"s3:DeleteObject"
			],
			"Resource": "arn:aws:s3:::당신 버킷명/*"
		}
	]
}

 

 

 

정책에서는 탭 들여쓰기와 띄어쓰기가 매우 중요하므로 간격을 맞춰서 꼭 해주자

 

 

 

 

 

 

 

그리고 아래쪽에 CORS설정하는 곳도 있는데 여기도 설정해주어야 한다.

 

편집을 눌러 수정해주자.

 

 

 

 

 

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "PUT",
            "POST"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "ETag"
        ]
    }
]

 

 

 

 

CORS는 개발하는 사람이라면 한번쯤은 들어봤을테니 구글링 해보시면 매우 양질의 정보가 있을 것이다. 꼭 찾아서 읽어보자

 

위 내용은 결국 어떤 사이트에서 이 버킷안의 파일들을 PUT, POST요청할 수 있는지를 등록해주는 것이다.

 

AllowedOrigins 배열안에 등록해준 사이트들에서만 이 버킷안의 파일들을 대상으로 읽기, 쓰기, 삭제할 수 있는데, 

 

개발중이라면 *을 넣어줘서 모든사이트를 허용해주고, 나중에 사이트를 오픈하게 되면 그 사이트 주소를 AllowedOrigins안에 넣어주자.

 

 

 

 

 


 

 

 

 

 

 

Access 키 발급

 

그대가 만든 서버에서 S3로 접속하고 파일들을 업로드 하고 싶으면 Access key를 넣어줘야 한다.

 

 

 우측 상단에 프로필을 눌러서 '보안 자격 증명'으로 들어가자.

 

 

 

 

 

 

그리고 스크롤 조금 해보면 '액세스 키' 라는 타이틀로 엑세스 키를 만드는 섹션이 있을텐데 

 

거기서 액세스 키 만들기를 눌러서 엑세스 키와 비밀번호를 발급받자.

 

 

 

 

 

 

이 엑세스 키랑 비번은 정말 소중하다. 혹시 털리면 AWS 털려서 난리날 수도 있으니 조심하자

 

 

아무튼 위에서 발급받은 키와 비밀 엑세스키를 s3파일 업로드하는 api같은 곳에 넣어서 사용하면 된다.