검색

2.3.2. S3 인증

download PDF

Ceph Object Gateway에 대한 요청은 인증되거나 인증되지 않을 수 있습니다. Ceph Object Gateway는 인증되지 않은 요청이 익명 사용자가 전송된다고 가정합니다. Ceph Object Gateway는 카나리아 ACL을 지원합니다.

대부분의 사용 사례의 경우 클라이언트는 Amazon SDK의 AmazonS3Client 및 Python Boto와 같은 기존 오픈 소스 라이브러리를 사용합니다. 오픈 소스 라이브러리를 사용하면 액세스 키와 시크릿 키를 전달하면 라이브러리에서 요청 헤더와 인증 서명을 빌드합니다. 그러나 요청을 작성하고 서명할 수도 있습니다.

요청을 인증하려면 Ceph Object Gateway 서버로 전송하기 전에 요청에 대한 액세스 키 및 기본 64 인코딩 해시 기반 메시지 인증 코드(HMAC)를 포함해야 합니다. Ceph Object Gateway는 S3 호환 인증 방법을 사용합니다.

예제

HTTP/1.1
PUT /buckets/bucket/object.mpeg
Host: cname.domain.com
Date: Mon, 2 Jan 2012 00:01:01 +0000
Content-Encoding: mpeg
Content-Length: 9999999

Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET

위 예에서 ACCESS_KEY 를 액세스 키 ID 뒤에 콜론(:)의 값으로 바꿉니다. HASH_OF_HEADER_AND_SECRET 을 정식화된 헤더 문자열 해시 및 액세스 키 ID에 해당하는 시크릿으로 교체합니다.

헤더 문자열 및 시크릿의 해시 생성

헤더 문자열 및 시크릿의 해시를 생성하려면 다음을 수행합니다.

  1. 헤더 문자열의 값을 가져옵니다.Gets the value of the header string.
  2. 요청 헤더 문자열을 표준 형식으로 정규화합니다.
  3. SHA-1 해시 알고리즘을 사용하여 HMAC를 생성합니다.
  4. hmac 결과를 base-64로 인코딩합니다.

헤더 정규화

헤더를 표준 형식으로 정규화하려면 다음을 수행합니다.

  1. 모든 content- 헤더를 가져옵니다.
  2. Content- type 및 content- md5 제외한 모든 content- 헤더를 제거합니다.
  3. content- 헤더 이름이 소문자인지 확인합니다.
  4. 사전순 으로 콘텐츠 헤더를 정렬합니다.
  5. 날짜 헤더가 있는지 확인 및 지정된 날짜가 오프셋이 아닌 kafka를 사용하는지 확인합니다.
  6. x-amz- 로 시작하는 모든 헤더를 가져옵니다.
  7. x-amz- 헤더가 모두 소문자인지 확인합니다.
  8. X -amz- 헤더를 사전순으로 정렬합니다.
  9. 동일한 필드 이름의 여러 인스턴스를 단일 필드로 결합하고 필드 값을 쉼표로 구분합니다.
  10. 헤더 값의 공백과 줄 바꿈을 하나의 공백으로 바꿉니다.
  11. 콜론 앞과 뒤에 공백을 제거합니다.
  12. 각 헤더 뒤에 새 행을 추가합니다.
  13. 헤더를 요청 헤더에 다시 병합합니다.

HASH_OF_HEADER_AND_SECRET 을 base-64로 인코딩된 HMAC 문자열로 바꿉니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.