고객 제공 키를 사용한 서버 측 암호화(SSE-C)

SSE-C는 오브젝트에 적용됩니다. 고객 관리 키를 사용하는 오브젝트 또는 해당 메타데이터를 읽거나 쓰는 요청이 필수 암호화 정보를 HTTP 요청의 헤더로 전송합니다. 구문은 S3 API와 동일하며 SSE-C를 지원하는 S3 호환 가능 라이브러리가 IBM Cloud® Object Storage에 대해 예상대로 작동합니다.

SSE-C 헤더를 사용하는 모든 요청은 SSL을 사용하여 전송되어야 합니다. 응답 헤더의 ETag 값은 오브젝트의 MD5 해시가 아니지만 랜덤으로 생성된 32바이트 16진 문자열입니다.

일반적인 PUT 오브젝트 요청은 다음 헤더를 사용할 수 있습니다.

헤더 유형 설명
x-amz-server-side-encryption-customer-algorithm 문자열 이 헤더는 x-amz-server-side-encryption-customer-key 헤더에 저장된 암호화 키로 사용할 알고리즘 및 키 크기를 지정하는 데 사용됩니다. 이 값은 문자열 AES256으로 설정해야 합니다.
x-amz-server-side-encryption-customer-key 문자열 이 헤더는 서버 측 암호화 프로세스에 사용되는 AES 256 키의 Base 64 인코딩 바이트 문자열 표시를 전송하는 데 사용됩니다.
x-amz-server-side-encryption-customer-key-MD5 문자열 이 헤더는 RFC 1321에 따라 암호화 키의 base64 인코딩 128비트 MD5 요약을 전송하는 데 사용됩니다. 오브젝트 저장소는 이 값을 사용하여 x-amz-server-side-encryption-customer-key로 전달되는 키가 전송 및 인코딩 프로세스 중에 손상되지 않았음을 검증합니다. 키를 Base 64로 인코딩하려면 먼저 키에서 요약을 추정해야 합니다.

cURL 명령 은 다음과 같습니다.

curl -v -T $FILE https://$ENDPOINT/$BUCKET  \
   -H "Authorization: bearer $TOKEN" \
   -H "Content-MD5: $MD5_OBJECT_HASH" \
   -H "x-amz-server-side-encryption-customer-algorithm: AES256" \
   -H "x-amz-server-side-encryption-customer-key:$ENCRYPTION_KEY" \
   -H "x-amz-server-side-encryption-customer-key-MD5:$MD5_KEY_HASH"