3.7. セキュリティーポリシーの管理
セキュリティーポリシーを作成して、指定のセキュリティー標準、カテゴリー、制御をもとにクラスターのコンプライアンスを報告して検証します。
以下のセクションを参照してください。
3.7.1. セキュリティーポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインインターフェイス (CLI) またはコンソールからセキュリティーポリシーを作成できます。
必要なアクセス権限: クラスターの管理者
重要: ポリシーを特定のクラスターに適用するには、配置ルールおよび配置バインディングを定義する必要があります。Cluster selector フィールドに値を入力して、PlacementRule と PlacementBinding を定義します。有効な式については、Kubernetes ドキュメントの セットベースの要件をサポートするリソース を参照してください。Red Hat Advanced Cluster Management for Kubernetes ポリシーに必要なオブジェクトの定義を表示します。
- PlacementRule: ポリシーをデプロイする必要のある クラスターセレクター を定義します。
- PlacementBinding: 配置を配置ルールにバインドします。
ポリシー YAML ファイルに関する詳細は、ポリシーの概要 を参照してください。
3.7.1.1. コマンドラインインターフェイスからのセキュリティーポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインインターフェイス (CLI) からポリシーを作成するには、以下の手順を実行します。
以下のコマンドを実行してポリシーを作成します。
kubectl create -f policy.yaml -n <policy-namespace>
kubectl create -f policy.yaml -n <policy-namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーが使用するテンプレートを定義します。
.yamlファイルを編集し、policy-templatesフィールドを追加してテンプレートを定義します。ポリシーは以下の YAML ファイルのようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow PlacementRuleを定義します。clusterSelectorを調整して、PlacementRuleを変更し、ポリシーを適用する必要があるクラスターを指定してください。配置ルールの例の概要 を確認してください。PlacementRuleは以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow PlacementBindingを定義して、ポリシーをPlacementRuleをバインドします。PlacementBindingは以下の YAML の例のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7.1.1.1. CLI からのセキュリティーポリシーの表示 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を実行して、CLI からセキュリティーポリシーを表示します。
以下のコマンドを実行して、特定のセキュリティーポリシーの詳細を表示します。
kubectl get policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace> -o yaml
kubectl get policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、セキュリティーポリシーの詳細を表示します。
kubectl describe policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>
kubectl describe policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7.1.2. コンソールからのクラスターセキュリティーポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management にログインしたら、Governance ページに移動し、Create policy をクリックします。
コンソールから新規ポリシーを作成すると、YAML エディターで YAML ファイルも作成されます。YAML エディターを表示するには、Create policy フォームの最初にトグルを選択して有効にします。
Create policy フォームに入力し、Submit ボタンを選択します。
YAML ファイルは以下のポリシーのようになります。
Create Policy をクリックします。コンソールからセキュリティーポリシーが作成されました。
3.7.1.2.1. コンソールからのセキュリティーポリシーの表示 リンクのコピーリンクがクリップボードにコピーされました!
コンソールからセキュリティーポリシーおよびそのステータスを表示します。Governance ページに移動し、ポリシー表の一覧を表示します。注記: ポリシー表の一覧をフィルタリングするには、Policies タブまたは Cluster violations タブを選択します。
詳細を表示するポリシーを 1 つ選択します。Details、Clusters、および Templates タブが表示されます。クラスターまたはポリシーのステータスを判断できない場合は、No status メッセージが表示されます。
3.7.1.3. CLI からのポリシーセットの作成 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、ポリシーまたは配置のないポリシーセットが作成されます。ポリシーセットの配置を作成し、クラスターに存在するポリシーを 1 つ以上設定する必要があります。ポリシーセットを作成する場合は、多くのポリシーを追加できます。以下のコマンドを実行して CLI からポリシーセットを作成します。
kubectl apply -f <policyset-filename>
kubectl apply -f <policyset-filename>
3.7.1.4. コンソールからのポリシーセットの作成 リンクのコピーリンクがクリップボードにコピーされました!
ナビゲーションメニューから Govern を選択します。次に、Policy sets タブを選択します。Create policy set ボタンを選択し、フォームを完了します。ポリシーセットの詳細情報を追加したら、Submit ボタンを選択します。
デプロイメントにポリシージェネレーターが必要な stable Policyets を表示します (PolicySets-- Stable)。
3.7.2. セキュリティーポリシーの更新 リンクのコピーリンクがクリップボードにコピーされました!
以下のセクションを参照して、セキュリティーポリシーを更新します。
3.7.2.1. CLI からのポリシーセットへのポリシーの追加 リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを実行してポリシーセットを編集します (kubectl edit policysets your-policyset-name)。
ポリシーセットの policies セクションのリストにポリシー名を追加します。kubectl apply -f your-added-policy.yaml のコマンドを使用して、ポリシーセットの配置セクションに、追加したポリシーを適用します。PlacementBinding および PlacementRule が作成されます。注記: 配置バインディングを削除すると、ポリシーはポリシーセットによって配置されます。
3.7.2.2. コンソールからのポリシーセットへのポリシーの追加 リンクのコピーリンクがクリップボードにコピーされました!
Policy sets タブを選択して、ポリシーセットにポリシーを追加します。Actions アイコンを選択し、Edit を選択します。Edit policy set フォームが表示されます。
フォームの Policies セクションに移動し、ポリシーセットに追加するポリシーを選択します。
3.7.2.3. セキュリティーポリシーの無効化 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、ポリシーは有効です。コンソールからポリシーを無効にします。
Red Hat Advanced Cluster Management for Kubernetes コンソールにログインしたら、Governance ページに移動し、ポリシー表のリストを表示します。
Actions アイコン > Disable policy の順に選択します。Disable Policy ダイアログボックスが表示されます。
Disable policy をクリックします。ポリシーが無効化されました。
3.7.3. セキュリティーポリシーの削除 リンクのコピーリンクがクリップボードにコピーされました!
CLI またはコンソールからセキュリティーポリシーを削除します。
CLI からセキュリティーポリシーを削除します。
以下のコマンドを実行してセキュリティーポリシーを削除します。
kubectl delete policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>
kubectl delete policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポリシーを削除すると、ターゲットクラスターから削除されます。次のコマンドを実行して、ポリシーが削除されていることを確認します:
kubectl get policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>
コンソールからセキュリティーポリシーを削除します。
ナビゲーションメニューから Governance をクリックし、ポリシー表のリストを表示します。ポリシー違反表で、削除するポリシーの Actions アイコンをクリックします。
Remove をクリックします。Remove policy ダイアログボックスから Remove policy をクリックします。
3.7.3.1. コンソールからのポリシーセットの削除 リンクのコピーリンクがクリップボードにコピーされました!
Policy sets タブから、ポリシーセットの Actions アイコンを選択します。Delete をクリックすると、Permanently delete Policyset? ダイアログボックスが表示されます。
Delete ボタンをクリックします。
他のポリシーの管理については、セキュリティーポリシーの管理 を参照してください。ポリシーに関する他のトピックについては、ガバナンス を参照してください。
3.7.4. ポリシーによって作成されたリソースのクリーンアップ リンクのコピーリンクがクリップボードにコピーされました!
ポリシーによって作成されたリソースをクリーンアップするには、設定ポリシーで pruneObjectBehavior パラメーターを使用します。pruneObjectBehavior が設定されている場合、関連するオブジェクトは、関連する設定ポリシー (または親ポリシー) が削除された後にのみクリーンアップされます。パラメーターに使用できる値について、次の説明を参照してください。
-
DeleteIfCreated: ポリシーによって作成されたすべてのリソースをクリーンアップします。 -
DeleteAll: ポリシーによって管理されるすべてのリソースをクリーンアップします。 -
None: これはデフォルト値であり、関連するリソースが削除されない以前のリリースと同じ動作を維持します。
CLI からポリシーを作成するときに、値を YAML で直接設定できます。コンソールから、Policy templates ステップの Prune Object Behavior セクションで値を選択できます。
注記: Operator をインストールするポリシーが、定義された pruneObjectBehavior パラメーターを使用する場合、Operator のアンインストールを完了するには、追加のクリーンアップが必要です。追加のクリーンアップには、Operator ClusterServiceVersion オブジェクトの削除が含まれる場合があります。