2.4. ロールベースのアクセス制御

ロールベースのアクセス制御 (RBAC) は管理ユーザーにパーミッションを指定するメカニズムです。JBoss EAP サーバーの管理責任を複数のユーザーに分担でき、各ユーザーは無制限のアクセスを必要としません。JBoss EAP では、管理ユーザーのロールを分離することで、不必要な権限を与えずに、組織の個人やグループ間で責任を簡単に分散できます。これにより、設定、デプロイメント、および管理の柔軟性を維持しながらサーバーやデータのセキュリティーを可能な限り最大限にします。

JBoss EAP の RBAC は、ロールパーミッションと制約の組み合わせによって動作します。事前定義されたロールが 7 つ用意され、各ロールは異なる固定のパーミッションを持ちます。各管理ユーザーには、サーバーの管理時に許可される動作を指定する 1 つ以上のロールが割り当てられます。

JBoss EAP では、RBAC はデフォルトで無効になっています。

標準のロール

JBoss EAP には、MonitorOperatorMaintainerDeployerAuditorAdministrator、および SuperUser の 7 つユーザーロールが事前定義されています。各ロールは、異なるパーミッションのセットを持ち、特定のユースケースに対応します。パーミッションの数は、MonitorOperatorMaintainerAdministratorSuperUser ロールの順に多くなり、それぞれその前のロールのパーミッションを持ちます。Auditor ロールは Monitor ロール、Deployer ロールは Maintainer ロールと似ていますが、特別なパーミッションを持ち、制限が適用されます。

Monitor
Monitor ロールは最も少ないパーミッションを持ち、現在の設定とサーバーの状態のみを読み取りできます。このロールは、サーバーのパフォーマンスを追跡および報告する必要があるユーザーを対象としています。Monitor ロールを持つユーザーはサーバー設定を変更できず、機密のデータや操作にもアクセスできません。
Operator
Operator ロールは Monitor ロールのパーミッションに加え、サーバーのランタイム状態を変更することができます。このため、Operator ロールを持つユーザーはサーバーのリロードおよびシャットダウンを実行でき、Jakarta Messaging 宛先の一時停止および再開も実行できます。Operator ロールは、必要時にサーバーを確実にシャットダウンおよび再起動できるため、アプリケーションサーバーの物理または仮想ホストの責任者に適したロールです。Operator ロールを持つユーザーはサーバー設定を変更できず、機密のデータや操作にもアクセスできません。
Maintainer
Maintainer ロールは、ランタイム状態と、機密データおよび機密操作を除くすべての設定を表示および変更できます。Maintainer ロールは機密データと機密操作にアクセスできない汎用のロールです。Maintainer ロールを持つユーザーには、パスワードやその他の機密情報へのアクセスを許可せずに、サーバー管理に必要なほぼ完全なアクセス権利を付与することができます。Maintainer は機密のデータや操作にはアクセスできません。
Administrator
Administrator ロールは、監査ロギングシステムを除くサーバーのすべてのリソースおよび操作に無制限にアクセスできます。Administrator ロールは機密のデータや操作にアクセスできます。また、このロールはアクセス制御システムも設定できます。Administrator ロールは、機密データを扱う場合やユーザーやロールを設定する場合のみ必要となります。Administrator は監査ロギングシステムにはアクセスできず、Auditor または SuperUser ロールに変わることはできません。
SuperUser
SuperUser ロールには制限がなく、監査ロギングシステムと機密データを含むサーバーのすべてのリソースと操作に完全アクセスできます。RBAC が無効の場合、すべての管理ユーザーは SuperUser ロールと同等のパーミッションを持ちます。
Deployer
Deployer ロールは Monitor ロールと同じパーミッションを持ちますが、デプロイメントと、アプリケーションリソースとして有効になっている他のリソースタイプの設定および状態を変更できます。
Auditor
Auditor ロールは Monitor ロールのパーミッションをすべて持ちます。機密データも閲覧できますが、変更はできません。監査ロギングシステムに完全アクセスできます。SuperUser 以外のロールで監査ロギングシステムにアクセスできるのは Auditor ロールのみです。Auditor は機密データやリソースを変更できず、読み取りのみが許可されます。読み込みアクセスのみが許可されています。

Permissions

Permissions は各ロールの権限を決定します。すべてのロールにすべてのパーミッションがあるわけではありません。SuperUser にはすべてのパーミッションがあり、Monitor のパーミッションは最も少なくなります。各パーミッションは、リソースの単一のカテゴリーへの読み取りアクセスや書き込みアクセスを付与できます。カテゴリーはランタイム状態、サーバー設定、機密データ、監査ログ、およびアクセス制御システムになります。

表2.1 各 Monitor、Operator、Maintainer、および Deployer ロールのパーミッション

 MonitorOperatorMaintainerDeployer

設定と状態の読み取り

機密データの読み取り 2

    

機密データの変更 2

    

監査ログの読み取り/変更

    

ランタイム状態の変更

 

1

永続化設定の変更

  

1

アクセス制御の読み取り/変更

    

1 パーミッションはアプリケーションリソースに制限されます。

表2.2 各 Auditor、Administration、および SuperUser ロールのパーミッション

 AuditorAdministratorSuperUser

設定と状態の読み取り

機密データの読み取り 2

機密データの変更 2

 

監査ログの読み取り/変更

 

ランタイム状態の変更

 

永続化設定の変更

 

アクセス制御の読み取り/変更

 

2 機密データとして考慮されるリソースは機密性を使用して設定されます。

制約

制約とは、指定のリソースリストに対するアクセス制御設定の名前付きセットです。RBAC システムは制約とロールパーミッションの組み合わせを使用して、特定ユーザーが管理操作を実行できるかどうかを決定します。

制約は 3 つの種類に分類されます。

アプリケーション制約
アプリケーション制約は、Deployer ユーザーがアクセスできるリソースおよび属性を定義します。デフォルトで有効になっているアプリケーション制約はコアのみで、デプロイメントとデプロイメントオーバーレイが含まれます。アプリケーション制約には、データソース、ロギング、メール、メッセージング、ネーミング、リソースアダプター、およびセキュリティーも含まれますが、デフォルトでは有効になっていません。これらの制約によって、Deployer ユーザーはアプリケーションをデプロイできるだけでなく、これらのアプリケーションが必要とするリソースを設定および維持できます。
機密性制約
機密性制約は、機密として考慮されるリソースを定義します。通常、機密リソースとは、パスワードなどの秘密のリソースや、ネットワーキング、JVM 設定、システムプロパティーなどのサーバーの操作に重大な影響を与えるリソースのことです。アクセス制御システム自体も機密であると見なされます。機密リソースへの書き込みが許可されるロールは Administrator と SuperUser ロールのみです。Auditor ロールは機密リソースの読み取りのみが許可されます。その他のロールは機密リソースにアクセスできません。
vault 式制約
vault 式制約は、vault 式の読み書きが機密操作として考慮されるかどうかを定義します。デフォルトでは、vault 式の読み書きは機密操作です。

2.4.1. RBAC の設定

RBAC がすでに有効になっている場合は、ユーザーまたはグループレベルで設定を変更するには、SuperUser ユーザーまたは Administrator のロールが割り当てられている必要があります。

手順

  1. 次のコマンドを使用して RBAC を有効にします。

    /core-service=management/access=authorization:write-attribute(name=provider,value=rbac)
  2. JBoss EAP の SuperUser または Administrator として、RBAC を設定します。

    • 読み取り専用アクセス権を持つ Monitor ロールなど、サポートされているロールの 1 つを追加するには、次のコマンドを使用します。

      /core-service=management/access=authorization/role-mapping=Monitor:add()
      注記

      Monitor ロールおよび追加できるその他のサポートされているロールの詳細は、ロールベースのアクセス制御 を参照してください。

    • Monitor ロールなどの特定のロールにユーザーを追加するには、次のコマンドを使用します。

      /core-service=management/access=authorization/role-mapping=Monitor/include=user-timRO:add(name=timRO,type=USER)
    • Monitor ロールなどの特定のロールにグループを追加するには、次のコマンドを使用します。

      /core-service=management/access=authorization/role-mapping=Monitor/include=group-LDAP_MONITORS:add(name=LDAP_MONITORS, type=GROUP)
    • 特定のロールからユーザーまたはグループを除外するには、次のコマンドを使用します。

      /core-service=management/access=authorization/role-mapping=Monitor/exclude=group-LDAP_MONITORS:add(name=LDAP_, type=GROUP)
  3. サーバーまたはホストを再起動して、RBAC 設定で動作できるようにします。

    • ホストマシンを再起動するには、次のコマンドを使用します。

      reload --host=master
    • スタンドアロンモードでサーバーを再起動するには、次のコマンドを使用します。

      reload