AWS storage

Sean·2022년 7월 5일
0
  1. 스토리지 기본 사항
    스토리지
  • 블록스토리지
  • 파일스토리지
  • 객체스토리지 - AWS S3 데이터가 버킷이라는 단일 리포지토리에 저장되는 플랫 구조
  1. AWS S3 기본 사항

    고유한 키-값을 사용하여 원하는 수만큼 객체를 저장하는 객체 스토어
    객체는 하나 이상의 버킷에 저장되며 각 객체의 크기는 5TB까지 가능
    키 이름 접두사와 구분기호를 사용하여 계층 구조를 모방하도록 객체를 구성

    버킷
    객체를 보관하는 영구 컨테이너

    객체
    파일
    데이터, 메타 데이터 및 권한을 가지고 있음
    객체를 버킷에 담는다


객체를 생성할 때 키 이름을 지정

태그
AWS 리소스에 할당되는 레이블
각 태그는 키와 선택 사항인 값으로 구성되며 둘다 회사의 요구 사항에 맞게 정의됨
키-값 페어로, 전체 버킷 또는 개별 객체에 적용되어 식별, 검색 및 데이터 분류에 도움을 줌

  1. Amazon S3와의 인터페이스
    AWS S3 관리 옵션
  2. AWS Management Console
    웹 인터페이스를 통해 사용 가능
  3. AWS CLI
    AWS 서비스를 관리하는 통합 도구
  4. AWS SDK
    AWS에서 구축하기 위한 언어별 도구 그룹을 제공

REST API

Amazon S3에 대한 HTTP 인터페이스

표준 HTTP요청을 사용하여 버킷과 객체를 생성, 가져오며, 삭제

HTTP를 지원하는 모든 도구 키트를 REST API와 함께 사용

브라우저를 사용하여 객체를 가져올 수 있음 (단, 객체를 익명으로 읽을 수 있어야함)

DNS 요청이 라우팅 되는 방법

DNS를 사용하여 요청을 처리할 수 있는 시설로 요청을 라우팅

시스템을 효율적으로 작동하지만 일시적인 라우팅 오류가 발생할 수 있다

클라이언트가 Amazon S3에 저장된 dolphins.jpg 객체를 보고 하려고 할 때 클라이언트는 s3.amazonaws.com의 주소를 가져오기 위해 DNS 요청을 보냄
클라이언트는 요청을 처리할 수 있는 설비의 IP 주소를 하나 이상 수신(IP 주소는 시설 B에 대한 주소)
클라이언트는 Amazon S3 시설 B에 요청을 보냄
시설 B는 dolphin.jpg 객체를 클라이언트에 추가

DNS 임시 리디렉션

고가용성을 충족 시켜주기 위하여 DNS의 Amazon S3 엔드포인트와 연결된 IP주소를 업데이트 하는 것

Amazon S3의 분산 특성으로 인해 요청이 일시적으로 잘못된 리전으로 라우팅될 수 있음(버킷 생성 또는 삭제 직후에 발생할 가능성이 큼)

임시 리디렉션은 요청을 다른 엔드 포인트로 다시 전송해야 하는 요청자에게 신호를 보내는 일종의 오류 응답

클라이언트가 DNS 요청을 보내 Amazon S3에 저장된 dolphin.jpg 객체를 가져옴
클라이언트가 요청을 처리할 수 있는 리전의 IP 주소를 받음 (IP: 192.168.7.52)
클라이언트가 192.168.7.54 위치 D에서 객체를 사용할 수 있음을 나타내는 리디렉션을 반환
리전 B는 192.168.7.54의 위치 D에서 객체를 사용 할 수 있음을 나타내는 리디렉션을 반환
클라이언트가 192.168.7.54의 리전 D로 요청을 다시 보냄
리전 D는 요청된 객체의 복사본을 반환

  1. Amazon S3 데이터 관리
    AWS Management Console

    버전 관리를 활성화 비활성화, 액세스 로그, 권한 및 암호화 확인, 버킷과 객체의 모든 측면을 관리 할 수 있는 사용자 인터페이스
    AWS 또는 AWS IAM 계정 자격 증명을 사용하여 보안 로그인 및 관리 기능을 제공하고 추가 보안을 위해 AWS Multi0Factor Authentication을 활성화 할 수 있음

버전 관리

같은 버킷에 여러 객체 변형 버전을 유지하는 방법
버전 관리를 사용하면 Amazon S3 버킷에 저장된 모든 버전의 모든 객체를 보존, 검색 및 복원 가능
의도하지 않은 사용자 작업 및 애플리케이션 장애로 부터 쉽게 복구 가능

명령줄 사용

상위 수준 명령
하위 수준 명령
s3api 명령 집합을 사용, Amazon s3 API에 직접 액세스, 상위 수준 s3명령에 노출되지 않는 작업 가능

PUT 작업

PUT 요청 작업을 사용하여 버킷에 객체를 추가
객체를 추가하려면 버킷에 대한 WRITE 권한이 있어야함
Amazon S3는 부분 객체를 추가하지 x
버킷에 객체가 이미 있는 경우 새 객체가 기존 객체를 덮어 씀
멀티파일 업로드 API

단일 PUT 작업으로 최대 5GN의 객체를 업로드 하거나 복사할 수 있음
객체의 경우 최대 5TB까지 멀티 파트 업로드 API를 사용해야 한다

GET 작업

Amazon S3에서 직접 전체 객체 또는 객체의 일부를 검색할 수 있다
객체를 부분적으로 검색해야 하는 경우 GET 요청에 Range HTTP 헤더 사용 → 저장된 객체에서 특정 바이트 범위를 검색할 수 있음

삭제 작업

단일 삭제 요청으로 단일 객체 또는 여러 객체를 삭제할 수 있다
버킷에서의 버전 관리의 활성화 또는 비활성화 여부에 따라 DELETE 요청을 할때 다양한 결과 발생
버전 관리가 활성화되지 않음
객체의 키 이름을 지정하여 객체를 영구적으로 삭제할 수 있음

DELETE요청은 버킷에서 객체를 영구적으로 제거하여 복구할 수 없게 만듬

영구 삭제
버킷에서 버전 관리가 활성화된 경우 객체를 영구적으로 삭제하거나 Amazon S3가 객체에 대한 삭제 마커를 생성하도록 함

복구 가능한 삭제
DELETE 요청에 객체의 키 이름만 지정하는 경우 Amazon S3는 객체의 현재 버전이 되는 삭제 마커를 삽입 → 삭제 마커가 있는 객체를 검색하면 오류를 반환하지만 객체의 현제 버전에서 삭제 마커를 제거하면 객체 복구 가능

  1. 클라우드 데이터 마이그레이션 서비스
    온라인 데이터 전송 서비스
    AWS 클라우드

Amazon S3

오프라인 데이터 전송 서비스
AWS Snowcone

AWS Snowball

AWS Snowmobile

하이브리드 클라우드 스토리지 서비스

AWS Direct Connect

AWS Storage Gateway

비관리형 클라우드 데이터 마이그레이션 도구

rsync 및 서드파티 도구

Amazon S3 및 AWS CLI

  1. 데이터 액세스 보안
    최소 권한의 원칙

최소 권한은 작업을 수행하는 데 필요한 최소 권한만 허용하는 보안 설계 전략

보안 메커니즘

새로 생성된 버킷은 버킷을 생성한 사용자 또는 계정 소유자만 액세스할 수 있다

AWS Identity and Access Management - 사용자를 생성하고 버킷 및 객체를 비롯한 리소스에 대한 각각의 액세스를 관리하는데 사용
버킷 정책 - 태그와 접두사를 사용하여 객체의 전체 또는 하위 집합에 대한 권한을 구성하는 데 사용
미리 서명된 URL - 미리 서명된 URL은 임시 URL을 사용하는 다른 사용자에게 시간 제한 액세스 권한을 부여하는 데 사용
액세스 제어 목록

퍼블릭 액세스 차단

퍼블릭 액세스 차단을 사용하면 AWS 계정 수준과 버킷 수준 모두에서 Amazon S3 리소스에 대한 퍼블릭 액세스를 관리할 수 있으므로 데이터를 공개적으로 사용할 수 없게 된다

Amazon S3 퍼블릭 액세스 차단 설정

모든 퍼블릭 액세스 차단
새 ACL을 통해 부여된 퍼블릭 액세스 차단
ACL을 통해 부여된 퍼블릭 액세스 차단
새로운 퍼블릭 버킷 정책을 통해 허용된 퍼블릭 액세스 차단
퍼블릭 버킷 정책을 통해 부여된 퍼블릭 및 교차 계정 액세스 차단

액세스 정책

Amazon S3 리소스의 권한을 관리하기 위해 한 가지 유형의 정책 또는 두 가지 정책 조합을 사용하여 선택 나으

리소스 정책 - 누가 어떤 리소스에 액세스 할 수 있는지 설명 → 리소스는 버킷 및 객체와 같은 리소스에 연결됨
사용자 정책 OR IAM 정책 - 사용자에게 연결된 액세스 정책

버킷 정책

다른 AWS 계정 또는 IAM 사용자에게 버킷과 버킷의 객체에 대한 액세스 권한을 부여하려면 버킷 정책을 연결해야함
사용자 또는 계정에 대한 액세스 권한을 부여하기 때문에 버킷 정책은 정책 내에서 보안 주제(계정, 사용자, 역할 또는 서비스) 엔터티를 정의해야함

버킷 정책을 사용해야 하는 경우

IAM 역할을 사용하지 않고 다른 AWS 계정 또는 다른 계정의 사용자에게 교차 계정 권한을 부여해야함
IAM 정책은 사용자, 그룹, 역할의 크기 제한에 도달
Amazon S3 환경에서 액세스 제어 정책을 유지하는 것을 선호
버킷 및 사용자 정책 모두 모든 Amazon S3 작업에 대한 권한 부여를 하지만 사용자 정책은 계정의 사용자에 대한 권한을 관리하기 위한 것

IAM 정책

IAM을 사용하여 Amazon S3 리소스에 대한 액세스를 관리할 수 있음
내 계정으로 IAM 사용자, 그룹, 역할을 만들고 액세스 정책을 연결하면 Amazon S3 등 AWS 리소스에 액세스할 수 있음
사용자: 2KB, 그룹: 5KB, 역할: 10KB의 크기 제한이 있음
보안 주체가 정책이 적용되는 사용자 이므로 사용자 정책에는 보안 주제가 나열되어 있지 않음

쿼리 문자열 인증

쿼리 문자열을 사용하여 URL을 통해 완전히 표현된 요청을 만들 수 있다

미리 서명된 URL

기본적으로 모든 객체와 버킷은 비공개이며 객체 소유자만 이러한 객체에 액세스할 수 있는 권한을 가짐. 객체 소유자는 AWS 자격 증명이 없는 다른 사용자와 객체를 공유 가능. 미리 서명된 URL을 만들어 객체를 다운로드할 수 있는 시간 제한 권한을 부여 할 수 있음.

Amazon S3 객체 소유권

객체 작성가 - 객체를 작성하는 계정이 객체를 소요
버킷 소유자 선호 - bucket-owner-full-control ACL로 업로드된 경우 버킷 소유자가 객체를 소유. 이 설정 및 미리 준비된 ACL이 없으면 객체가 버킷에 업로드 되지만 업로드 계정의 소유로 유지

Access Analyzer

Amazon S3 콘솔에서 Amazon S3용 Access Analyzer를 사용하여 퍼블릭 또는 공유 액세스를 부여하는 ACL, 버킷 정책 또는 액세스 포인트 정책이 있는 모든 버킷을 검토 가능

실수로 인한 퍼블릭 액세스를 방지 하는 방법

권장 사항
계정 수준에서 Amazon S3 퍼블릭 액세스 차단을 사용하여 버킷에 대한 퍼블릭 액세스를 차단

기존 버킷 ACL 및 버킷 정책을 감사

적절한 역할 및 사용 권한을 구성하여 퍼블릭 액세스 차단 설정을 변경할 수 있는 기증을 제한

금기 사항
Amazon S3의 정적 웹 사이트 호스팅과 같이 공개되어야 한다는 명시적인 이유가 없는 한 퍼블릭 액세스를 허용하지 x

문제를 해결할 수 있는 방법으로 퍼블릭 액세스를 허용 x, 시간을 들여 사용 권한/액세스 정책을 점진적으로 검토하여 액세스 문제를 파악

  1. 데이터 암호화
    전송 중인 데이터 및 미사용 데이터

데이터 보호란 전송 중과 저장 시 데이터를 보호하는 것

SSL/TLS를 사용하거나 클라이언트 측 암호화를 사용하여 전송 중인 데이터를 보호 가능 → 데이터 기밀성, 무결성

서버 측 암호화

서버 측 암호화를 사용하는 경우 Amazon S3에서는 객체를 디스크에 저장하기 전에 암호화하고 객체를 다운로드할 때 이를 복호화

암호화 옵션

SSE-S3 - 서버 측 암호화를 사용하는 경우 각 객체는 고유 키로 암호화
SSE-KMS - 저장된 CMK(고객 마스터 키)를 사용한 서버 측 암호화는 SSE-S3와 유사, 무단 액세스에 대응하여 추가적인 보호를 제공하는 CMK를 사용하려면 별도의 권한 필요, CMK의 사용 시기와 사용자를 보여주는 감사 추적 제공, 고객 관리형 CMK를 생성하고 관리하도록 선택하나 사용자, 서비스 및 리전에 고유한 AWS 관리형 CMK를 사용 가능

클라이언트 측 암호화

Amazon S3로 보내기 전에 민감한 데이터를 암호화하는 것

클라이언트 측 암호화를 사용하는 경우 암호화가 로컬에서 수행되며 데이터는 실행 환경을 암호화 되지 않은 상태로 두지 x

클라이언트 측 암호화 활성화

AWS Key Management Service에 저장된 고객 마스터 키 사용. 이 옵션을 사용하면 Amazon S3에서 데이터를 업로드 하거나 다운로드할 대 클라이언트 측 암호화에 AWS KMS CMK를 사용할 수 있음
애플리케이션 내에 저장한 마스터 키를 사용. 이옵션을 사용하여 Amazon S3 암호화 크라이언트에 클라이언트 측 마스터 키를 제공. 클라이언트에서는 임의로 생성하는 데이터 암호화 키를 암호화하기 위해서만 이 마스터 키를 사용

  1. Amazon S3 서비스 통합
    데이터 레이크

모든 정형 및 비정형 데이터를 무제한으로 마이그레이션, 저장 및 관리할 수 있는 중앙 집중식 리포지토리

0개의 댓글