【한글자막】 AWS Certified Solutions Architect Professional | Udemy

2023.01.06 - [DevOps/aws] - Udemy | AWS Certified Solutions Architect Associate 강의 | Section1~2

2023.01.06 - [DevOps/aws] - AWS Certified Solutions Architect Associate 강의 Udemy | Section 3: AWS 시작하기

2023.01.06 - [DevOps/aws] - AWS Certified Solutions Architect Associate 강의 Udemy | Section 4: IAM 및 AWS CLI

2023.01.09 - [DevOps/aws] - AWS Certified Solutions Architect Associate 강의 Udemy | Section 5: EC2 기초

2023.01.10 - [DevOps/aws] - AWS Certified Solutions Architect Associate 강의 Udemy | Section 6: EC2 - 솔루션스 아키텍트 어소시에이트 레벨

2023.01.11 - [DevOps/aws] - AWS Certified Solutions Architect Associate 강의 Udemy | Section 7: EC2 인스턴스 스토리지

2023.01.13 - [DevOps/aws] - AWS Certified Solutions Architect Associate 강의 Udemy | Section 8: 고가용성 및 스케일링성: ELB 및 ASG

2023.01.13 - [DevOps/aws] - AWS Certified Solutions Architect Associate 강의 Udemy | Section 9: AWS 기초 : RDS + Aurora + ElastiCache

2023.01.16 - [DevOps/aws] - AWS Certified Solutions Architect Associate 강의 Udemy | Section 10: Route 53

2023.01.16 - [DevOps/aws] - AWS Certified Solutions Architect Associate 강의 Udemy | Section 11: 클래식 솔루션 아키텍처 토론

 


124. S3 보안 및 버킷 정책

S3 Security 

사용자 기반 보안 

IAM 정책- IAM 사용자는 IAM 정책을 가지고 있는데 이들은 정책은 어떤 API 호출이 허용될지를 결정한다.

만약 유저가 IAM 정책을 통해 Amazon S3 버킷으로의 액세스 방법을 승인받게 되면 실행이 가능해진다 .

 

리소스 기반 보안 

S3 콘솔에서 설정 가능한 버킷 전반의 규칙이며 S3버킷에서 보안 주체가 무엇을 할 수 있는지 혹은 할 수 없는지를 결정하는 정책이다 .

이를 통해 교차 계정 액세스가 활성화 된다.  cross account 

 

객체 레벨에서의 액세스 규칙을 설정 

Object Access Control List (ACL ) - finer gain 

 

버킷 ACL 방식 

Bucket Access control List (ACL) - less common 

 

IAM 유저가 S3 객체에 접근하는 경우 

  •  IAM 퍼미션이 있거나 리소스 정책이 허락하거나
  • 그리고 명시적 거부가 없는 경우 (there's no explicit deny) 

S3 버킷 정책

Json 형식이다. 

resources: 버킷 또는 객체 

action: api가 허가 및 거부를 하도록 설정한다 .

effect: 허용/ 거부

principal : 해당 S3 버킷의 정책을 적용할 계정 혹은 유저이다. 

 

Use S3 bucket for policy to: 

버킷에 퍼블릭 액세스 권한을 승인하거나 

업로드 시점에 객체를 암호화시키거나 ( force objects to be encrypted at upload)

다른 계정에 액세스 권한을 주는 경우 

 

Bucket setting for block public access

객체가 퍼블릭 액세스 되는 것을 차단하는 방법

  • new access control lists (ACLs)
  • any access control lists(ACLs)
  • new public bucket or access point policies 

퍼블릭 버킷이나 액세스 포인트 정책을 통해 버킷과 객체를 향한 퍼블릭 및 교차 계정 액세스를 막을 수 있다. 

 

S3 security - other

Networking

네트워킹에서는 VPC 엔드 포인트로 S3에 비공개 액세스가 가능하다.

( vpc에 ec2 인스턴스가 있고 인터넷 액세스가 없는 경우 VPC 엔드 포인트를 통해 비공개로 s3에 액세스 할 수 있다.) 

 

Logging and Audit

S3 액세스 로그를 사용하면 다른 S3 버킷에 해당 로그가 저장된다. 

Api 호출은 CloudTrail 에 로깅 

 

사용자 보안

MFA 삭제

특정 버전 객체를 버킷에서 삭제하고 싶은 경우에 MFA 삭제를 활성화하면 된다. mfa를 하고 난 후 삭제할 수 있다.

사전 서명된 URL

한정된 시간 동안만 유효하다. ( 프리미엄 영상을 구매하고 다운로드 하는 경우 ) 

 

특정 사용자가 특정 파일에 액세스 하는 경우에 관련된 문제가 나오면 사전 서명된 URL을 생각하면 된다. 

 


125. S3 보안 및 버킷 정책 실습

Amazon S3 콘솔을 사용하여 버킷 정책 추가 - Amazon Simple Storage Service

 

Amazon S3 콘솔을 사용하여 버킷 정책 추가 - Amazon Simple Storage Service

편의상 버킷 정책 편집(Edit bucket policy) 페이지는 정책(Policy) 텍스트 필드 위에 현재 버킷의 버킷 ARN(Bucket ARN)(Amazon 리소스 이름)을 표시합니다. AWS 정책 생성기 페이지의 명령문에 사용하기 위해

docs.aws.amazon.com

 

버킷 정책 생성기를 이용할 수 있다. 

 


126. S3 웹사이트

S3 Websites

s3에서 정적 웹사이트를 호스팅 할 수 있고 www에서 접근이 가능하도록 허용하며 웹사이트 URL 도 아주 간단하다.

 

웹사이트 URL 형태는 

  •  <bucket-name>.s3-website-<AWS-region>.amazonaws.com
  • <bucket-name>.s3-website.<AWS-region>.amazonaws.com

이다. 

 

웹사이트를 활성화했으나 설정된 버킷 정책이 없을 때는 해당 버킷에 대한 공개 액세스가 가능하며 이때는 403 Forbidden 오류가 발생한다.

 

Access 에 

bucket and objects not public 이기 때문 

public으로 바꾸려면? 

1. Block all public access 상자 체크를 해제 

2. bucket policy 로 가서 공개 액세스를 허용하는 버킷 정책을 작성한다 .

 

 


127. S3 버전 관리

Amazon S3 - Versioning 

s3 파일을 버저닝 하려면 먼저 버킷 레벨에서 활성화가 되어야한다. 

같은 키로 파일 버전을 다시 업로드 하는 경우에 기존 파일을 덮어쓰게 되는데 사실은 덮어쓰는게 아니라 해당 파일의 새로운 버전을 생성하는 것이다 .

same key overwrite will increment the "version" : 1,2,3 

 

버킷을 버저닝하는 것이 최고

모든 파일 버전을 어느 정도 유지한다. 

  •  원치 않은 삭제로부터 보호
  • 이전 버전을 복원할 수 있음 ( Easy roll back to previous version) 

Notes

버저닝을 활성화하기 전에 버전 관리 되지 않은 파일은 null 버전이 된다. 

버킷에서 버저닝을 중단하면 이전 버전을 삭제하는 것이 아니라 이후의 파일이 버전을 할당받지 못하도록 한다 .

Suspending versioning does not delete the previous versions


128. S3 버전 관리 실습

properties 탭에가서 버킷 버전닝을 활성화 한다. 

 

versionID 탭이 생긴다. 

활성화 전에 있던 파일의 version ID는 null 이다. 

 

삭제시 delete marker 가 생성된다 .


129. S3 복제 노트 

Amazon S3 - Replication (Notes) 

복제를 활성화한 후에는 새로운 객체만 복제 대상이 된다. 

기존의 객체를 복제하려면 S3 배치 복제 기능을 사용해야한다. ( S3 Batch Replication)

기존 객체 부터 복제에 실패한 객체까지 복제할 수 있는 기능이다. 

 

삭제 마커도 복제할 수 있다. 

버전 ID 로 삭제하는 경우 버전 ID는 복제되지 않는다.

 

체이닝 복제는 불가능함

1번 버킷이 2번 버킷에 복제 되어 있고, 

2번 버킷이 3번 버킷에 복제돼 있다고 해서 1번 버킷을 객체가 3번 버킷으로 복제 되지 않는다 .


130. S3 복제 실습

1. 버킷 생성 - 버저닝 활성화 해야한다. 

2. 다시 버킷 생성 - 버저닝  활서오하 

 

오리진 버킷에서

파일업로드 하기 

복제 규치 추가 하기

대상 버킷 추가하기 

 

(대상 버킷의 소스 버킷에서 복제 활성화 이전의 객체를 복제하려면 S3 배치 작업 처리를 실행해야한다 )

 

새로운 파일 업로드 부터 복제 버킷에 업로드 된다 .

 

중요한 설정 

Management 에서 복제 규칙을 선택하고 규칙 편집으로 들어가 후 

삭제 마커 복제 옵션이 존재한다.

기본적으로 삭제마커는 복제 되지 않지만 이를 설정하는 기능이 있다.

삭제 마커도 복제 된다. 

 

오리진 버킷에서 파일을 삭제해도 복제 버켓에서 파일이 삭제되지 않는다. 

삭제 마커를 복제하는거지 삭제하는 행위를 복제하지 않는다 .

 


131. S3 스토리지 클래스 

S3 스토리지 클래스 

 

Glacier 에는 

Glacier Instant Retrieval

Glacier Flexible Retruevak

Glacier Deep Archive 

 

s3에서 객체를 생성할때 클래스를 선택할 수도 있고 수동으로 스토리지 클래스를 수정할 수도 있다.

 

S3 수명 주기 구성을 사용해 스토리지 클래스 간에 객체를 자동으로 이동할 수 있다. 

 

S3 Durability and Availability

Durability: 

내구성으로 만년에 한 번 객체 손실이 예상된다 .

모든 스토리지 클래스의 내구성은 같다 .

 

Availability:

 가용성은 서비스가 얼마나 용이하게 제공되는지를 의미하며 스토리지 클래스에 따라 다르다 .

1년에 53분 동안은 서비스를 사용할 수 없다는 뜻 

99.99%

 

S3 standard - General Purpose

99.99 가용성 

빈번한 액세스 

낮은 레이턴시 , 높은 처리량

두개의 기능 장애를 동시에 버틸 수 있음. ( sustain 2 concurrent facility failures) 

 

빅데이터 분석, 모바일, 게임 어플리케이션, 콘텐츠 배포 

 

S3 Infrequent Access

자주 액새스 하지는 않지만 필요한 경우 빠르게 액세스해야 하는 데이터 

스탠다드 보다는 비용이 적다

 

검색 비용이 쌔다 . 

 

One zone-IA 는  단일 az에서는 높은 내구성을 갖지만 Az 가 파괴된 경우 데이터를 잃게 된다 .

가용성은 99.5% 

 

온프레미스 데이터를 2차 백업하거나 재생성 가능한 데이터를 저장하는데 사용된다 .

 

Glacier Storage Classes

콜드 스토리지 

아카이빙과 백업을 위한 저비용 객체 스토리지 

 

Glacier Instant Retrieval

밀리초 단위로 검색이 가능 

분기에 한번 액세스 하는데이터 

최소 보관 기간이 90일

 

Glacier Flexible Retrieval 

Expedited 1~5min

Standard 3~5 hour

bulk 5~12 hour ,free

최소 보관 기간 90일 

 

Glacier Deep Archive

standard 12 hour

bulk 48 hour

가장 저렴 

180 일 

 

S3 Intelligent- Tiering 

사용 패턴에 따라 액세스된 티어 간에 객체를 이동할 수 있게 해준다 .

소액의 월별 모니터링 비용과 티어링 비용 

 

frequent acces tier : default

infrequent access tier : 30days

archive instant access tier: 90 days

archive access tier : 90~700 + days 이상 액세스 하지 않은 객체에 구성 

 

알아서 객체를 스토리지 티어간에 옮긴다. 


132. S3 스토리지 클래스 실습 

버킷 생성

객체 업로드 시 스토리지 클래스 추가 옵션이 나온다. 

 

glacier 에 업로드 하기 시작하면 해당 파일은 회수하지 않는 한 볼 수 없게끔 즉시 변경된다. 

파일 열람 접근을 위해서는 먼저 복원을 해야한다. 

 

객체 스토리지 클래스를 수정할 수 있다.


Quiz 9: Amazon S3 퀴즈 

1. 25GB 크기의 파일을 S3에 업로드하려 시도 중이지만, 오류가 발생하고 있습니다. 이 경우, 가능성이 있는 원인은 무엇일까요?

S3 객체 파일의 크기제한은 5TB 이다. 

100mb 보다 파일이 큰 경우 멀티파트 업로드가 권장된다. 

파일 크기가 100MB가 넘는 경우에는 멀티파트 업로드가 권장됩니다.

 

2. dev라는 이름의 새로운 S3 버킷을 생성하려 하던 중 오류가 발생했습니다. S3 버킷이 생성된 적이 없는 새로운 AWS 계정을 사용 중입니다. 이 경우, 가능성이 있는 원인은 무엇일까요?

S3 버킷 이름은 전역에서 고유해야함.

 

3. 이미 많은 파일을 포함하고 있는 S3 버킷에 버전 관리를 활성화한 상태입니다. 기존의 파일은 다음 중 어떤 버전을 가지고 있을까요?

4. 여러분의 고객은 S3에 있는 파일을 암호화하되, 암호화 키를 AWS에 저장하지 않고 직접 관리하기를 원하고 있습니다. 이에 여러분은 고객에게 ............................. 를 추천했습니다.

SSE-C을 사용하면, AWS에서 암호화가 일어나지만 당사자가 암호화 키를 전적으로 관리하게 됩니다.

Server-Side Encryption 

 

암호화 주체, 암호화 키 저장 장소, 암호화키 관리 주체 

5.여러분이 근무 중인 기업이 S3에 저장된 자신들의 데이터를 암호화하고자 합니다. 암호화 키가 AWS에 저장되고 관리되더라도 문제가 없으나, 암호화 키에 대한 교체 정책은 기업이 직접 관리하기를 원하고 있습니다. 이에 여러분은 고객에게 ............................. 를 추천했습니다.

SSE-KMS를 사용하면, AWS에서 암호화가 일어나고 AWS가 암호화 키를 관리하게 되지만, 암호화 키의 교체 정책은 당사자가 전적으로 관리하게 됩니다. AWS에 저장된 암호화 키

 

6. 기업은 AWS의 암호화 프로세스를 신뢰하지 않으며, 애플리케이션 내에서 프로세스가 이뤄지기를 원하고 있습니다. 이에 여러분은 고객에게 ............................. 를 추천했습니다.

 

클라이언트 측 암호화를 사용하면, 암호화를 직접 수행해야 하며 당사자가 암호화 키를 전적으로 관리하게 됩니다. 암호화를 여러분이 직접 수행하고 암호화된 데이터를 AWS로 보냅니다. AWS는 여러분의 암호화 키에 대해 알지 못하며, 데이터를 복호화할 수 없습니다.

 

7. S3 버킷 정책을 업데이트해 IAM 사용자들이 S3 버킷 내의 파일을 읽기/쓰기할 수 있도록 허가했으나, 한 명의 사용자가 PutObject  API 호출을 수행할 수 없다며 불만을 토로하고 있습니다. 이 경우, 가능성이 있는 원인은 무엇일까요?

IAM 정책 내의 명시적인 부인(DENY)은 S3 버킷 정책보다 우선적으로 고려됩니다.

 

8. S3 버킷으로부터 파일을 로딩해 오는 웹사이트가 있습니다. 파일의 URL을 Chrome 브라우저에 직접 입력했을 때에는 정상적으로 작동했으나, 이 웹사이트에서 파일을 로딩하려 할 때는 작동이 되지 않습니다. 무엇이 문제일까요?

 

교차 오리진 리소스 공유(CORS)는 한 도메인에서 로딩되는 클라이언트 웹 애플리케이션이 다른 도메인에 있는 리소스와 상호작용하는 방식을 정의합니다. CORS에 대한 더 많은 정보는 다음 URL을 참조하세요: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html

 

CORS

Cross Origin Resource Sharing

 

+ Recent posts