forked from mmistakes/minimal-mistakes
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #5 from minyoongi96/poster
S3 외부 접근 실습 업로드
- Loading branch information
Showing
21 changed files
with
113 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,7 @@ | ||
source "https://rubygems.org" | ||
gemspec | ||
gemspecs | ||
|
||
gem "minimal-mistakes-jekyll" | ||
|
||
gem "webrick", "~> 1.7" | ||
|
||
|
110 changes: 110 additions & 0 deletions
110
_posts/2024-06-02-aws10_S3 생성 & 퍼블릭 ACL 설정하여 외부 접근해보기.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
--- | ||
layout: single | ||
title: "S3 생성 & 퍼블릭 ACL 설정하여 외부 접근해보기" | ||
categories: [AWS] | ||
tag: [AWS, S3] | ||
toc: true | ||
toc_sticky: true | ||
post-header: false | ||
|
||
--- | ||
|
||
## S3 생성 | ||
|
||
버킷 이름은 리전과 상관없이 중복되는 버킷 이름은 줄 수 없다. | ||
|
||
그리고, ‘버킷 선택’ 버튼을 통해 기존에 생성된 bucket 설정을 그대로 가져와서 지금 만들 bucket에 그대로 적용시키는 기능이 있다. | ||
|
||
![스크린샷 2024-08-28 오전 12.42.58.png](/assets/images/aws10/12.42.58.png) | ||
|
||
ACL을 비활성하면, 루트 유저를 제외한 모든 사람은 이 bucket 객체 소유권을 가질 수 없다. | ||
|
||
따라서, 객체 소유권은 bucket 오너만 적용된다는 뜻이다. | ||
|
||
테스트용 정적 페이지 제공을 위해서 ACL을 활성화시켰다. | ||
|
||
![스크린샷 2024-08-28 오후 1.02.58.png](/assets/images/aws10/1.02.58.png) | ||
|
||
퍼블릭 엑세스 차단 설정으로 외부로부터 접근이 불가능하도록 할 수 있다. 처음 bucket을 만들 때 이렇게 퍼블릭 접근을 차단하는 기능이 디폴트로 설정되어 있다. 그리고 AWS에서도 외부 접근을 차단하는 것을 매우 권장하고 있는 부분이다. | ||
|
||
외부에서 S3 버킷으로 액세스가 되는 것을 테스트해보기 위해 버킷의 퍼블릭 엑세스를 차단을 해지했다. 하지만 사용목적에 따라 보안상 알맞게 설정해서 사용해야한다. | ||
|
||
![스크린샷 2024-08-28 오후 1.05.12.png](/assets/images/aws10/1.05.12.png) | ||
|
||
버전 관리를 활성화하면 같은 bucket에서 똑같은 파일을 업로드하더라도 파일이 덮어씌워지는 것이 아니라 다른 버전으로 관리가 되어진다. 파일명은 똑같아도 콘텐츠는 달라질 수 있는데 여기서 다른 버전을 선택해서 우리가 원하는 객체를 사용할 수 있다. | ||
|
||
![스크린샷 2024-08-28 오전 1.46.06.png](/assets/images/aws10/1.46.06.png) | ||
|
||
기본 암호화는 객체를 bucket에 업로드할 때 자동으로 암호화를 걸 수 있는 설정이다. 암호화 키 유형은 SSE-S3, SSE-KMS, DSSE-KMS 세가지 유형이 제공된다. | ||
|
||
![스크린샷 2024-08-28 오전 1.46.17.png](/assets/images/aws10/1.46.17.png) | ||
|
||
마지막으로 고급설정을 열어보면 객체 잠금에 대한 항목이 나온다. 만약 객체 잠금을 활성화 시킨다면 bucket에 파일을 한 번 업로드한 이상 파일을 덮어씌우거나 삭제가 불가능해진다. 이는 bucket에 원본 파일을 오랜 시간동안 복원하고 싶을 경우 사용되는 것이다. | ||
|
||
![스크린샷 2024-08-28 오전 1.46.43.png](/assets/images/aws10/1.46.43.png) | ||
|
||
bucket 생성 완료! | ||
|
||
## 파일 업로드 | ||
|
||
이제 만들어진 버킷에 외부에서 접근할 오브젝트를 생성해보자. | ||
|
||
방금 만든 bucket으로 들어와 폴더를 생성해준다. | ||
|
||
![스크린샷 2024-08-28 오전 1.47.56.png](/assets/images/aws10/1.47.56.png) | ||
|
||
images라는 폴더를 하나 생성해본다. | ||
|
||
AWS는 이렇게 폴더에도 암호화를 있게 제공해준다. bucket은 암호화가 걸려있지 않더라도 이렇게 특정 폴더만 암호화를 걸 수 있게 세분화되어 있다. | ||
|
||
![스크린샷 2024-08-28 오전 1.49.50.png](/assets/images/aws10/1.49.50.png) | ||
|
||
파일 업로드 하기. | ||
|
||
images 폴더로 들어와서 업로드를 클릭하고, 간단한 이미지 하나를 업로드 해본다. | ||
|
||
![스크린샷 2024-08-28 오전 1.54.48.png](/assets/images/aws10/1.54.48.png) | ||
|
||
권한 설정을 통해 파일에 대한 소유권을 정의할 수 있다. 버킷을 생성할 때 ACL을 비활성화하면 ‘이 bucket에는 객체 소유권에 대한 버킷 소유자 적용 설정이 적용되어 있습니다.’ 라는 문구가 뜬다. | ||
|
||
![스크린샷 2024-08-28 오전 1.58.08.png](/assets/images/aws10/1.58.08.png) | ||
|
||
다음은 스토리지 클래스를 지정할 수 있는데, 객체의 용도에 따라 설정해주면 된다. | ||
|
||
![스크린샷 2024-08-28 오전 1.59.35.png](/assets/images/aws10/1.59.35.png) | ||
|
||
여기서도 서버측 암호화를 설정할 수 있는데, 지정하지 않음으로 설정했다. | ||
|
||
![스크린샷 2024-08-28 오전 2.01.07.png](/assets/images/aws10/2.01.07.png) | ||
|
||
체크섬 설정은 데이터 무결성 확인을 위해 사용되는 것이다. S3 bucket 오브젝트는 고유한 MD5 체크섬을 가지고 있는데 여기에 이 태그를 포함하여 데이터 무결성을 확인할 때 사용되어진다. | ||
|
||
![스크린샷 2024-08-28 오전 2.02.58.png](/assets/images/aws10/2.02.58.png) | ||
|
||
마지막으로 태그와 메타데이터를 정의할 수 있는데, 여기 태그를 만듦으로써 bucket에 들어있는 오브젝트들을 태그별로 묶어서 따로 관리할 수 있다. | ||
|
||
![스크린샷 2024-08-28 오전 2.03.56.png](/assets/images/aws10/2.03.56.png) | ||
|
||
만들어진 폴더에 이미지 파일 하나를 업로드한 후에 파일 정보에 대해 확인해본다. | ||
|
||
오른쪽 상단에 ‘열기’ 버튼으로도 확인할 수 있지만 우린 외부에서 접근 테스트를 하기 위해 객체 URL을 통해 접속해봐야 한다. | ||
|
||
![스크린샷 2024-08-28 오후 1.23.32.png](/assets/images/aws10/1.23.32.png) | ||
|
||
객체 URL로 접근을 하면 다음과 같이 Access denied가 뜨게 된다. | ||
|
||
![스크린샷 2024-08-28 오후 1.24.51.png](/assets/images/aws10/1.24.51.png) | ||
|
||
그럼 이제 해당 객체의 권한을 확인해보자. | ||
|
||
권한을 확인해보면 객체 소유자에 대해서 객체: 읽기, 객체 ACL: 읽기,쓰기 로 설정되어 있다. | ||
|
||
![스크린샷 2024-08-28 오후 1.25.58.png](/assets/images/aws10/1.25.58.png) | ||
|
||
우린 외부에서 접근 테스트를 하기 위해 ‘편집’을 통해 퍼블릭 엑세스에 대하여 객체:읽기 설정을 해주자. | ||
|
||
![스크린샷 2024-08-28 오후 1.27.53.png](/assets/images/aws10/1.27.53.png) | ||
|
||
해당 내용으로 설정한 후에 다시 객체 URL로 접속하면 이제 우리가 업로드한 객체가 외부에서 접근이 가능하게 설정이 되고, URL을 통해 파일을 확인할 수 있다. | ||
|
||
![스크린샷 2024-08-28 오후 1.28.53.png](/assets/images/aws10/1.28.53.png) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.