2.6. セキュリティーポリシーの管理
セキュリティーポリシーおよびポリシー違反の作成、表示、および管理には、ガバナンス ダッシュボードを使用します。CLI およびコンソールからポリシーの YAML ファイルを作成できます。
ガバナンス ページでは、カテゴリーや基準で違反をフィルタリングして概要ビューをカスタマイズしたり、概要ビューを折りたたみ表示数を減らしたりだけでなく、ポリシーの検索も可能です。ポリシーまたはクラスターの違反別に、違反の表のビューもフィルタリングできます。
ポリシーの表では、Policy name、Namespace、Remediation、Cluster violation、 Controls、Automation および Created のポリシーの詳細を表示します。Actions アイコンを選択すると、ポリシーの編集、有効化、無効化、通知、または削除が可能です。特定のポリシーのカテゴリーおよび標準を表示するには、ドロップダウン矢印を選択して行を展開します。
Automation の列の頻度フィールドに関する以下の説明を参照してください。
-
Manual Run: この自動化を手動で設定して 1 回実行します。自動化の実行後に、
無効
に設定されます。 -
Run once mode: ポリシーに違反すると、自動化が 1 回実行されます。自動化の実行後に、
無効
に設定されます。自動化が無効
に設定された後は、引き続き自動化を手動で実行する必要があります。once mode を実行すると、target_clusters
の追加変数にはポリシーに違反するクラスターの一覧が自動的に指定されます。Ansible Tower ジョブテンプレートのEXTRA VARIABLES
セクションで、PROMPT ON LAUNCH
を有効にする必要があります。 -
Disable automation: スケジュールされた自動化が
無効
にされると、設定が更新されるまで自動化は実行されません。
表一覧でポリシーを選択すると、コンソールで、以下の情報タブが表示されます。
- Details: Details タブを選択して、ポリシーの情報、配置の情報を表示します。
- Status: Status タブを選択して、違反の表一覧を表示します。Clusters または Templates 別にビューをフィルタリングできます。ポリシーのコンプライアンスステータスを表示するには、View history リンクをクリックして、Status タブから違反メッセージの一覧を表示します。
セキュリティーポリシーの作成および更新の詳細は、以下のトピックを参照してください。
- セキュリティーポリシーの管理
- 設定ポリシーの管理
- イメージ脆弱性ポリシーの管理
- メモリー使用状況ポリシーの管理
- Namespace ポリシーの管理
- Pod ポリシーの管理
- Pod セキュリティーポリシーの管理
- ロールポリシーの管理
- Role binding ポリシーの管理
- Security Context Constraints ポリシーの管理
- 証明書ポリシーの管理
- IAM ポリシーの管理
- ETCD 暗号化ポリシーの管理
- gatekeeper ポリシーの管理
- コンプライアンス Operator ポリシーの管理
- E8 スキャンポリシーの管理
- Ansible Tower でのガバナンスの設定
- OpenShift CIS スキャンポリシーの管理
他のトピックについては、「ガバナンス」を参照してください。
2.6.1. Ansible Tower でのガバナンスの設定
Red Hat Advanced Cluster Management for Kubernetes ガバナンスは、Ansible Tower の自動化と統合して、ポリシー違反の自動化を作成できます。Red Hat Advanced Cluster Management コンソールで、自動化を設定できます。
2.6.1.1. 前提条件
- Red Hat OpenShift Container Platform 4.5 以降
- Ansible Tower バージョン 3.7.3 以降がインストールされていること。Ansible Tower の最新のサポートバージョンをインストールすることがベストプラクティスです。詳細は、Red Hat AnsibleTower ドキュメント を参照してください。
- ハブクラスターに Ansible Automation Platform Resource Operator をインストールして、Ansible ジョブをガバナンスフレームワークに接続する。AnsibleJob を使用した Ansible Tower ジョブの実行時に最善の結果を得るには、実行時に Ansible Tower ジョブテンプレートが冪等でなければなりません。Ansible Automation Platform Resource Operator がない場合は、Red Hat OpenShift Container Platform OperatorHub ページから確認することができます。
Ansible Tower 自動化のインストールおよび設定に関する詳細は、「Ansible タスクの設定 (テクノロジープレビュー)」を参照してください。
2.6.1.2. コンソールからのポリシー違反の自動化の作成
ポリシー違反の自動化を設定するには、以下の手順を実行します。
- Red Hat Advanced Cluster Management ハブクラスターにログインします。
- ナビゲーションメニューから Govern を選択します。
- Automation 列の Configure をクリックして、特定のポリシーの自動化を設定します。
- Create policy violation automation パネルが表示されます。
Credential セクションからドロップダウンメニューをクリックし、Ansible 認証情報を選択します。認証情報を追加する必要がある場合は、「認証情報の管理」を参照してください。
注記: この認証情報は、ポリシーと同じ namespace にコピーされます。自動化の開始用に作成された
AnsibleJob
リソースで、この認証情報を使用します。コンソールの Credentials セクションで Ansible 認証情報に加えられた変更は、自動的に更新されます。- ドロップダウンリストをクリックしてジョブテンプレートを選択します。
-
Extra variables セクションで、
PolicyAutomation
のextra_vars
セクションからパラメーター値を追加します。 自動化の頻度を選択します。Manual run、Run once mode、または Disable automation を選択できます。
-
Manual Run: この自動化を手動で設定して 1 回実行します。自動化の実行後に、
無効
に設定されます。 -
Run once mode: ポリシーに違反すると、自動化が 1 回実行されます。自動化の実行後に、
無効
に設定されます。自動化が無効
に設定された後は、引き続き自動化を手動で実行する必要があります。once mode を実行すると、target_clusters
の追加変数にはポリシーに違反するクラスターの一覧が自動的に指定されます。Ansible Tower ジョブテンプレートのEXTRA VARIABLES
セクションで、PROMPT ON LAUNCH
を有効にする必要があります。 -
Disable automation: スケジュールされた自動化が
無効
にされると、設定が更新されるまで自動化は実行されません。
-
Manual Run: この自動化を手動で設定して 1 回実行します。自動化の実行後に、
- 保存 をクリックします。
- History タブから View Job リンクを選択すると、このリンクから Search ページのジョブテンプレートが表示されます。
- ポリシー違反の自動化を追加すると、ステータスが Successful に更新されます。
- ポリシー違反の自動化の名前が Automation 列に表示されるようになりました。
コンソールからポリシー違反の自動化が作成されました。
2.6.1.3. CLI からのポリシー違反の自動化の作成
CLI からポリシー違反の自動化を設定するには、以下の手順を実行します。
-
ターミナルから、
oc login
コマンドを使用して Red Hat Advanced Cluster Management ハブクラスターに再度ログインします。 - 自動化を追加するポリシーを検索するか、または作成します。ポリシー名と namespace をメモします。
以下のサンプルをガイドとして使用して、
Policy Automation
リソースを作成します。apiVersion: policy.open-cluster-management.io/v1beta1 kind: PolicyAutomation metadata: name: policyname-policy-automation spec: automationDef: extra_vars: your_var: your_value name: Policy Compliance Template secret: ansible-tower type: AnsibleJob mode: disabled policyRef: policyname
-
先のサンプルの Ansible ジョブテンプレート名は
Policy Compliance Template
です。この値は、ジョブテンプレート名と一致するように変更してください。 -
extra_vars
セクションで、Ansible ジョブテンプレートに渡す必要があるパラメーターを追加します。 モードを
once
またはdisabled
のいずれかに設定します。once
モードはジョブを 1 回実行し、モードをdisabled
に設定します。-
once mode: ポリシーに違反すると、自動化が 1 回実行されます。自動化の実行後に、
無効
に設定されます。自動化が無効
に設定された後は、引き続き自動化を手動で実行する必要があります。once mode を実行すると、target_clusters
の追加変数にはポリシーに違反するクラスターの一覧が自動的に指定されます。Ansible Tower ジョブテンプレートのEXTRA VARIABLES
セクションで、PROMPT ON LAUNCH
を有効にする必要があります。 -
Disable automation: スケジュールされた自動化が
無効
にされると、設定が更新されるまで自動化は実行されません。
-
once mode: ポリシーに違反すると、自動化が 1 回実行されます。自動化の実行後に、
-
policyRef
は、ポリシーの名前に設定します。 -
Ansible Tower 認証情報を含むこの
Policy Automation
リソースと同じ namespace にシークレットを作成します。上記の例では、シークレット名はansible-tower
です。アプリケーションライフサイクルからののサンプル を使用して、シークレットの作成方法を確認します。 PolicyAutomation
リソースを作成します。注記:
以下のアノテーションを
Policy Automation
リソースに追加することで、ポリシー自動化の即時実行を開始できます。metadata: annotations: policy.open-cluster-management.io/rerun: "true"
-
ポリシーが
once
モードの場合には、ポリシーがコンプライアンス違反があると自動化が実行されます。target_clusters
という名前のextra_vars
変数が追加され、値はコンプライアンス違反のポリシーが含まれる、各マネージドクラスター名の配列です。