Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

10.4. ロールベースのアクセス制御の定義

ロールベースのアクセス制御では、セルフサービスおよび委任アクセス制御の場合とは非常に異なる種類の権限をユーザーに付与します。ロールベースのアクセス制御は基本的に管理されており、エントリーを変更する機能を提供します。
ロールベースのアクセス制御には、パーミッション 、権限、ロールなどの 3 つの部分があります。特権は 1 つ以上のパーミッションで構成され、ロールは 1 つ以上の権限で構成されます。
  • パーミッションは、特定の操作または操作(読み取り、書き込み、追加、または削除など)と、操作が適用される IdM LDAP ディレクトリー内のターゲットエントリーを定義します。パーミッションはビルディングブロックで、必要に応じて複数の特権に割り当てることができます。
    IdM パーミッションを使用すると、どのユーザーがどのオブジェクトにアクセスできるか、およびこれらのオブジェクトの属性にアクセスできるかを制御できます。IdM を使用すると、個々の属性をホワイトリストまたはブラックリスト登録したり、ユーザー、グループ、sudo などの特定の IdM 機能の可視性を完全に変更したり、全匿名ユーザー、全認証済みユーザー、または特権ユーザーの特定のグループのみに対して表示したりできます。権限の柔軟なアプローチは、管理者が、アクセスする必要がある特定のセクションのみにユーザーまたはグループのアクセスを制限し、他のセクションをそれらに完全非表示にする場合に役に立ちます。
  • 特権は、ロールに適用できるパーミッションのグループです。たとえば、自動マウントの場所の追加、編集、削除を行うためにパーミッションを作成できます。そして、そのパーミッションは FTP サービスの管理に関連する別のパーミッションと組み合わせることができ、ファイルシステムの管理に関連する単一の特権を作成するために使用できます。
    注記
    Red Hat Identity Management のコンテキストでは、権限には、どのパーミッションと次にロールが作成されるアクセス制御のアトミックユニットのアトミックな単位とは非常に特殊な意味があります。通常ユーザーの概念としての特権昇格は、一時的に追加の権限を取得している Red Hat Identity Management に存在しません。特権は、RBAC(Role-Based Access Control)を使用してユーザーに割り当てられます。アクセス権を付与するロールが割り当てられているか、そうでないユーザー。
    ユーザー以外に、権限はユーザーグループ、ホスト、ホストグループ、およびネットワークサービスにも割り当てられます。これにより、特定のネットワークサービス経由でホストセットのユーザーセットにより、操作をきめ細かく制御できます。
  • ロールは、ロールに指定したユーザーが所有する権限の一覧です
    重要
    ロールは、許可されたアクションを分類するために使用されます。権限の分離を実装するツール、または特権昇格から保護するツールとしては使用されません。
完全に新しいパーミッションを作成したり、既存のパーミッションまたは新規のパーミッションをベースにして新しい権限を作成したりすることができます。Red Hat Identity Management には、以下の事前定義済みのロールがあります。

表10.1 Red Hat Identity Management の定義済みロール

ロール 特権 説明
ヘルプデスク
Modify Users、Reset passwords、Modify Group メンバーシップ 簡単なユーザー管理タスクの実行
IT セキュリティースペシャリスト
Netgroups 管理者、HBAC 管理者、Sudo 管理者 ホストベースのアクセス制御、sudo ルールなどのセキュリティーポリシーの管理
IT スペシャリスト
ホスト管理者、ホストグループ管理者、サービス管理者、自動マウント管理者 ホストの管理を行います。
セキュリティーアーキテクト
委譲管理者、レプリケーション管理者、書き込み IPA 設定、パスワードポリシー管理者 Identity Management 環境の管理、信頼の作成、レプリカ合意の作成
ユーザー管理者
ユーザー管理者、グループ管理者、ステージユーザー管理者 ユーザーとグループの作成を行う

10.4.1. ロール

10.4.1.1. Web UI でのロールの作成

  1. トップメニューで IPA Server タブを開き、Role-Based Access Control サブタブを選択します。
  2. ロールベースのアクセス制御手順のリストの上部にある Add リンクをクリックします。

    図10.6 新規ロールの追加

    新規ロールの追加
  3. ロール名と説明を入力します。

    図10.7 ロールを追加するフォーム

    ロールを追加するフォーム
  4. Add and Edit ボタンをクリックして新規ロールを保存し、設定ページに移動します。
  5. Users タブの上部で、グループの追加時に Users Groups タブで、Add をクリックします。

    図10.8 ユーザーの追加

    ユーザーの追加
  6. 左側のユーザーを選択し、> ボタンを使用してProspective 列に移動します

    図10.9 ユーザーの選択

    ユーザーの選択
  7. Privileges タブの上部にある Add をクリックします。

    図10.10 特権の追加

    特権の追加
  8. 左側の特権を選択し、> ボタンを 使用 して Prospective 列に移動します。

    図10.11 権限の選択

    権限の選択
  9. 追加 ボタンをクリックして保存します。

10.4.1.2. コマンドライン でのロールの作成

  1. 新規ロールを追加します。
    [root@server ~]# kinit admin
    [root@server ~]# ipa role-add --desc="User Administrator" useradmin
      ------------------------
      Added role "useradmin"
      ------------------------
      Role name: useradmin
      Description: User Administrator
  2. 必要な権限をロールに追加します。
    [root@server ~]# ipa role-add-privilege --privileges="User Administrators" useradmin
      Role name: useradmin
      Description: User Administrator
      Privileges: user administrators
      ----------------------------
      Number of privileges added 1
    ----------------------------
    
  3. 必要なグループをロールに追加します。この場合、すでに存在する 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 での新規パーミッションの作成

  1. トップメニューで IPA Server タブを開き、Role-Based Access Control サブタブを選択します。
  2. Permissions タスクリンクを選択します。

    図10.12 パーミッションタスク

    パーミッションタスク
  3. パーミッションの一覧の上部にある Add ボタンをクリックします。

    図10.13 新規パーミッションの追加

    新規パーミッションの追加
  4. 表示されるフォームで新規パーミッションのプロパティーを定義します。

    図10.14 パーミッションを追加するフォーム

    パーミッションを追加するフォーム
  5. フォームの Add ボタンをクリックしてパーミッションを保存します。
以下のパーミッションプロパティーを指定できます。
  1. 新規パーミッションの名前を入力します。
  2. 適切なバインドルールタイプを選択します
    • permission はデフォルトのパーミッションタイプで、権限およびロール経由でアクセスを付与します。
    • all: パーミッションを全認証ユーザーに適用することを指定します。
    • anonymous: 認証されていないユーザーを含め、すべてのユーザーにパーミッションを適用することを指定します。
    注記
    デフォルト以外のバインドルールタイプを持つパーミッションを権限に追加することはできません。特権に既存のパーミッションは、デフォルト以外のバインドルールタイプには設定できません。
  3. Granted rights にパーミッションを付与する権限を選択します。
  4. パーミッションのターゲットエントリーを識別する方法を定義します。
    • Type: ユーザー、ホスト、またはサービスなどのエントリータイプを指定します。Type 設定の値を選択すると、そのエントリータイプの ACI でアクセス可能な対応の属性がすべて Effective Attributes に表示されます。
      Type を定義すると、Subtree および Target DN が事前定義された値のいずれかに設定されます。
    • subtree ではサブツリーエントリーを指定します。このサブツリーエントリーの下にあるすべてのエントリーが対象になります。Subtree ではワイルドカードや存在しないドメイン名(DN)を使用できないので、既存のサブツリーエントリーを指定します。以下に例を示します。
      cn=automount,dc=example,dc=com
    • 追加のターゲットフィルター は、パーミッションが適用されるエントリーを特定する LDAP フィルターを使用します。このフィルターには、有効な LDAP フィルターを使用できます。以下に例を示します。
      (!(objectclass=posixgroup))
      IdM は、指定のフィルターの有効性を自動的に確認します。無効なフィルターを入力すると、IdM はパーミッションの保存を試行した後にこの件について警告します。
    • Target DN はドメイン名(DN)を指定し、ワイルドカードを受け入れます。以下に例を示します。
      uid=*,cn=users,cn=accounts,dc=com
    • Member of group: 指定したグループのメンバーにターゲットフィルターを設定します。
    フィルター設定を入力し、Add をクリックすると、IdM がフィルターを検証します。すべてのパーミッション設定が正しい場合は、IdM により検索が実行されます。パーミッション設定の一部が正しくない場合、IdM はどの設定が正しく設定されているかを示すメッセージが表示されます。
  5. Type を設定する場合は、利用可能な ACI 属性の一覧から Effective attributes を選択します。Type を使用しない場合は、Effective attributes フィールドに属性を手動で書き込みます。一度に 1 つの属性を追加します。複数の属性を追加するには、Add をクリックして別の入力フィールドを追加します。
    重要
    パーミッションの属性を設定しないと、デフォルトですべての属性が含まれます。

10.4.2.2. コマンドライン での新規パーミッションの作成

新規パーミッションを追加するには、ipa permission-add コマンドを実行します。対応するオプションを指定してパーミッションのプロパティーを指定します。
  • パーミッションの名前を指定します。以下に例を示します。
    [root@server ~]# ipa permission-add "dns admin permission"
  • --bindtype は、バインドルールの種別を指定します。このオプションでは、all、 anonymous および permission 引数を使用できます。以下に例を示します。
    --bindtype=all
    --bindtype を使用しない場合は、タイプはデフォルトのパーミッション値に自動的に設定されます
    注記
    特権には、デフォルト以外のバインドルールタイプが指定されたパーミッションを追加できません。特権に既存のパーミッションは、デフォルト以外のバインドルールタイプには設定できません。
  • --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 を使用して自動マウントの場所(他の設定のコンテナーまたは親エントリー)など、一部のエントリーを対象にできます。以下に例を示します。
    [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 は、グループが存在することを確認した後に、ターゲットを指定のユーザーグループに設定します。
Web UI で利用可能なターゲット DN 設定はコマンドラインでは使用できません。
注記
パーミッションの変更および削除の詳細は、ipa permission-mod --help コマンドおよび ipa permission-del --help コマンドを実行します。

10.4.2.3. デフォルトの管理パーミッション

管理対象パーミッションは、Identity Management にプレインストールされているパーミッションです。このパーミッションはユーザーが作成した他のパーミッションと同様に動作しますが、以下の違いがあります。
  • 名前、場所、およびターゲット属性を変更することはできません。
  • 削除することができません。
  • これには、3 つの属性セットがあります。
    • デフォルトの属性 - IdM により管理されており、ユーザーは変更できません。
    • 含まれた属性 。ユーザーが追加する属性として、管理パーミッションに追加するには、ipa permission-mod コマンドで --includedattrs オプションを指定して属性を指定します。
    • 除外された属性 (ユーザーが削除する属性。管理パーミッションに追加するには、ipa permission-mod コマンドで --excludedattrs オプションを指定して属性を指定します)
管理パーミッションは、デフォルトおよび包含属性セットに表示されている属性すべてに適用されますが、除外セットに表示されている属性には適用されません。
管理されたパーミッションの変更時に --attrs オプションを使用する場合は、包含属性と除外属性が自動的に調整され、--attrs で指定された属性のみが有効になります。
注記
管理パーミッションを削除できませんが、パーミッションにバインドタイプを設定し、すべての特権から管理パーミッションを削除すると、パーミッションを効果的に無効にできます。
管理パーミッションの名前はすべて System: から始まります(例 : System: Add Sudo rule または System: Modify Services )。
以前のバージョンの IdM では、デフォルトのパーミッションに異なるスキームを使用していました。たとえば、ユーザーがデフォルトの権限を変更しないようにし、ユーザーは特権にのみ割り当てていました。これらのデフォルトパーミッションのほとんどは、管理パーミッションに切り替わっていますが、以下のパーミッションは引き続き以前のスキームを使用します。
  • Automember Rebuild メンバーシップタスクの追加
  • Add Replication Agreements
  • 証明書削除保留
  • Get Certificates status from the CA
  • Modify DNA Range
  • Modify Replication Agreements
  • Remove Replication Agreements
  • Request Certificate
  • Request Certificates from a different host
  • CA からの証明書の取得
  • 証明書の取り消し
  • Write IPA Configuration
管理パーミッションを Web UI から修正する場合、修正できない属性が無効化されます。

図10.15 無効にされた属性

無効にされた属性
コマンドラインから管理パーミッションを変更しようとしても、システムは変更できない属性を変更することを許可しません。たとえば、デフォルトのシステムを変更しようとしています: グループに適用するユーザー権限の変更に失敗します
$ ipa permission-mod 'System: Modify Users' --type=group
ipa: ERROR: invalid 'ipapermlocation': not modifiable on managed permissions
ただし、システムを変更 して、GECOS 属性に適用しないようにユーザーパーミッションを変更します
$ ipa permission-mod 'System: Modify Users' --excludedattrs=gecos
------------------------------------------
Modified permission "System: Modify Users"

10.4.2.4. Identity Management の以前のバージョンのパーミッション

以前のバージョンの Identity Management ではパーミッションが異なります。以下に例を示します。
  • グローバル IdM ACI は、匿名ユーザー(認証されていないユーザー)の全ユーザーへの読み取りアクセスが付与されています。
  • パーミッションタイプの書き込み、追加、および削除のみが利用可能でした。読み取りパーミッションも使用できましたが、認証されていないユーザーを含むすべてのユーザーがデフォルトで読み取りアクセスであったため、実用的な値でした。
Identity Management の現行バージョンには、より粒度の細かいパーミッションを設定するオプションがあります。
  • グローバル IdM ACI は、認証されていないユーザーに読み込みアクセスを付与しません。
  • 例えば、フィルターとサブツリーの両方を同じパーミッションで追加できるようになりました。
  • 検索および権限を比較できます。
パーミッションを処理する新たな方法により、以前のバージョンとの後方互換性を維持しながら、ユーザーまたはグループのアクセスを制御する IdM 機能が大幅に改善されました。IdM の以前のバージョンからアップグレードすると、すべてのサーバーのグローバル IdM ACI が削除され、管理パーミッションに置き換えられます
前述した方法で作成されたパーミッションは、いつでも自動的に現在のスタイルに変換されます。それらの変更を試みないと、以前のタイプのパーミッションは変換されません。パーミッションは現在のスタイルを使用したら、以前のスタイルにダウングレードすることはできません。
注記
以前のバージョンの IdM を実行しているサーバーで特権にパーミッションを割り当てることができます。
ipa permission-show コマンドおよび ipa permission-find コマンドは、現在のパーミッションと以前のスタイルのパーミッションの両方を認識します。このコマンド両方のコマンドの出力には、現在のスタイルのパーミッションが表示されますが、パーミッション自体は変更されません。コマンドは、LDAP への変更をコミットせずに、メモリーでのみデータを出力する前にパーミッションエントリーをアップグレードします。
以前の特性と現在の特性の両方の権限は、すべてのサーバー(IdM の以前のバージョンと現在の IdM バージョンの実行)で有効になります。ただし、以前のバージョンの IdM を実行しているサーバーでは、現在のパーミッションでパーミッションを作成したり、変更したりすることはできません。

10.4.3. 権限

10.4.3.1. Web UI での新規権限の作成

  1. トップメニューで IPA Server タブを開き、Role-Based Access Control サブタブを選択します。
  2. Privileges タスクリンクを選択します。
  3. 特権一覧の上部にある Add リンクをクリックします。

    図10.17 新規権限の追加

    新規権限の追加
  4. 権限の名前と説明を入力します。

    図10.18 特権を追加するフォーム

    特権を追加するフォーム
  5. Add and Edit ボタンをクリックして、権限設定ページに移動し、パーミッションを追加します。
  6. Permissions タブを選択します。
  7. パーミッション一覧の上部にある Add をクリックして、パーミッションを特権に追加します。

    図10.19 パーミッションの追加

    パーミッションの追加
  8. 追加するパーミッションの名前の横にあるチェックボックスをクリックし、> ボタンを使用してパーミッションをProspective 列に移動します

    図10.20 パーミッションの選択

    パーミッションの選択
  9. 追加 ボタンをクリックして保存します。

10.4.3.2. コマンドラインでの新規権限の作成

権限エントリーは、privilege-add コマンドを使用して作成され、そのパーミッションは privilege-add-permission コマンドを使用して特権グループに追加されます。
  1. 権限エントリーを作成します。
    [jsmith@server ~]$ ipa privilege-add "managing filesystems" --desc="for filesystems"
  2. 必要なパーミッションを割り当てます。以下に例を示します。
    [jsmith@server ~]$ ipa privilege-add-permission "managing filesystems" --permissions="managing automount" --permissions="managing ftp services"

このページには機械翻訳が使用されている場合があります (詳細はこちら)。