5.5. 詳細なパーミッションフィルタリング
5.5.1. 詳細なパーミッションフィルター
「ロールへのパーミッションの追加」 の説明にあるように、Red Hat Satellite では、リソースタイプの選択済みインスタンスに対する設定済みユーザーパーミッションを制限できます。これらの詳細なフィルターは Satellite データベースに対するクエリーであり、ほとんどのリソースタイプでサポートされています。
5.5.2. 詳細なパーミッションフィルターの作成
以下の手順を使用して、詳細なフィルターを作成します。Web UI の代わりに CLI を使用する場合は、CLI 手順 を参照してください。
Satellite では、検索条件はアクション作成には適用されません。たとえば、検索フィールドで create_locations アクションを name = "Default Location" 式で制限しても、ユーザーが新しく作成されたロケーションにカスタム名を割り当てることができないわけではありません。
手順
フィルターの編集 ページの 検索 フィールドにクエリーを指定します。アクティブにするフィールドに対して 無制限 チェックボックスを選択解除します。クエリーの形式は以下のようになります。
field_name operator value
- field_name は、問い合わせるフィールドを示します。利用可能なフィールド名の範囲はリソースタイプによって異なります。たとえば、Partition Table リソースタイプでは、クエリーパラメーターとして family、layout、および name が提供されます。
- operator は、field_name と value との間の比較タイプを指定します。適用可能な演算子の概要は、「詳細な検索に対してサポートされる演算子」 を参照してください。
- value は、フィルタリングに使用される値です。この値は、組織の名前などです。2 つの種類のワイルドカード文字がサポートされ、アンダースコア (_) は単一の文字を置換し、パーセント記号 (%) はゼロ以上の文字を置換します。
ほとんどのリソースタイプに対して、検索 フィールドは利用可能なパラメーターを示すドロップダウンリストを提供します。このリストは、検索フィールドにカーソルを置くと表示されます。多くのリソースタイプに対しては、and や not、has といった論理演算子を使用してクエリーを組み合わせることができます。
CLI 手順
詳細なフィルターを作成するには、以下のように
--search
オプションを指定してhammer filter create
を入力し、パーミッションフィルターで絞り込みます。# hammer filter create \ --permission-ids 91 \ --search "name ~ ccv*" \ --role qa-user
このコマンドは、名前が ccv
で始まるコンテンツビューのみを表示、作成、編集、破棄するパーミッションを qa-user ロールに追加します。
5.5.3. 詳細なパーミッションフィルターの使用例
管理者は、選択されたユーザーが環境パスの特定の部分を変更することを許可できます。以下のフィルターを使用すると、アプリケーションライフサイクルの開発段階にあるコンテンツを使用して作業できますが、実稼働環境にプッシュされるとそのコンテンツにはアクセスできなくなります。
5.5.3.1. ホストリソースタイプのパーミッションの適用
以下のクエリーは、host-editors という名前のグループのホストに対してのみ、ホストのリソースタイプに指定されたパーミッションを適用します。
hostgroup = host-editors
以下のクエリーは、XXXX, Yyyy、または zzzz の文字列に名前が一致するレコードを返します。
name ^ (XXXX, Yyyy, zzzz)
また、選択された環境に対するパーミッションを制限することもできます。これを行うには、検索 フィールドに環境名を指定します。以下に例を示します。
Dev
検索 ch フィールドでより詳細なパーミッションフィルターを使用すると、特定の組織またはロケーションにユーザーパーミッションを制限できます。ただし、リソースタイプによっては、ロケーション および 組織 タブを提供する 上書き チェックボックスが、GUI の代わりとなります。これらのタブでは、利用可能な組織とロケーションのリストから選択できます。「組織固有のマネージャーロールの作成」を参照してください。
5.5.3.2. 組織固有のマネージャーロールの作成
Satellite UI を使って org-1 という名前の単一の組織に制限されたマネージャーロールを作成する方法を示します。
手順
- 管理 > ロール に移動します。
- 既存の Organization admin ロールをクローンします。フィルター ボタンの横にあるドロップダウンリストから クローン を選択します。この結果、クローンされたロールの名前 (たとえば、org-1 admin) を挿入するよう求められます。
- ロールに関連付けるロケーションと組織をクリックします。
- 送信 をクリックしてロールを作成します。
- org-1 admin をクリックしてから フィルター をクリックし、関連付けられたフィルターを確認します。デフォルトのフィルターはほとんどのケースで機能します。ただし、必要に応じて、編集 をクリックして各フィルターのプロパティーを変更することもできます。フィルターによっては、ロールを追加のロケーションと組織のリソースにアクセスできるようにする場合には、上書き オプションを有効にできます。たとえば、ドメイン リソースタイプを選択して 上書き オプションを選択し、ロケーション と 組織 タブを使用して追加のロケーションと組織を選択すると、このロールに関連付けられていない追加のロケーションと組織のドメインにこのロールがアクセスできるようになります。また、New filter をクリックして、新しいフィルターをこのロールに関連付けることもできます。
5.5.4. 詳細な検索に対してサポートされる演算子
演算子 | 説明 |
and | 検索条件を組み合わせます。 |
not | 式を否定します。 |
has | オブジェクトには指定したプロパティーが必要です。 |
演算子 | 説明 |
= | Is equal to。テキストフィールドで使用する等価比較。大文字と小文字の区別あり。 |
!= | Is not equal to。= 演算子の反転。 |
~ | Like。テキストフィールドで使用するキーワード出現検索。大文字と小文字の区別なし。 |
!~ | Not like。~ 演算子の反転。 |
^ | In。テキストフィールドで使用する等価比較。大文字と小文字を区別した検索。これは、Is equal to 比較とは別の SQL クエリーを生成し、複数値の比較をより効率的に行えます。 |
!^ | Not in。^ 演算子の反転。 |
>, >= | Greater than、greater than or equal to.数値フィールドのみに対応します。 |
<, ⇐ | Less than、less than or equal to.数値フィールドのみに対応します。 |