3.6. Data Grid 認証

Data Grid は、ロールベースのアクセス制御 (RBAC) を使用してデータへのアクセスを制限し、クラスターの暗号化を使用してノード間の通信を保護します。

ロールと権限

Data Grid 8.2 は、RBAC に使用できる一連のデフォルトのユーザーと権限を提供しますが、次の変更が加えられています。

  • ClusterRoleMapper は、Data Grid がセキュリティープリンシパルを承認ロールに関連付けるために使用するデフォルトのメカニズムです。
  • 新しい MONITOR 権限により、ユーザーは Data Grid 統計にアクセスできます。
  • ユーザーがキャッシュやカウンターなどのリソースを作成および削除するために必要な新しい CREATE 権限。

    注記

    CREATE は、Data Grid 8.1 以前で Protobuf スキーマとサーバースクリプトを作成および削除するためにユーザーが必要とする ___schema_manager および \___script_manager ロールを置き換えます。

    Data Grid 8.2 に移行するときは、Data Grid 8.1 以前で ___schema_manager および \___script_manager のロールを持っていたユーザーに、deployer ロールを割り当てる必要があります。次のようにコマンドラインインターフェイス (CLI) を使用します。

    [//containers/default]> user roles grant --roles=deployer <user>
Cache Manager のパーミッション

表3.2 Data Grid 8.1

パーミッション機能説明

設定

defineConfiguration

新しいキャッシュ設定を定義します。

LISTEN

addListener

キャッシュマネージャーに対してリスナーを登録します。

ライフサイクル

stop

キャッシュマネージャーを停止します。

ALL

-

すべてのキャッシュマネージャーのアクセス許可が含まれます。

表3.3 Data Grid 8.2

パーミッション機能説明

設定

defineConfiguration

新しいキャッシュ設定を定義します。

LISTEN

addListener

キャッシュマネージャーに対してリスナーを登録します。

ライフサイクル

stop

キャッシュマネージャーを停止します。

CREATE

createCache, removeCache

キャッシュ、カウンター、スキーマ、スクリプトなどのコンテナーリソースを作成および削除することができます。

MONITOR

getStats

JMX 統計および metrics エンドポイントへのアクセスを許可します。

ALL

-

すべてのキャッシュマネージャーのアクセス許可が含まれます。

キャッシュ権限

表3.4 Data Grid 8.1

パーミッション機能説明

READ

get, contains

キャッシュからエントリーを取得します。

WRITE

put, putIfAbsent, replace, remove, evict

キャッシュ内のデータの書き込み、置換、削除、エビクト。

EXEC

distexec, streams

キャッシュに対するコードの実行を許可します。

LISTEN

addListener

キャッシュに対してリスナーを登録します。

BULK_READ

keySet, values, entrySet, query

一括取得操作を実行します。

BULK_WRITE

clear, putAll

一括書き込み操作を実行します。

ライフサイクル

start, stop

キャッシュを開始および停止します。

ADMIN

getVersion, addInterceptor*, removeInterceptor, getInterceptorChain, getEvictionManager, getComponentRegistry, getDistributionManager, getAuthorizationManager, evict, getRpcManager, getCacheConfiguration, getCacheManager, getInvocationContextContainer, setAvailability, getDataContainer, getStats, getXAResource

基盤となるコンポーネントと内部構造へのアクセスを許可します。

ALL

-

すべてのキャッシュパーミッションが含まれます。

ALL_READ

-

READ パーミッションと BULK_READ パーミッションを組み合わせます。

ALL_WRITE

-

WRITE パーミッションと BULK_WRITE パーミッションを組み合わせます。

表3.5 Data Grid 8.2

パーミッション機能説明

READ

get, contains

キャッシュからエントリーを取得します。

WRITE

put, putIfAbsent, replace, remove, evict

キャッシュ内のデータの書き込み、置換、削除、エビクト。

EXEC

distexec, streams

キャッシュに対するコードの実行を許可します。

LISTEN

addListener

キャッシュに対してリスナーを登録します。

BULK_READ

keySet, values, entrySet, query

一括取得操作を実行します。

BULK_WRITE

clear, putAll

一括書き込み操作を実行します。

ライフサイクル

start, stop

キャッシュを開始および停止します。

ADMIN

getVersion, addInterceptor*, removeInterceptor, getInterceptorChain, getEvictionManager, getComponentRegistry, getDistributionManager, getAuthorizationManager, evict, getRpcManager, getCacheConfiguration, getCacheManager, getInvocationContextContainer, setAvailability, getDataContainer, getStats, getXAResource

基盤となるコンポーネントと内部構造へのアクセスを許可します。

MONITOR

getStats

JMX 統計および metrics エンドポイントへのアクセスを許可します。

ALL

-

すべてのキャッシュパーミッションが含まれます。

ALL_READ

-

READ パーミッションと BULK_READ パーミッションを組み合わせます。

ALL_WRITE

-

WRITE パーミッションと BULK_WRITE パーミッションを組み合わせます。

キャッシュマネージャーの承認

Data Grid 8.2 以降では、次のように、authentication 要素を cache-container セキュリティー設定に含めることができます。

<infinispan>
  <cache-container name="secured">
    <security>
      <authorization/> 1
    </security>
  </cache-container>
</infinispan>
1
デフォルトのロールと権限でキャッシュマネージャーのセキュリティー認証を有効にします。

次のようにグローバル認証設定を定義することもできます。

<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>
  </cache-container>
</infinispan>
1
キャッシュマネージャーのライフサイクルを制御するには、ユーザー権限が必要です。
2
ロールにプリンシパルをマップ PrincipalRoleMapper の実装を指定します。
3
一連のロールと関連する権限を定義します。

暗黙的なキャッシュ認証

Data Grid 8 は、キャッシュが cache-container から承認設定を継承できるようにすることで使いやすさを向上させるため、各キャッシュのロールとパーミッションを明示的に設定する必要はありません。

<local-cache name="secured">
  <security>
    <authorization/> 1
  </security>
</local-cache>
1
キャッシュコンテナーで定義されたロールと権限を使用します。

Data Grid 8.2 以降、設定に authorization 要素を含めると、カスタムグローバル権限のセットを定義しない限り、デフォルトのロールと権限を使用して、そのキャッシュへのアクセスが制限されます。