AWS/AWS Certified SAA

[Udemy][AWS-SAA][Section-14] Amazon S3 Security

청룡동사는연우 2023. 11. 26. 19:59

#AWS Certified Solutions Architect Associate 

AWS-DVA 과정에서 나오지 않았거나, 기억이 안나는 부분 메모

 

https://aws.amazon.com/ko/s3/security/

 

Amazon S3 보안 기능 - Amazon Web Services

지능형 위협 탐지 및 지속적 모니터링을 통해 Amazon S3 데이터를 보호합니다. Amazon GuardDuty for Amazon S3에 대해 자세히 알아보려면 웹 페이지를 참조하세요.

aws.amazon.com

 

S3 데이터 암호화 블로그

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/UsingEncryption.html

 

암호화로 데이터 보호 - Amazon Simple Storage Service

이제 Amazon S3가 Amazon S3 관리형 키를 사용한 서버 측 암호화(SSE-S3)를 Amazon S3 내 모든 버킷 암호화의 기본 수준으로 적용합니다. 2023년 1월 5일부터 Amazon S3로의 모든 새 객체 업로드는 추가 비용 없

docs.aws.amazon.com

 

CORS(Cross-origin 리소스 공유)는 한 도메인에서 로드되어 다른 도메인에 있는 리소스와 상호 작용하는 클라이언트 웹 애플리케이션에 대한 방법을 정의합니다.

Amazon S3에서는 CORS 지원을 통해 다양한 기능의 클라이언트 측 웹 애플리케이션을 구축하고, Amazon S3 리소스에 대한 Cross-Origin 액세스를 선택적으로 허용할 수 있습니다.

예를 들어, 웹 사이트를 호스팅하는 Amazon S3 버킷에서 JavaScript를 사용하여 같은 버킷에 대해 GET 및 PUT 요청 인증을 가능하게 하려면, CORS를 사용하여 cross-origin 요청을 사용 설정하도록 버킷을 구성할 수 있습니다.

또한, 웹 글꼴을 호스팅하는 S3 버킷이 웹 글꼴을 불러오기 위해 CORS 검사가 필요하므로, 이 웹 글꼴을 호스팅하는 버킷이 이러한 요청을 하는 오리진을 허용하도록 구성해야 합니다.

Amazon S3이 브라우저에서 preflight 요청을 받으면 버킷에 대한 CORS 구성을 평가하고 수신된 브라우저 요청과 일치하는 첫 번째 CORSRule 규칙을 사용하여 Cross-Origin 요청을 허용합니다.

https://aws.amazon.com/ko/what-is/cross-origin-resource-sharing/

 

CORS란 무엇입니까? - 교차 오리진 리소스 공유 설명 - AWS

크로스 오리진 리소스 공유(CORS)는 애플리케이션을 통합하기 위한 메커니즘입니다. CORS는 한 도메인에서 로드되어 다른 도메인에 있는 리소스와 상호 작용하는 클라이언트 웹 애플리케이션에

aws.amazon.com

 

 

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html

 

MFA Delete 구성 - Amazon Simple Storage Service

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

Pre-signed URL미리 서명된 URL로, AWS S3 객체에 접근하기 위한 주소입니다. 이 URL은 단순히 객체의 저장 위치뿐만 아니라 권한 정보와 접근 가능 기간 등을 포함합니다. 특정 Pre-signed URL로 수행할 수 있는 작업은 이미 제한되어 있으며, 접근 가능 기간이 지나면 해당 URL은 더 이상 사용할 수 없습니다.

예를 들어, Pre-signed URL을 이용하여 파일을 업로드하는 절차는 다음과 같습니다:

  1. API 서버에서 AWS Key 정보를 이용하여 Pre-signed URL을 생성하고 Front-end로 응답합니다.
  2. Front-end에서는 전달받은 Pre-signed URL을 이용하여 HTTP Put 요청으로 S3에 파일을 업로드합니다.

Pre-signed URL을 이용한 파일 업로드는 Front-end에서 AWS S3로 바로 파일을 업로드할 수 있으면서도 AWS Key 정보를 API 서버에 숨겨져 있어 보안 위험을 줄일 수 있습니다.

또한, Pre-signed POST 방식도 지원됩니다. Pre-signed POST는 HTTP Post 방식으로 파일을 업로드할 수 있습니다. 이 방식은 파일을 업로드할 때 FormData에 파일과 함께 권한, 시간 등의 정보를 넣어 사용합니다.

더 자세한 내용은 아래 링크를 참고하세요:

 

S3 Glacier Vault LockAmazon S3 Glacier에서 개별 Vault에 대한 컴플라이언스 제어를 쉽게 배포하고 강제할 수 있는 정책입니다. 이 정책을 사용하여 “한 번 쓰고 여러 번 읽기”(WORM)와 같은 제어를 지정하고 정책을 향후 편집으로부터 잠길 수 있습니다. 정책이 잠긴 후에는 해당 정책을 더 이상 변경하거나 삭제할 수 없습니다. S3 GlacierVault Lock 정책에서 설정한 제어를 적용하여 규정 준수 목표를 달성하도록 지원합니다. 예를 들어, 데이터 보존을 강제하기 위해 Vault Lock 정책을 사용할 수 있습니다AWS Identity and Access Management (IAM) 정책 언어를 사용하여 다양한 컴플라이언스 제어를 배포할 수 있습니다1.

Vault Lock 정책Vault 접근 정책과 다릅니다. 두 정책 모두 Vault에 대한 액세스 제어를 관리하지만, Vault Lock 정책은 향후 변경을 방지하기 위해 잠길 수 있으며, 규정 준수 제어를 강력하게 적용합니다. Vault Lock 정책은 데이터 액세스에 엄격한 제어가 필요한 규정 준수 및 규정 요구 사항을 배포하는 데 사용됩니다.

Vault Lock을 적용하는 데는 두 단계가 필요합니다:

  1. Vault Lock 정책Vault에 첨부하여 잠금을 시작합니다. 이로써 정책은 진행 중인 상태로 설정되고 잠금 ID가 반환됩니다. 정책이 진행 중인 상태에서는 24시간 내에 Vault Lock 프로세스를 완료해야 합니다. 그렇지 않으면 Vault Lock 정책이 삭제됩니다.
  2. 잠금 ID를 사용하여 잠금 프로세스를 완료합니다Vault Lock 정책이 예상대로 작동하지 않으면 Vault Lock 프로세스를 중지하고 처음부터 다시 시작할 수 있습니다1.

더 자세한 내용은 아래 링크를 참고하세요:

S3 Object LockVault Lock과 유사한 기능을 수행하지만 덜 다양한 기능을 제공합니다. 예를 들어, S3 Object Lock은 버킷 생성 시에만 활성화할 수 있으며, 법적 보류는 개별 객체 버전에만 적용됩니다23.

1: Amazon S3 Glacier Vault Lock 문서 2: Stack Overflow: Amazon S3 Glacier vs Glacier Storage Class 3: Stack Overflow: How to move object from Amazon S3 to Glacier with Vault Locked enabled?

 

 

Amazon S3 액세스 포인트Amazon S3에서 공유 데이터 세트로 설정된 애플리케이션에 대한 데이터 액세스를 관리하는 방법을 단순화합니다. 이제 더 이상 수백 개의 서로 다른 권한 규칙을 작성하고, 읽고, 추적하며, 감사해야 하는 하나의 복잡한 버킷 정책을 관리할 필요가 없습니다. S3 액세스 포인트를 사용하면 특정 애플리케이션에 맞게 조정된 정책으로 공유 데이터 세트에 대한 액세스를 허용하는 애플리케이션 특정 액세스 포인트를 생성할 수 있습니다. 이를 통해 대규모 공유 데이터 세트를 관리할 수 있습니다123.

S3 액세스 포인트의 주요 특징은 다음과 같습니다:

  • 액세스 포인트GetObjectPutObject 같은 S3 객체 작업을 수행하는 데 사용할 수 있는 버킷에 연결된 네트워크 엔드포인트입니다.
  • 액세스 포인트에는 해당 액세스 포인트를 통해 이루어진 모든 요청에 대해 S3가 적용하는 고유한 권한 및 네트워크 제어가 있습니다.
  • 액세스 포인트는 기본 버킷에 연결된 버킷 정책과 함께 작동하는 사용자 지정 액세스 포인트 정책을 적용합니다.
  • **Virtual Private Cloud (VPC)**의 요청만 수락하도록 액세스 포인트를 구성하여 프라이빗 네트워크에 대한 Amazon S3 데이터 액세스를 제한할 수 있습니다.

더 자세한 내용은 아래 링크를 참고하세요:

 

 

 

Amazon S3 Object LambdaAmazon S3에서 데이터를 검색할 때 해당 데이터를 처리하고 변환하기 위해 자체 코드를 추가할 수 있는 기능입니다. 이는 기존 애플리케이션과 함께 작동하며, AWS Lambda 함수를 사용하여 S3에서 검색되는 데이터를 자동으로 처리합니다. Lambda 함수는 표준 S3 GET 요청과 함께 인라인으로 호출되므로 애플리케이션 코드를 변경할 필요가 없습니다. 이를 통해 동일한 데이터 세트의 여러 보기를 쉽게 표시하고, 언제든지 데이터 보기를 수정할 수 있습니다.

S3 Object Lambda를 활용하는 몇 가지 활용 사례는 다음과 같습니다:

  • 데이터 형식 간 변환 (예: 개인 식별 정보 수정 XML을 JSON으로 변환)
  • 다른 서비스 또는 데이터베이스의 정보로 데이터 보강
  • 다운로드되는 파일 압축 또는 압축 해제
  • 발신자 별 세부 정보를 사용하여 이미지 크기 조정 및 워터마킹
  • 데이터에 대한 사용자 지정 권한 부여 규칙 구현

S3 Object Lambda를 사용하기 위해 몇 가지 간단한 단계를 따를 수 있습니다:

  1. 사용 사례에 맞게 데이터를 변환하는 Lambda 함수를 생성합니다.
  2. S3 관리 콘솔에서 S3 객체 Lambda 액세스 포인트를 생성합니다.
  3. 생성한 Lambda 함수를 선택하여 S3 Object Lambda에 원본 객체에 대한 액세스 권한을 부여합니다.
  4. 새로운 S3 Object Lambda 액세스 포인트를 사용하여 S3에서 데이터를 검색하도록 애플리케이션 구성을 업데이트합니다.

S3 Object Lambda는 데이터 처리를 더욱 유연하게 제어하고, 애플리케이션의 특정 요구 사항을 충족시키기 위해 AWS Lambda를 활용합니다123.