IaaS クラウドで重要なProgrammable Infrastructure
Query API の認証
Query API を利用した場合、Eucalyptus に渡される情報はリクエストパラメータのみとなります。このため、リクエストパラメータにユーザーID に相当する情報を付与しています。これが「AccessKey」です。ユーザーごとに対応するAccessKey がEucalyptus のデータベースに保存されているので、AccessKey を送付することでそのリクエストが誰から発行されたものなのかを特定できます。
ただし、そのままでは、AccessKey が盗まれてしまうと誰でもそのユーザーになり済ますことができてしまいます。そのため、そのメッセージを送付したユーザーが正当であることを保証するためにAccessKey と対になるSecretKey を利用します。
HTTP POST でリクエストを発行する際、AccessKey とともにSecretKey を用いて生成したSignature をパラメータに追加して、リクエストを送付します。リクエストを受け取ったEucalyptus はデータベース内に保持されている対応するSecretKey を同じ手順で暗号化し、同じSignature が生成されるかどうかで認証を行います( 図3 )。これにより、正しいSecretKey を知るユーザーからのメッセージか、不正なメッセージかを判断できます。
図3:Query API の真正性(クリックで拡大) |
Query API ではSignature を生成する方式を「SignatureVersion」というバージョンで指定できます( 表2 )。Query API では実際に利用するAPI 名のほかに、どのバージョンのSignature 生成方式を利用したか、暗号化のアルゴリズムとして何を利用したかをそれぞれサーバに送信します。
表2:Signature のバージョン
クリックで拡大 |
◆◇◆◇ NOTE SOAP API とQuery API の使い分け ◆◇◆◇
本節で述べたように、Eucalyptus では2 つのAPI を提供していますが、どのように使い分ければよいのか判断に迷うかもしれません。それぞれの特徴として、SOAP API は非常に強固なセキュリティレベルを確保できること、Query API はリクエストパラメータのみで構成されるため非常にシンプルなAPI 方式であることが挙げられます。Amazon のように全世界に公開されているパブリッククラウドである場合、SOAP API のようなセキュリティレベルが求められるかもしれませんが、プライベートクラウドのように限られた範囲の利用である場合は、利用が簡単なQuery API を利用するのがよいでしょう。なお、本書で紹介するAmazon EC2 に対応したGUI/CUI クライアントはすべてQuery API を利用しています。
Eucalyptusのインストールから設定、APIの利用方法やマシンイメージの作成方法などを丁寧に解説。AWSとの連携など、今後のトレンドであるハイブリッドクラウドやインタークラウド(クラウド相互互換)についても言及。GoogleやAmazonなどが提供するクラウド環境を社内インフラを用いて独自に構築できる。
羽深 修/志田 隆弘/田中 智文
(NTTデータ先端技術株式会社)著
価格:3,990円 (本体 3,800円+税)
発売日:2011年5月25日発売
ISBN:978-4-8443-3025-7
発行:インプレスジャパン