[AWS S3, NCP Object Storage] CLI를 사용한 SSE-C 암호화
Paul Granduer Lee /클라우드 서비스

[AWS S3, NCP Object Storage] CLI를 사용한 SSE-C 암호화

각 클라우드 플랫폼에서는 클라우드형 스토리지 서비스를 제공한다.

AWS - S3, NCP - Object Storage 라는 서비스를 제공하고 있다.

SSE-C란? Server Side Encserver side encryption with customer provided key의
약자로 고객에게 제공된 고객의 키(AES256)의 암호키를 이용한 암호화 방식을 말한다.

각 스토리지에는 다양한 타입의 파일이 업로드 될 수 있는데, 보안상 파일을 평문그대로 업로드 하지 않고 암호화하여 업로드 할 수 있도록 Side 서비스를 제공한다.

단, AWS의 경우 현재는 S3내 암호화 옵션을 활성화하면 업/다운로드 되는 파일에 대해 자동으로 암/복호화를 수행해주기 때문에 별도의 작업이 필요없어서 SSE-C를 굳이 사용하고 있지는 않는다.

AWS S3 암호화 확인

 

 

NCP는 SSE-C 암호화를 사용해야 하는 상황으로 아래와 같이 진행.

 

암호화 개인키 발급 방법.(Base64 Encoded AES-256 Key)

  1. dd if=/dev/urandom bs=1 count=32 > sse.key

  2. https://www.digitalsanctuary.com/aes-key-generator-free 에서 AES256 키 다운로드
    > echo "<AES256 key>" | base64 -d > ./sse.key

 

암호화 업로드.

#s3api CLI를 사용한 sse-c
aws --endpoint-url=<NCP URL> s3api put-object --bucket <버킷명> --key <버킷path및 저장될 파일명> --body <업로드파일> --sse-customer-algorithm=AES256 --sse-customer-key=fileb://<key파일>


#s3 CLI를 사용한 sse-c
aws --endpoint-url=<NCP URL> s3 cp C:\setup.log s3://버킷명/버킷path및 저장될 파일명 --sse-c=AES256 --sse-c-key=fileb://<key파일>

 

암호화 다운로드.


#s3api CLI를 사용한 sse-c

aws --endpoint-url=<NCP URL> s3api get-object --bucket <버킷명> --key <버킷path및 다운로드 대상 파일명> <다운로드파일명> --sse-customer-algorithm=AES256 --sse-customer-key=fileb://<key파일명

#s3 CLI를 사용한 sse-c
aws --endpoint-url=<NCP URL>s3 cp s3://버킷명/버킷path및 다운로드 대상 파일명 ./ --sse-c=AES256 --sse-c-key=fileb://<key파일명>

 

암호화 확인.