ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS] S3 - 암호화 (Encryption)
    AWS 2024. 2. 12. 15:00

    S3 암호화 유형

    1. 파일 업로드 / 다운로드시

    SSL (Secure Circuit Layer)

    Netscape라는 회사에 의해서 처음 개발되었다.

    인터넷 사용시 도메인 주소 맨 앞에 HTTPS가 붙으므로 사이트는 안전하다라는 뜻

    TLS (Transport Layer Security)

    SSL에서 파생되었지만 SSL보다 뛰어난 보안 업데이트 된 것

    2. 가만히 있을시 

    SSE(Server-Side-Encryption) 

    SEE-S3

    S3 버켓에 저장되어 있는 모든 Object들을 그들만의 고유한 키를 가지고있다

    그러나 SEE-S3는 마스터키라는 것을 가지고 있으며 일정 시간마다 키 값을 변경시킨다.

    API를 접근할 때 부여받는 토큰 역시 특정 시간이 지나면 계속 바뀌는 것처럼 

    마스터가가 생성한 키값은 AES 256비트로 구성되어있다.

    SSE-KMS

    AWS에서 일괄적으로 관리

    KMS 암호화 키를 통하여 누가 언제 어떻게 암호를 풀었는지에 대한 기록이 복원되어있다. ⭢ 체계적인 관리 가능

    SSE-C

    사용자가 암호키를 직접 다룰수 있으며, 키값을 사용자가 변경시켜 줘야한다.

    S3 암호화 과정

    - PUT 요청이 생성됨 : 일반적으로 S3 파일을 업로드할 시 PUT 요청이 들어간다.

    위사진은 PUT요청의 헤더

    파일이름, 버켓이름, 언제 업로드 되었는지, 파일 타입 etc (그밖에 메타데이터들)

     

    헤더에 x-amz-server-side-encryption-parameter

    만약 파일을 S3에 업로드할 시 PUT요청에 ⭡이 들어있다면 S3는 사용자가 암호화 요청을 한 것으로 간주하고 암호화를 걸어준다.

    이것은 암호화 알고리즘 중 하나이며 사용자가 S3에서 임의로 암호화 알고리즘 유형을 정해줄수 있다.

    위 예시는 AES-256으로 설쟁했다고 헤더에서 확인 가능

    Q. 암호화가 걸리지 않은 파일을 버켓에 못올리는 기능은 없을까?

    A. 있다. 버켓 정책 설정에 설정한다. 

Designed by Tistory.