ロールベースのアクセス制御(RBAC)

ロールベースのアクセス制御(RBAC)は、割り当てられたロールに基づいて、許可されたユーザのみがリソースにアクセスできるようにするセキュリティ手法です。SUSE Multi-Linux Managerでは、RBACによりユーザは明示的に許可されたアクションやリソースへのアクセスのみを実行できるようになり、セキュリティが強化され、管理が簡素化されます。

RBACのコア原則は次のとおりです。

  • Principle of Least Privilege: Granting only the necessary access rights for users to perform their tasks.

  • Granular Control: Providing fine-grained control over specific functionalities.

  • Separation of Duties: Preventing a single user from having too much control over critical processes.

  • Auditability: Allowing for clear tracking of user actions and permissions.

1. RBACの主要概念

効果的なRBAC管理には、以下のコア概念を理解することが重要です。

  • Role: A collection of permissions defining a specific set of capabilities within SUSE Multi-Linux Manager. Roles are assigned to users, granting the user aggregated permissions.

    ロールはユーザに割り当てられ、ユーザに集約された許可を付与します。

  • Permission: An atomic authorization to perform a specific action, access a specific web page or call a specific API endpoint within SUSE Multi-Linux Manager. In SUSE Multi-Linux Manager, permissions are represented by namespaces and their access modes.

  • User: An individual account that interacts with SUSE Multi-Linux Manager. Users are assigned one or more roles.

  • Namespace: A granular unit of access control organized in a tree-like structure. Most namespaces have distinct "View" or "Modify" modes.

2. SUSE Multi-Linux Managerでのユーザロール

SUSE Multi-Linux Managerでは、事前定義されたロールを提供し、オプションで、他のロールの組み合わせを継承して追加のカスタムロールを定義することもできます。

2.1. 事前定義済みロール

事前定義済みロールとその説明の完全なリストについては、administration:users.adoc#administrator-rolesを参照してください。

2.2. 追加のロールの定義

追加のロールを定義するには、次の操作を実行できます。

  • 許可を継承する既存のロールを複数選択する。

  • アクセスを許可する追加のネームスペースを指定する。

3. きめ細かなアクセスのためのネームスペース

ネームスペースはツリーのような構造で構成された、きめ細かなアクセス制御を提供します。ほとんどのネームスペースでは、ネームスペース内のアクセスは「表示」モードと「変更」モードによってさらに細分化されます。

Table 1. 例: イメージ管理のネームスペースとアクセスモード
ネームスペース アクセスモード 説明

cm.build

変更

コンテナまたはKiwiイメージを構築します

cm.image.import

変更

登録済みイメージストアからコンテナイメージを取り込みます

cm.image.list

表示

すべてのイメージを一覧表示します

cm.image.list

変更

イメージを削除します

cm.image.overview

表示

イメージの詳細、パッチ、パッケージ、構築ログ、クラスタ情報を表示します

cm.image.overview

変更

イメージを検査、再構築、削除します

cm.profile.details

表示

イメージプロファイルの詳細を表示します

cm.profile.details

変更

イメージプロファイルを作成し、プロファイルの詳細を編集します

cm.profile.list

表示

すべてのイメージプロファイルを一覧表示します

cm.profile.list

変更

イメージプロファイルを削除します

cm.store.details

表示

イメージストアの詳細を表示します

cm.store.details

変更

イメージストアを作成し、ストアの詳細を編集します

cm.store.list

表示

すべてのイメージストアを一覧表示します

cm.store.list

変更

イメージストアを削除します

ネームスペースとその説明の包括的なリストは、access.listNamespaces APIメソッドを呼び出すことで取得できます。 リクエストおよび応答形式を含む詳細については、SUSE Multi-Linux Manager APIドキュメントを参照してください。

4. RBACの管理

RBACロールと許可の管理は現在、APIを通じてのみ可能です。 Web UIを介してユーザにロールを割り当てるには、 ユーザーを参照してください。

4.1. APIを介したRBACの管理

SUSE Multi-Linux Manager APIは、ロール、許可、およびユーザの割り当てをプログラムで管理するためのメソッドを提供します。

4.1.1. アクセスAPI

これらのAPIメソッドは、ロールとそれに関連するアクセスを管理します。

  • listNamespaces: SUSE Multi-Linux Managerで利用可能なネームスペース、アクセスモード、およびそれらの説明を一覧表示します。

  • listPermissions: ロールに許可されているネームスペースを一覧表示します。

  • listRoles: SUSE Multi-Linux Manager内の既存のロールを一覧表示します。

  • createRole: 新しいロールを作成します。オプションで既存のロールから許可をコピーします。

  • deleteRole: ロールを削除します。

  • grantAccess: ネームスペースへのアクセスを許可します。

  • revokeAccess: ネームスペースへのアクセスを取り消します。

4.1.2. ユーザAPI

以下のAPIメソッドはユーザとロールの割り当てを管理します。

  • listPermissions: ユーザの有効な許可を一覧表示します。

  • listRoles: ユーザの割り当てられたロールを一覧表示します。

  • addRole: ユーザにロールを割り当てます。

  • removeRole: ユーザからロールを削除します。

リクエストおよび応答形式を含む詳細なAPIドキュメントについては、SUSE Multi-Linux Manager APIリファレンスを参照してください。

5. RBACベストプラクティス

これらのベストプラクティスに従うことで、安全で、効率的で、管理しやすいRBAC環境を維持できます。

  • Principle of least privilege: Always grant users the minimum permissions necessary to perform their duties. Avoid overly broad permissions.

  • Regular review: Periodically review assigned roles and permissions for users to ensure they are still appropriate and comply with current security policies.

  • Document roles: Clearly document the purpose and permissions of each custom role you create.

  • Separate duties: Implement roles that enforce separation of duties to prevent a single user from having too much control over critical processes.