다큐멘트 센터 Object Storage API Include Signatures in Authorization Header

Include Signatures in Authorization Header

최신 업데이트:2025-08-22 14:59:20

서명(Signature) 설명

원본 요청(서명 정보 없이 발송한 경우)

클라이언트에서 OS로 HTTP 요청을 서명 정보 없이 전송하려는 경우, 요청은 다음과 같습니다:

DELETE /mine-type.mp4 HTTP/1.1
Host: wcstest-r9-private.s3-cn-south-1.wcsapi.com
Range:0-9
x-wos-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-wos-date:20201103T104419Z

서명된 요청
서명을 위한 절차를 완료한 후, 인증 정보를 포함하는 Authorization 헤더를 요청에 추가할 수 있습니다. 이 헤더는 다음 정보를 포함합니다:

  • 사용된 서명 알고리즘 (WOS-HMAC-SHA256)
  • Credential 범위(Access Key ID 포함)
  • 서명에 포함된 헤더 목록
  • 계산된 Signature

서명이 추가된 요청은 다음과 같습니다:

DELETE /mine-type.mp4 HTTP/1.1
Host: wcstest-r9-private.s3-cn-south-1.wcsapi.com
Authorization: WOS-HMAC-SHA256 Credential=2cd1baf7681435ce4a298e9df3eb36958e725394/20201103/cn-south-1/wos/wos_request, SignedHeaders=host;x-wos-content-sha256;x-wos-date, Signature=0243fe336dc075f95add64c5fe980ae6fd0446b243e0f301e4ad75d32d96dc6a
Range:0-9
x-wos-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-wos-date:20201103T104419Z

예시 1: DeleteObject

이 예제에서 사용된 데이터는 다음과 같습니다:

  • AccessKeyId: 2cd1baf7681435ce4a298e9df3eb36958e725394
  • SecretKey: 968d43bc594af8622923d0681ddc367b35a8b23b
  • 요청 타임스탬프: 20201103T104419Z
  • 버킷 이름: wcstest-r9-private
  • 스토리지 영역: cn-south-1

예를 들어 wcstest-r9-private에서 /mine-type.mp4 파일을 삭제하려는 경우, 요청은 다음과 같습니다:

DELETE /mine-type.mp4 HTTP/1.1
Host: wcstest-r9-private.s3-cn-south-1.wcsapi.com
Authorization: <Authorization>
Range:0-9
x-wos-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-wos-date:20201103T104419Z

참고: 다운로드(삭제) 요청은 본문 데이터를 제공할 필요가 없으므로, x-wos-content-sha256의 값은 빈 요청 본문의 해시 값입니다.

Signature를 계산하고 Authorization 헤더를 구성하는 단계는 다음과 같습니다:

  1. CanonicalRequest
DELETE
/mine-type.mp4

host:wsmooc.avinfo.cloudv.haplat.net
x-wos-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-wos-date:20201103T104419Z

host;x-wos-content-sha256;x-wos-date
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

참고: DeleteObject의 CanonicalQueryString은 비어 있으므로 세 번째 줄은 빈 줄입니다.

  1. StringToSign
WOS-HMAC-SHA256
20201103T104419Z
20201103/cn-south-1/wos/wos_request
55f35c488a08877ce1bec27b2d852b4d242a135df3e9bc3bd60be027df455216

  1. SigningKey
SingingKey = HMAC-SHA256(HMAC-SHA256(HMAC-SHA256(HMAC-SHA256("WOS" + "EfxET06Dvb2cahG8OBtZH9WRqkB3EXAMPLEKEY","20201103"),"cn-south-1"),"wos"),"wos_request")

  1. Signature
0243fe336dc075f95add64c5fe980ae6fd0446b243e0f301e4ad75d32d96dc6a

  1. Authorization 헤더
WOS-HMAC-SHA256 Credential=2cd1baf7681435ce4a298e9df3eb36958e725394/20201103/cn-south-1/wos/wos_request, SignedHeaders=host;x-wos-content-sha256;x-wos-date, Signature=0243fe336dc075f95add64c5fe980ae6fd0446b243e0f301e4ad75d32d96dc6a

예시 2: GetAvinfo

이 예제에서 사용된 데이터는 다음과 같습니다:

  • AccessKeyId: AKLTAIHGXsvVYxTEXAMPLE
  • SecretKey: EfxET06Dvb2cahG8OBtZH9WRqkB3EXAMPLEKEY
  • 요청 타임스탬프: 20201103T104419Z
  • 공간 이름: wsmooc
  • 스토리지 영역: cn-east-2

예를 들어 wsmooc에서 /video/20201029/0f3de4278bd6438eb871a6daa43c6305/5555555582qq77n8555602653pp77282_b67923f7d7b2459091621637b1808ab3.mp4의 avinfo 정보를 조회하려는 경우, 요청은 다음과 같습니다:

GET /video/20201029/0f3de4278bd6438eb871a6daa43c6305/5555555582qq77n8555602653pp77282_b67923f7d7b2459091621637b1808ab3.mp4?avinfo HTTP/1.1
Host: wsmooc.avinfo.cloudv.haplat.net
Authorization: <Authorization>
x-wos-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-wos-date:20201103T104419Z

참고: 다운로드 요청은 본문을 제공할 필요가 없으므로, x-wos-content-sha256 값은 빈 본문의 해시 값입니다.

Signature를 계산하고 Authorization 헤더를 구성하는 단계는 다음과 같습니다:

  1. CanonicalRequest
GET
/video/20201029/0f3de4278bd6438eb871a6daa43c6305/5555555582qq77n8555602653pp77282_b67923f7d7b2459091621637b1808ab3.mp4
avinfo=
host:wsmooc.avinfo.cloudv.haplat.net
x-wos-content-sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
x-wos-date:20201103T104419Z

host;x-wos-content-sha256;x-wos-date
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

  1. StringToSign
WOS-HMAC-SHA256
20201103T104419Z
20201103/cn-east-2/wos/wos_request
0788dd8e9b3a088477031b2127ac05bfcf960229a636adb54cb387df1e1cb096

  1. SigningKey
SingingKey = HMAC-SHA256(HMAC-SHA256(HMAC-SHA256(HMAC-SHA256("WOS" + "EfxET06Dvb2cahG8OBtZH9WRqkB3EXAMPLEKEY","20201103"),"cn-east-2"),"wos"),"wos_request")

  1. Signature
335265293972c56fa6e0c4453a86c7aa32610e6a6d6809dac4e9fb64700296ed

  1. Authorization 헤더
WOS-HMAC-SHA256 Credential=AKLTAIHGXsvVYxTEXAMPLE/20201103/cn-east-2/wos/wos_request, SignedHeaders=host;x-wos-content-sha256;x-wos-date, Signature=335265293972c56fa6e0c4453a86c7aa32610e6a6d6809dac4e9fb64700296ed

이 문서의 내용이 도움이 되었습니까?
아니오
정상적으로 제출되었습니다.피드백을 주셔서 감사합니다.앞으로도 개선을 위해 노력하겠습니다.