10.4. ロールベースのアクセス制御の定義
- パーミッションは、(読み取り、書き込み、追加、または削除などの) 特定の操作と、これらの操作が適用される IdM LDAP ディレクトリー内のターゲットエントリーを定義します。パーミッションはビルディングブロックで、必要に応じて複数の特権に割り当てることができます。IdM パーミッションを使用すると、どのユーザーがどのオブジェクトにアクセスできるかや、それらのオブジェクトのどの属性にアクセスできるかという制御すら可能になります。IdM を使うと、個別の属性をブラックリスト化したりホワイトリスト化したりすることができるほか、全匿名ユーザー、全認証ユーザー、または特権のあるユーザーの特定グループのみに対するユーザー、グループ、または sudo といった特定の IdM 機能の視認性全体を変更することもできます。パーミッションに対するアプローチがこのように柔軟なことで、たとえば、管理者がユーザーやグループのアクセスをこれらのユーザーやグループが必要とする特定のセクションのみに限定し、他のセクションを完全に見えないようにする場合などに便利になります。
- 特権は、ロールに適用できるパーミッションのグループです。例えば、パーミッションは自動マウントの場所の追加、編集、削除を行うために作成できます。そして、そのパーミッションは FTP サーバーの管理に関連する別のパーミッションと組み合わせることができます。これらは、ファイルシステムの管理に関連する単一の特権を作成するために作成できます。
注記
Red Hat Identity Management では、特権は、パーミッションが作成されてからロールが作成されるというアトミックな単位のアクセスコントロールという固有の意味を持ちます。一時的に追加の特権を取得した通常のユーザーというコンセプトとして 特権のエスカレーションは、Red hat Identity Management に存在しません。特権は、ロールベースアクセス制御 (RBAC) を使用してユーザーに割り当てられます。ユーザーはアクセスを付与するロールを持つか、持たないかのいずれかになります。ユーザーは別として、特権はユーザーグループ、ホスト、ホストグループ、ネットワークサービスにも割り当てられます。この性質上、特定のネットワークサービスから一連のホスト上の一連のユーザーによる操作の詳細な制御が可能になります。 - ロールは、ロールに指定されたユーザーが所有する特権のリストです。
表10.1 Red Hat Identity Management で事前に定義されているロール
ロール | 特権 | 説明 |
---|---|---|
ヘルプデスク
| ユーザーの変更とパスワードのリセット、グループメンバーの変更 | 簡単なユーザー管理タスクを行う |
IT セキュリティスペシャリスト
| ネットグループ管理者、HBAC管理者、sudo 管理者 | ホストベースのアクセスコントロール、sudo ルールなどのセキュリティポリシーの管理を行う |
IT スペシャリスト
| ホスト管理者、ホストグループ管理者、サービス管理者、自動マウント管理者 | ホストの管理を行う |
セキュリティアーキテクト
| 委任管理者、レプリカ管理者、書き込み IAP 設定、パスワードポリシー管理者 | Identity Management 環境の管理、信頼の作成、レプリカ合意の作成を行う |
ユーザー管理
| ユーザー管理者、グループ管理者、stage ユーザー管理者 | ユーザーとグループの作成を行う |
10.4.1. ロール
10.4.1.1. Web UI でのロールの作成
- トップメニューで IPA Server タブを開き、Role Based Access Control サブタブを選択します。
- ロールベースのアクセスコントロール説明のトップリストにある追加リンクをクリックします。
図10.6 新規ロールの追加
- ロール名と説明を入力します。
図10.7 ロール追加のフォーム
- Users タブの上部で、グループ追加の場合は Users Groups タブで、Add をクリックします。
図10.8 ユーザーの追加
- 左側のユーザーを選択し、右矢印 Prospective コラムに移動させます。を使って
図10.9 ユーザーの選択
- Privileges タブの上部で をクリックします。
図10.10 権限の追加
- 左側の権限を選択し、右矢印 Prospective コラムに移動させます。を使って
図10.11 権限の選択
10.4.1.2. コマンドライン でのロールの作成
- 新規ロールを追加します。
[root@server ~]# kinit admin [root@server ~]# ipa role-add --desc="User Administrator" useradmin ------------------------ Added role "useradmin" ------------------------ Role name: useradmin Description: User Administrator
- 必要な権限をロールに追加します。
[root@server ~]# ipa role-add-privilege --privileges="User Administrators" useradmin Role name: useradmin Description: User Administrator Privileges: user administrators ---------------------------- Number of privileges added 1 ----------------------------
- 必要なグループをロールに追加します。この場合では、既存の単一グループ
useradmins
を追加しています。[root@server ~]# ipa role-add-member --groups=useradmins useradmin Role name: useradmin Description: User Administrator Member groups: useradmins Privileges: user administrators ------------------------- Number of members added 1 -------------------------
10.4.2. パーミッション
10.4.2.1. Web UI での新規パーミッションの作成
- トップメニューで IPA Server タブを開き、Role Based Access Control サブタブを選択します。
- Permissions タスクリンクを選択します。
図10.12 パーミッションタスク
- パーミッション一覧の上部にある追加をクリックします。
図10.13 新規パーミッションの追加
- 表示されるフォームで新規パーミッションのプロパティーを定義します。
図10.14 パーミッション追加のフォーム
- フォームの下にある Add をクリックしてパーミッションを保存します。
- 新規パーミッションの名前を入力します。
- 適切な Bind rule type を選択します。
- permission がデフォルトのパーミッションタイプになります。これでアクセスが権限とロールによって付与されます。
- all を選択すると、パーミッションがすべての認証ユーザーに適用されます。
- anonymous を選択すると、非認証ユーザーを含むすべてのユーザーにパーミッションが適用されます。
注記
デフォルト以外の bind rule type のパーミッションを権限に追加することはできません。また、権限に既にあるパーミッションをデフォルト以外の bind rule type に設定することもできません。 - パーミッションが付与する権限を Granted rights で選択します。
- パーミッションのターゲットエントリーを識別する方法を定義します。
- Type では、ユーザー、ホスト、またはサービスなどのエントリータイプを指定します。Type で値を設定すると、そのエントリータイプの ACI でアクセス可能な全属性が Effective Attributes に表示されます。Type を定義すると、Subtree と Target DN が定義済みのいずれかの値に設定されます。
- Subtree は、サブツリーエントリーを指定します。このサブツリーエントリー以下のすべてのエントリーがターゲットになります。Subtree はワイルドカードや存在しないドメイン名 (DN) を受け付けないので、既存のサブツリーエントリーを提供してください。例を示します。
cn=automount,dc=example,dc=com
- Extra target filter では、LDAP フィルターを使ってパーミッションが適用されるエントリーを特定します。このフィルターは有効な LDAP フィルターであればどれでも構いません。例を示します。
(!(objectclass=posixgroup))
IdM は、提供されたフィルターの有効性を自動的にチェックします。無効なフィルターが入力された場合は、パーミッションを保存使用とすると IdM が警告します。
- Target DN はドメイン名 (DN) を指定し、ワイルドカードを受け付けます。例を示します。
uid=*,cn=users,cn=accounts,dc=com
- Member of group は、特定のグループのメンバーにターゲットフィルターを設定します。
フィルター設定を記入して Add をクリックすると、IdM がフィルターの有効性を確認します。すべてのパーミッション設定が適切であれば、IdM は検索を実行します。設定が適切でない場合、IdM は該当設定についてのメッセージを表示します。 - Type を設定する場合は、Effective attributes で利用可能な ACI 属性一覧から選択します。Type を使用しない場合は、Effective attributes フィールドに手動で属性を追加します。属性は 1 つずつ追加します。複数の属性を追加するには、Add をクリックして別の入力フィールドを追加します。
重要
パーミッションの属性を設定しない場合は、デフォルトで全属性が含まれることになります。
10.4.2.2. コマンドライン での新規パーミッションの作成
ipa permission-add
コマンドを発行します。対応するオプションを提供して、パーミッションのプロパティーを指定します。
- プロパティー名を提供します。例を示します。
[root@server ~]# ipa permission-add "dns admin permission"
--bindtype
では、bind rule type を指定します。このオプションはall
、anonymous
、およびpermission
の引数を受け付けます。例を示します。--bindtype=all
--bindtype
を使用しない場合は、タイプは自動的にデフォルトのpermission
の値に設定されます。注記
デフォルト以外の bind rule type のパーミッションを権限に追加することはできません。また、権限に既にあるパーミッションをデフォルト以外の bind rule type に設定することもできません。--permissions
には、パーミッションで付与される権限を記載します。複数の属性を設定するには、--permissions
オプションを複数回使用するか、オプションを中括弧内にコンマ区切りの一覧で記載します。例を示します。--permissions=read --permissions=write --permissions={read,write}
--attrs
には、パーミッションが付与される属性を記載します。複数の属性を設定するには、--attrs
オプションを複数回使用するか、オプションを中括弧内にコンマ区切りの一覧で記載します。例を示します。--attrs=description --attrs=automountKey --attrs={description,automountKey}
--attrs
に提供する属性は既存のもので、該当のオブジェクトタイプに許可されている必要があります。そうでない場合は、コマンドはスキーマ構文エラーで失敗します。--type
では、ユーザー、ホスト、またはサービスなどのエントリータイプを定義します。各タイプには、許可するされる属性セットがあります。例を示します。[root@server ~]# ipa permission-add "manage service" --permissions=all --type=service --attrs=krbprincipalkey --attrs=krbprincipalname --attrs=managedby
--subtree
では、サブツリーエントリーを提供します。これでフィルターがこのサブツリーエントリー以下にあるすべてのエントリーをターゲットとします。--subtree
はワイルドカードや存在しないドメイン名 (DN) を受け付けません。ディレクトリー内の DN を使用してください。IdM は簡素化された平坦なディレクトリーツリー構造を使用しているので、--subtree
を使って、automount の場所のような、他の設定のコンテナーや親エントリーである、一定タイプのエントリーをターゲットにすることができます。例を示します。[root@server ~]# ipa permission-add "manage automount locations" --subtree="ldap://ldap.example.com:389/cn=automount,dc=example,dc=com" --permissions=write --attrs=automountmapname --attrs=automountkey --attrs=automountInformation
--type
と--subtree
のオプションは、相互排他的になります。--filter
は、パーミッションが適用されるエントリーを特定する LDAP フィルターを使用します。IdM は提供されたフィルターの有効性を自動的にチェックします。このフィルターは有効な LDAP フィルターにします。例を示します。[root@server ~]# ipa permission-add "manage Windows groups" --filter="(!(objectclass=posixgroup))" --permissions=write --attrs=description
--memberof
では、特定のグループが存在することを確認した後、そのグループのメンバーにターゲットフィルターを設定します。例を示します。[root@server ~]# ipa permission-add ManageHost --permissions="write" --subtree=cn=computers,cn=accounts,dc=testrelm,dc=com --attr=nshostlocation --memberof=admins
--targetgroup
では、特定のユーザーグループが存在することを確認した後、そのグループにターゲットを設定します。
注記
ipa permission-mod --help
と ipa permission-del --help
のコマンドを実行してください。
10.4.2.3. デフォルトの管理パーミッション
- 名前、場所、およびターゲット属性が修正できません。
- 削除することができません。
- 以下の 3 つの属性セットがあります。
- default 属性は IdM が管理し、ユーザーは修正することができません。
- included 属性は、ユーザーが追加する属性です。included 属性を管理パーミッションに追加するには、
ipa permission-mod
コマンドで--includedattrs
オプションを使用して属性を指定します。 - excluded 属性は、ユーザーが削除する属性です。excluded 属性を管理パーミッションに追加するには、
ipa permission-mod
コマンドで--excludedattrs
オプションを使用して属性を指定します。
--attrs
オプションを使用すると、included および excluded 属性セットは自動的に調整され、--attrs
で提供された属性のみが有効になります。
注記
permission
に設定し、該当管理パーミッションを全権限から削除すると、実質的に無効となります。
System:
で始まります。たとえば、System: Add Sudo rule や System: Modify Services などです。
- Add Automember Rebuild Membership Task
- Add Replication Agreements
- Certificate Remove Hold
- Get Certificates status from the CA
- Modify DNA Range
- Modify Replication Agreements
- Remove Replication Agreements
- Request Certificate
- Request Certificates from a different host
- Retrieve Certificates from the CA
- Revoke Certificate
- Write IPA Configuration

図10.15 無効化された属性
System: Modify Users
パーミッションをグループに適用しようとすると失敗します。
$ ipa permission-mod 'System: Modify Users' --type=group ipa: ERROR: invalid 'ipapermlocation': not modifiable on managed permissions
System: Modify Users
パーミッションを GECOS
属性に適用しないようにすることは可能です。
$ ipa permission-mod 'System: Modify Users' --excludedattrs=gecos ------------------------------------------ Modified permission "System: Modify Users"
10.4.2.4. Identity Management の以前のバージョンのパーミッション
- グローバルの IdM ACI は、認証されていない匿名ユーザーを含めた、サーバーの全ユーザーに読み取りアクセスを付与していました。
- 利用できるパーミッションタイプは書き込み、追加、削除のみでした。読み込みパーミッションも利用できましたが、認証されていないユーザーを含めた全ユーザーがデフォルトで読み込みアクセス権を持っていたため、実用性に欠けていました。
- グローバル IdM ACI は、認証されていないユーザーに読み込みアクセスを付与しません。
- 例えば、フィルターとサブツリーの両方を同じパーミッションで追加できるようになりました。
- 検索権と比較権を追加することが可能です。
注記
ipa permission-show
と ipa permission-find
のコマンドは、現在のスタイルと以前のスタイルの両方のパーミッションを認識します。これらコマンドの出力は現在のスタイルになりますが、パーミッション自体は変更されません。パーミッションエントリーはデータを出力する前にメモリーでのみアップグレードされ、変更は LDAP にコミットされません。
10.4.3. 権限
10.4.3.1. Web UI での新規権限の作成
- トップメニューで IPA Server タブを開き、Role Based Access Control サブタブを選択します。
- Privileges タスクリンクを選択します。
図10.16 権限タスク
- 権限一覧の上部にある追加をクリックします。
図10.17 新規権限の追加
- 権限の名前と説明を入力します。
図10.18 権限追加のフォーム
- Permissions タブを選択します。
- パーミッションの一覧の上部にある追加をクリックして特権にパーミッションを追加します。
図10.19 パーミッションの追加
- 追加するパーミッションの名前の横にあるチェックボックスを選択し、右矢印 Prospective コラムに移動させます。を使って
図10.20 パーミッションの選択
10.4.3.2. コマンドライン での新規権限の作成
privilege-add
コマンドで作成されます。次に、privilege-add-permission
コマンドを使ってパーミッションを権限グループに追加します。
- 権限エントリーを作成します。
[jsmith@server ~]$ ipa privilege-add "managing filesystems" --desc="for filesystems"
- 必要な権限を割り当てます。例:
[jsmith@server ~]$ ipa privilege-add-permission "managing filesystems" --permissions="managing automount" --permissions="managing ftp services"
このページには機械翻訳が使用されている場合があります (詳細はこちら)。