2.3. 認証およびアクセス制御リスト


Ceph Object Gateway への要求は、認証または認証解除のいずれかになります。Ceph Object Gateway は、認証されていないリクエストが匿名ユーザーによって送信されることを前提としています。Ceph Object Gateway は、固定 ACL をサポートしています。

2.3.1. 認証

ほとんどのユースケースでは、クライアントは Java 用の Amazon SDK の AmazonS3Client などの既存のオープンソースライブラリーを使用し、Python Boto ではアクセスキーとシークレットキーを渡すだけで、ライブラリーは要求ヘッダーと認証署名をビルドします。ただし、リクエストを作成して署名することもできます。

リクエストの認証には、Ceph Object Gateway サーバーに送信される前に、アクセスキーとベース 64 でエンコードされた Hash-based Message Authentication Code (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 の値に置き換え、その後にコロン()を追加 します。&lt ;hash_of_header_and_secret > を、正規化されたヘッダー文字列のハッシュおよびアクセスキー ID に対応するシークレットに置き換えます。

ヘッダー文字列およびシークレットのハッシュを生成するには、以下を行う必要があります。

  1. ヘッダー文字列の値を取得します。
  2. 要求ヘッダー文字列を正規形式に正規化します。
  3. SHA-1 ハッシュアルゴリズムを使用して HMAC を生成します。
  4. hmac の結果を base-64 としてエンコードします。

ヘッダーを正規の形式に正規化するには、以下を行います。

  1. すべての content- ヘッダーを取得します。
  2. content-type および content-md5 以外の content- ヘッダーをすべて削除します。
  3. content- ヘッダー名が小文字であることを確認します。
  4. content- ヘッダーの辞書式で並べ替えます。
  5. Date ヘッダー AND があることを確認します。指定した日付が、オフセットではなく GMT を使用していることを確認してください。
  6. x-amz- で始まるヘッダーをすべて取得します。
  7. x-amz- ヘッダーがすべて小文字であることを確認します。
  8. x-amz- ヘッダーの辞書式で並べ替えます。
  9. 同じフィールド名の複数のインスタンスを単一のフィールドに組み合わせ、フィールド値をコンマで区切ります。
  10. ヘッダー値の空白文字および改行文字を、単一スペースに置き換えます。
  11. コロンの前後に空白を削除します。
  12. 各ヘッダーの後に新しい行を追加します。
  13. ヘッダーを要求ヘッダーにマージします。

< hash_of_header_and_secret > を base-64 でエンコードされた HMAC 文字列に置き換えます。

詳細は、Amazon Simple Storage Service ドキュメントの Signing and Authenticating REST Requests セクションを参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.