S3의 서버 측 암호화 및 다운로드 경로

2941 단어 encryptionkmsS3AWS

TL;DR



이하의 조합의 다운로드 여부를 조사할 기회가 있었으므로 정리합니다.
  • 서버 측 암호화 유형
  • 없음
  • SSE-S3
  • SSE-KMS

  • 다운로드 경로
  • 정적 호스팅
  • Get Object URL
  • Presigned URL
  • CloudFront


  • 결과만 신경이 쓰이는 사람은 결론 에 날아 주세요.

    서버측 암호화



    S3에는 서버측 암호화(Server Side Encryption, SSE)라는 기능이 있습니다.
    보존시에 암호화가 행해져 취득시에 복호되기 때문에, 이용자는 별로 의식하지 않고 오브젝트를 암호화할 수가 있습니다.
    공식 문서

    서버측 암호화 유형



    서버측 암호화에는 현재 세 가지 암호화 방법이 있습니다.

    SSE-C를 이용하는 장면은 (개인적으로) 별로 없기 때문에, 이번은 「암호화 없음」 「SSE-S3」 「SSE-KMS」를 대상으로 조사를 실시하기로 합니다.

    SSE-S3



    AWS에서 제공하는 S3용 암호화 키를 사용하여 암호화합니다.
    공식 문서

    SSE-KMS



    사용자가 AWS KMS에서 생성한 키를 사용하여 암호화합니다.
    공식 문서

    SSE-C



    사용자가 만든 키를 사용하여 암호화를 수행합니다.
    객체를 S3에 업로드할 때와 다운로드할 때 암호화 키를 지정합니다.
    AWS에 암호화 키를 업로드하지 않고도 손쉽게 관리할 수 있습니다.
    공식 문서

    S3의 객체 다운로드 경로



    이제 S3의 객체를 응용 프로그램에서 검색하는 방법에는 여러 가지가 있습니다.
  • S3의 정적 사이트 호스팅 기능
  • S3의 Get Object URL
  • S3의 Presigned URL( SigV4 )
  • CloudFront Origin으로 지정
  • 애플리케이션에서 AWS SDK로 가져오기

  • 애플리케이션에서 AWS SDK를 사용하는 경우, 당연히 서버 측 암호화에 상관없이 검색할 수 있으므로 이번 조사에서는 대상에서 제외합니다.

    구현



    Terraform에서 사쿠와 조사 대상 S3 버킷이나 CloudFront 등을 구현했습니다.


    결론



    결과는 다음과 같습니다.



    SSE 없음
    SSE-S3
    SSE-KMS


    정적 호스팅


    ×

    Get Object URL


    ×

    Presigned URL




    CloudFront


    ×


    요구 사항에 달려 있지만 SSE-S3가 무난할까.



    SSE-KMS+CloudFront는 Lambda Edge에서 서명을 부여하여 해독할 수 있는 것 같습니다.
    htps : // 아 ws. 아마존. 이 m / jp / b ぉ gs / 네토 ぉ r ㅇ ㅇ ㅇ f로 ms3-우신 g-c

    좋은 웹페이지 즐겨찾기