2.4. ロールベースのアクセス制御
ロールベースのアクセス制御 (RBAC) は管理ユーザーにパーミッションを指定するメカニズムです。JBoss EAP サーバーの管理責任を複数のユーザーに分担でき、各ユーザーは無制限のアクセスを必要としません。JBoss EAP では、管理ユーザーのロールを分離することで、不必要な権限を与えずに、組織の個人やグループ間で責任を簡単に分散できます。これにより、設定、デプロイメント、および管理の柔軟性を維持しながらサーバーやデータのセキュリティーを可能な限り最大限にします。
JBoss EAP の RBAC は、ロールパーミッションと制約の組み合わせによって動作します。事前定義されたロールが 7 つ用意され、各ロールは異なる固定のパーミッションを持ちます。各管理ユーザーには、サーバーの管理時に許可される動作を指定する 1 つ以上のロールが割り当てられます。
JBoss EAP では、RBAC はデフォルトで無効になっています。
標準のロール
JBoss EAP には、Monitor
、Operator
、Maintainer
、Deployer
、Auditor
、Administrator
、および SuperUser
の 7 つユーザーロールが事前定義されています。各ロールは、異なるパーミッションのセットを持ち、特定のユースケースに対応します。パーミッションの数は、Monitor
、Operator
、Maintainer
、Administrator
、SuperUser
ロールの順に多くなり、それぞれその前のロールのパーミッションを持ちます。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 ロールのパーミッション
Monitor | Operator | Maintainer | Deployer | |
---|---|---|---|---|
設定と状態の読み取り | ✘ | ✘ | ✘ | ✘ |
機密データの読み取り 2 | ||||
機密データの変更 2 | ||||
監査ログの読み取り/変更 | ||||
ランタイム状態の変更 | ✘ | ✘ | ✘1 | |
永続化設定の変更 | ✘ | ✘1 | ||
アクセス制御の読み取り/変更 |
1 パーミッションはアプリケーションリソースに制限されます。
表2.2 各 Auditor、Administration、および SuperUser ロールのパーミッション
Auditor | Administrator | SuperUser | |
---|---|---|---|
設定と状態の読み取り | ✘ | ✘ | ✘ |
機密データの読み取り 2 | ✘ | ✘ | ✘ |
機密データの変更 2 | ✘ | ✘ | |
監査ログの読み取り/変更 | ✘ | ✘ | |
ランタイム状態の変更 | ✘ | ✘ | |
永続化設定の変更 | ✘ | ✘ | |
アクセス制御の読み取り/変更 | ✘ | ✘ |
2 機密データとして考慮されるリソースは機密性を使用して設定されます。
制約
制約とは、指定のリソースリストに対するアクセス制御設定の名前付きセットです。RBAC システムは制約とロールパーミッションの組み合わせを使用して、特定ユーザーが管理操作を実行できるかどうかを決定します。
制約は 3 つの種類に分類されます。
- アプリケーション制約
- アプリケーション制約は、Deployer ユーザーがアクセスできるリソースおよび属性を定義します。デフォルトで有効になっているアプリケーション制約はコアのみで、デプロイメントとデプロイメントオーバーレイが含まれます。アプリケーション制約には、データソース、ロギング、メール、メッセージング、ネーミング、リソースアダプター、およびセキュリティーも含まれますが、デフォルトでは有効になっていません。これらの制約によって、Deployer ユーザーはアプリケーションをデプロイできるだけでなく、これらのアプリケーションが必要とするリソースを設定および維持できます。
- 機密性制約
- 機密性制約は、機密として考慮されるリソースを定義します。通常、機密リソースとは、パスワードなどの秘密のリソースや、ネットワーキング、JVM 設定、システムプロパティーなどのサーバーの操作に重大な影響を与えるリソースのことです。アクセス制御システム自体も機密であると見なされます。機密リソースへの書き込みが許可されるロールは Administrator と SuperUser ロールのみです。Auditor ロールは機密リソースの読み取りのみが許可されます。その他のロールは機密リソースにアクセスできません。
- vault 式制約
- vault 式制約は、vault 式の読み書きが機密操作として考慮されるかどうかを定義します。デフォルトでは、vault 式の読み書きは機密操作です。
2.4.1. RBAC の設定
RBAC がすでに有効になっている場合は、ユーザーまたはグループレベルで設定を変更するには、SuperUser
ユーザーまたは Administrator
のロールが割り当てられている必要があります。
手順
次のコマンドを使用して RBAC を有効にします。
/core-service=management/access=authorization:write-attribute(name=provider,value=rbac)
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)
サーバーまたはホストを再起動して、RBAC 設定で動作できるようにします。
ホストマシンを再起動するには、次のコマンドを使用します。
reload --host=master
スタンドアロンモードでサーバーを再起動するには、次のコマンドを使用します。
reload