14.5. ユーザーのアクセス制御の設定

承認 は、ユーザーが操作を実行できるかどうかを確認するメカニズムです。許可ポイントは、許可チェックを必要とする特定の操作グループで定義されます。

14.5.1. アクセス制御について

アクセス制御リスト (ACL) は、サーバー操作への承認を指定するメカニズムです。承認チェックが実行される操作ごとに ACL が存在します。ACL に追加の操作を追加できます。
ACL には、読み取りや変更などの操作を具体的に許可または拒否する アクセス制御命令 (ACI) が含まれます。ACI にはエバリュエーターの式も含まれます。ACL のデフォルトの実装は、ユーザー、グループ、および IP アドレスのみを、可能なエバリュエータータイプとして指定します。ACL の各 ACI は、アクセスが許可または拒否されるかどうか、特定の Operator が許可または拒否されているか、および操作を実行するためのユーザー、グループ、または IP アドレスが許可または拒否されるかどうかを指定します。
Certificate System ユーザーの特権は、ユーザーがメンバーであるグループ、ユーザー自身、またはユーザーの IP アドレスに関連付けられているアクセス制御リスト (ACL) を変更することによって変更されます。新規グループは、そのグループをアクセス制御リストに追加することで、アクセス制御リストに割り当てられます。たとえば、ログ LogAdmins の表示が許可される管理者用の新規グループは、このグループの読み取りまたは修正を許可するためにログに関連する ACL に追加できます。このグループが他の ACL に追加されない場合、このグループのメンバーはログにのみアクセスできます。
ACL の ACI エントリーを編集して、ユーザー、グループ、または IP アドレスへのアクセスが変更されます。ACL インターフェイスでは、各 ACI が独自の行に表示されます。このインターフェイスウィンドウで、ACI の構文は以下のとおりです。
allow|deny (operation) user|group|IP="name"
注記
IP アドレスは、IPv4 アドレスまたは IPv6 アドレスになります。IPv4 アドレスは、n.n.n.n または n.n.n.n,m.m.m.m の形式にする必要があります。たとえば、128.21.39.40 または 128.21.39.40,255.255.255.00 です。IPv6 アドレスは 128 ビット名前空間を使用します。IPv6 アドレスはコロンで区切られ、ネットマスクはピリオドで区切られます。たとえば、0:0:0:0:0:0:13.1.68.3FF01::430:0:0:0:0:0:13.1.68.3,FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:255.255.255.0、および FF01::43,FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FF00:0000 になります。
たとえば、以下は ACI で、管理者は読み取り操作を実行できます。
allow (read) group="Administrators"
ACI には、複数の操作またはアクションを設定できます。操作は、両側にスペースを入れずにコンマで区切ります。以下に例を示します。
allow (read,modify) group="Administrators"
ACI は、2 つのパイプ記号で区切ることにより、複数のグループ、ユーザー、または IP アドレスを、両側にスペースがある状態で指定することができます (||)。以下に例を示します。
allow (read) group="Administrators" || group="Auditors"
管理コンソールは ACI を作成または変更できます。このインターフェイスは、Allow and Deny フィールドで操作を許可するかどうか、Operations フィールドで可能な操作を設定し、次に Syntax フィールドでグループ、ユーザー、または IP アドレスを一覧表示します。
ACI は指定されたグループ、ユーザー ID、または IP アドレスの操作を許可または拒否できます。通常、アクセスを拒否するために ACI を作成する必要はありません。ユーザー ID、グループ、または IP アドレスを含む allow ACI がない場合、グループ、ユーザー ID、または IP アドレスへのアクセスは拒否されます。
注記
ユーザーがリソースのどの操作にも明示的に許可されていない場合、このユーザーは拒否されます。アクセスを拒否する必要はありません。
たとえば、ユーザー JohnB は Administrators グループのメンバーです。ACL には以下の ACL のみがある場合は、allow ACI に一致しないため、JohnB はすべてのアクセスを拒否します。
Allow (read,modify) group="Auditors" || user="BrianC"
通常、deny ステートメントを含める必要はありません。ただし、指定すると便利な場合もあります。たとえば、Administrators グループのメンバーである JohnB が唯一実行されています。ユーザーをすぐに削除できない場合は、特に JohnB へのアクセスを拒否する必要がある場合があります。もう 1 つの状況は、ユーザー BrianC が管理者であるが、一部のリソースを変更する権限を持たない場合です。Administrators グループはこのリソースにアクセスする必要があるため、BrianC はこのユーザーアクセスを拒否する ACI を作成して、アクセスを拒否することができます。
許可される権限は、ACI が操作の実行を許可または拒否することで ACI が制御する操作です。ACL に設定できるアクションは ACL とサブシステムによって異なります。定義できる 2 つの一般的な操作は、読み取りと変更です。
ACI エディターの構文フィールドは、式にエバリュエーターを設定します。エバリュエーターは、グループ、名前、および IP アドレス (IPv4 アドレスと IPv6 アドレスの両方) を指定できます。これらは、同一 (=) または非同一 (!=) として設定されたエンティティーの名前とともに指定されます。
ACL にグループを追加する構文は group="groupname" です。グループを除外する構文は group!="groupname" で、named グループ以外のグループを許可します。以下に例を示します。
group="Administrators" || group!="Auditors"
アスタリスク (*) などのワイルドカード文字を使用するなど、正規表現を使用してグループを指定することもできます。以下に例を示します。
group="* Managers"
サポートされる正規表現パターンの詳細は、https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.htmlを参照してください。
ACL にユーザーを追加する構文は user="userID" です。ユーザーを除外する構文は user!="userID" です。これにより、名前が指定されたユーザー ID 以外のユーザー ID も使用できます。以下に例を示します。
user="BobC" || user!="JaneK"
すべてのユーザーを指定するには、anybody の値を指定します。以下に例を示します。
user="anybody"
正規表現を使用して、アスタリスク (*) などのワイルドカード文字を使用するなど、ユーザー名を指定することもできます。以下に例を示します。
user="*johnson"
サポートされる正規表現パターンの詳細は、https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.htmlを参照してください。
ACL に IP アドレスを追加する構文は ipaddress="ipaddress" です。ACL から ID アドレスを除外する構文は ipaddress!="ipaddress" です。IP アドレスは数値を使用して指定します。DNS 値は許可されません。以下に例を示します。
ipaddress="12.33.45.99"
ipaddress!="23.99.09.88"
IP アドレスは、上記のように IPv4 アドレスまたは IPv6 アドレスになります。IPv4 アドレスには、ネットマスクが n.n.n.n または n.n.n.n,m.m.m.m の形式があります。IPv6 アドレスは 128 ビット名前空間を使用します。IPv6 アドレスはコロンで区切られ、ネットマスクはピリオドで区切られます。以下に例を示します。
ipaddress="0:0:0:0:0:0:13.1.68.3"
正規表現を使用して、アスタリスク (*) などのワイルドカード文字を使用するなど、IP アドレスを指定することもできます。以下に例を示します。
ipaddress="12.33.45.*"
サポートされる正規表現パターンの詳細は、https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.htmlを参照してください。
各値を 2 つのパイプ文字 (||) で区切り、両側にスペースを入れることで、複数の値を持つ文字列を作成できます。以下に例を示します。
user="BobC" || group="Auditors" || group="Administrators"

14.5.2. サブシステムのアクセス制御設定の変更

CS.cfg ファイルを編集してこの機能を設定する方法は、『Red Hat Certificate System 計画、インストール、およびデプロイメントのガイド』のサブシステムのアクセス制御設定の変更を参照してください。

14.5.3. ACL の追加

ACL は内部データベースに保存され、管理コンソールでのみ変更できます。
新しい ACL を追加するには、以下を実行します。
  1. 管理コンソールにログインします。
  2. Access Control List を選択します。
  3. Add をクリックして、Access Control Editor を開きます。
  4. Resource name および Available rights フィールドに入力します。
  5. アクセス制御指示 (ACI) を追加するには、Add をクリックし、ACI 情報を提供します。
    1. 指定したグループ、ユーザー、または IP アドレスへの操作を許可または拒否するには、Access フィールドから allow または deny ラジオボタンを選択します。アクセスの許可または拒否に関する詳細は、「アクセス制御について」を参照してください。
    2. 権限を設定します。利用できるオプションは、read および modify です。両方を選択するには、エントリーの選択中に Ctrl ボタンまたは Shift ボタンを保持します。
    3. Syntax フィールドでアクセスを許可または拒否されるユーザー、グループ、または IP アドレスを指定します。構文の詳細は、「アクセス制御について」を参照してください。
  6. OK をクリックして、Access Control Editor 画面に戻ります。
  7. OK をクリックして ACI を保存します。

14.5.4. ACL の編集

ACL は内部データベースに保存され、管理コンソールでのみ変更できます。
既存の ACL を編集するには、以下を実行します。
  1. 管理コンソールにログインします。
  2. 左側のナビゲーションメニューで、Access Control List を選択します。
  3. リストから編集する ACL を選択し、Edit をクリックします。
    アクセス制御エディター ウィンドウで ACL が開きます。
  4. ACI を追加するには、Add をクリックし、ACI 情報を指定します。
    ACI を編集するには、ACL Editor 画面の ACI entries テキスト領域で ACI を選択します。Edit をクリックします。
    1. 指定したグループ、ユーザー、または IP アドレスへの操作を許可または拒否するには、Access フィールドから allow または deny ラジオボタンを選択します。アクセスの許可または拒否に関する詳細は、「アクセス制御について」を参照してください。
    2. アクセス制御の権限を設定します。オプションは read および modify です。両方を設定するには、Ctrl ボタンまたは Shift ボタンを使用します。
    3. Syntax フィールドでアクセスを許可または拒否されるユーザー、グループ、または IP アドレスを指定します。構文の詳細は、「アクセス制御について」を参照してください。