第6章 Data Grid サーバーのセキュア化
Data Grid サーバーをネットワーク攻撃と不正アクセスから保護します。
6.1. キャッシュの承認
Data Grid は、リクエストにキャッシュ操作の実行を許可することにより、データへのアクセスを制限できます。
Data Grid は、ID、またはタイプ java.security.Principal
のプリンシパルを、設定内のセキュリティーロールにマップします。たとえば、reader
という名前のプリンシパルは reader
という名前のセキュリティーロールにマップされます。
Data Grid を使用すると、さまざまなロールにアクセス許可を割り当てて、キャッシュ操作を許可できます。たとえば、Cache.get()
には読み取り権限が必要ですが、Cache.put()
には書き込み権限が必要です。
この場合、reader
ロールを持つユーザークライアントがエントリーの記述を試みると、Data Grid はリクエストを拒否し、セキュリティー例外を出力します。ただし、writer
ロールを持つユーザーのクライアントが書き込みリクエストを送信すると、Data Grid は承認を検証し、後続の操作のためにトークンでクライアントを発行します。
6.1.1. キャッシュ認証設定
キャッシュ承認用の Data Grid 設定は以下のとおりです。
<infinispan> <cache-container default-cache="secured" name="secured"> <security> <authorization> 1 <identity-role-mapper /> 2 <role name="admin" permissions="ALL" /> 3 <role name="reader" permissions="READ" /> <role name="writer" permissions="WRITE" /> <role name="supervisor" permissions="READ WRITE EXEC"/> </authorization> </security> <local-cache name="secured"> <security> <authorization roles="admin reader writer supervisor" /> 4 </security> </local-cache> </cache-container> </infinispan>