15.5. ユーザーのアクセス制御の設定
承認 は、ユーザーが操作を実行できるかどうかを確認するメカニズムです。許可ポイントは、許可チェックを必要とする特定の操作グループで定義されます。
15.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.3、FF01::43、0: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"
15.5.2. サブシステムのアクセス制御設定の変更
CS.cfg
ファイルを編集してこの機能を設定する方法は、『Red Hat Certificate System 計画、インストール、およびデプロイメントのガイド』 の 『サブシステムのアクセス制御設定の変更』 を参照してください。
15.5.3. ACL の追加
ACL は内部データベースに保存され、管理コンソールでのみ変更できます。
新しい ACL を追加するには、以下を実行します。
- 管理コンソールにログインします。
- Access Control List を選択します。
- Access Control Editor を開きます。をクリックして、
Resource name
およびAvailable rights
フィールドに入力します。- アクセス制御指示 (ACI) を追加するには、をクリックし、ACI 情報を提供します。
- 指定したグループ、ユーザー、または IP アドレスへの操作を許可または拒否するには、Access フィールドから allow または deny ラジオボタンを選択します。アクセスの許可または拒否に関する詳細は、「アクセス制御について」 を参照してください。
- 権限を設定します。利用できるオプションは、read および modify です。両方を選択するには、エントリーの選択中に ボタンまたは ボタンを保持します。
- Syntax フィールドでアクセスを許可または拒否されるユーザー、グループ、または IP アドレスを指定します。構文の詳細は、「アクセス制御について」 を参照してください。
- Access Control Editor 画面に戻ります。をクリックして、
15.5.4. ACL の編集
ACL は内部データベースに保存され、管理コンソールでのみ変更できます。
既存の ACL を編集するには、以下を実行します。
- 管理コンソールにログインします。
- 左側のナビゲーションメニューで、Access Control List を選択します。
- リストから編集する ACL を選択し、をクリックします。アクセス制御エディター ウィンドウで ACL が開きます。
- ACI を追加するには、をクリックし、ACI 情報を指定します。ACI を編集するには、ACL Editor 画面の ACI entries テキスト領域で ACI を選択します。 をクリックします。
- 指定したグループ、ユーザー、または IP アドレスへの操作を許可または拒否するには、Access フィールドから allow または deny ラジオボタンを選択します。アクセスの許可または拒否に関する詳細は、「アクセス制御について」 を参照してください。
- アクセス制御の権限を設定します。オプションは read および modify です。両方を設定するには、 ボタンまたは ボタンを使用します。
- Syntax フィールドでアクセスを許可または拒否されるユーザー、グループ、または IP アドレスを指定します。構文の詳細は、「アクセス制御について」 を参照してください。