StorageGRID WebscaleシステムでのREST APIのセキュリティの実装

StorageGRID Webscaleシステムでは、Transport Layer Security(TLS)接続セキュリティ、サーバ認証、クライアント認証、およびクライアント許可を採用しています。セキュリティの問題について検討する際は、StorageGRID WebscaleシステムでREST APIのセキュリティ、認証、および許可がどのように実装されるかを理解しておくと役立つことがあります。

StorageGRID Webscaleシステムでは、TLSを使用したネットワーク接続を介して送信されたHTTPSコマンドを実行し、接続のセキュリティ、アプリケーションの認証、およびオプションでトランスポートの暗号化を実現します。TLSを使用していないコマンドは拒否されます。オブジェクトが取り込まれた時点で暗号化されている場合、StorageGRID Webscaleシステム内でもオブジェクトのライフサイクルを通じて暗号化されたままになります。

TLSでは、エンティティのクレデンシャルとして証明書を交換することができ、ハッシュ アルゴリズムと暗号化アルゴリズムを使用したネゴシエーションが可能です。

StorageGRID Webscaleシステムのインストール時に、システムのCertificate Authority(CA;認証局)証明書と各ストレージ ノードのサーバ証明書が生成されます。これらのサーバ証明書は、いずれもシステムのCAによって署名されています。このCA証明書を信頼するようにクライアント アプリケーションを設定する必要があります。クライアント アプリケーションからTLSを使用してストレージ ノードに接続する際、ストレージ ノードから提供されたサーバ証明書が信頼されたシステムのCAによって署名されていることを確認することでストレージ ノードを認証できます。

また、すべてのストレージ ノードに共通のカスタム サーバ証明書を1つ用意して、生成されるそれぞれの証明書の代わりに使用することもできます。カスタム サーバ証明書には、管理者が選択したCAによる署名が必要です。この場合、クライアント アプリケーションでのサーバ認証プロセスは同じですが、信頼されたCAが異なります。詳細については、『管理者ガイド』の「証明書の設定」を参照してください。

次の表に、S3およびSwiftのREST APIにおけるセキュリティの問題に対する実装を示します。

セキュリティの問題 REST APIの実装
接続のセキュリティ TLS
サーバ認証 システムのCAによって署名されたX.509サーバ証明書、または管理者から提供されたカスタム サーバ証明書
クライアント認証
  • S3:S3アカウント(アクセス キーIDとシークレット アクセス キー)
  • Swift:Swiftアカウント(ユーザ名とパスワード)
    注:Swift REST APIでは、要求に応じて、OpenStackのKeystone IDサービスを有効にして使用することができます。Keystoneが有効になっている場合は、検証用に追加のトークンを使用する必要があります。Keystoneのサポートを有効にするには、ネットアップの担当者にお問い合わせください。
クライアント許可
  • S3:バケットの所有権と適用可能なすべてのアクセス制御ポリシー
  • Swift:アカウントのadminロールのアクセス