4.16. セキュリティーポリシーの管理


指定したセキュリティー標準、カテゴリー、および制御に基づいてクラスターのコンプライアンスを報告および検証するためのセキュリティーポリシーを作成します。

以下のセクションを参照してください。

4.16.1. セキュリティーポリシーの作成

セキュリティーポリシーは、コマンドラインまたはコンソールから作成できます。

必要なアクセス権: クラスター管理者

重要: * ポリシーを特定のクラスターに適用するには、配置および配置バインディングを定義する必要があります。PlacementBinding リソースは配置をバインドします。クラスターの Label selector フィールドに有効な値を入力して、Placement および PlacementBinding リソースを定義してください。* Placement リソースを使用するには、ManagedClusterSetBinding リソースを使用して、ManagedClusterSet リソースを Placement リソースの namespace にバインドする必要があります。詳細は、ManagedClusterSetBinding リソースの作成 を参照してください。

4.16.1.1. コマンドラインインターフェイスからのセキュリティーポリシーの作成

コマンドラインからポリシーを作成するには、次の手順を実行します。

  1. 以下のコマンドを実行してポリシーを作成します。

    oc create -f policy.yaml -n <policy-namespace>
  2. ポリシーが使用するテンプレートを定義します。YAML ファイルを編集し、policy-templates フィールドを追加してテンプレートを定義します。ポリシーは以下の YAML ファイルのようになります。

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy1
    spec:
      remediationAction: "enforce" # or inform
      disabled: false # or true
      namespaceSelector:
        include:
        - "default"
        - "my-namespace"
      policy-templates:
        - objectDefinition:
            apiVersion: policy.open-cluster-management.io/v1
            kind: ConfigurationPolicy
            metadata:
              name: operator
              # namespace: # will be supplied by the controller via the namespaceSelector
            spec:
              remediationAction: "inform"
              object-templates:
              - complianceType: "musthave" # at this level, it means the role must exist and must have the following rules
                apiVersion: rbac.authorization.k8s.io/v1
                kind: Role
                metadata:
                  name: example
                objectDefinition:
                  rules:
                    - complianceType: "musthave" # at this level, it means if the role exists the rule is a musthave
                      apiGroups: ["extensions", "apps"]
                      resources: ["deployments"]
                      verbs: ["get", "list", "watch", "create", "delete","patch"]
  3. PlacementBinding リソースを定義して、ポリシーを Placement リソースにバインドします。PlacementBinding リソースは、次の YAML の例のようになります。

    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding1
    placementRef:
      name: placement1
      apiGroup: cluster.open-cluster-management.io
      kind: Placement
    subjects:
    - name: policy1
      apiGroup: policy.open-cluster-management.io
      kind: Policy
4.16.1.1.1. コマンドラインからセキュリティーポリシーを表示する

コマンドラインからセキュリティーポリシーを表示するには、次の手順を実行します。

  1. 以下のコマンドを実行して、特定のセキュリティーポリシーの詳細を表示します。

    oc get policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace> -o yaml
  2. 以下のコマンドを実行して、セキュリティーポリシーの詳細を表示します。

    oc describe policies.policy.open-cluster-management.io <policy-name> -n <policy-namespace>

4.16.1.2. コンソールからのクラスターセキュリティーポリシーの作成

Red Hat Advanced Cluster Management にログインしたら、Governance ページに移動し、Create policy をクリックします。コンソールから新規ポリシーを作成すると、YAML エディターで YAML ファイルも作成されます。YAML エディターを表示するには、Create policy フォームの最初にトグルを選択して有効にします。

  1. Create policy フォームに入力し、Submit ボタンを選択します。YAML ファイルは以下のポリシーのようになります。

    apiVersion: policy.open-cluster-management.io/v1
    kind: Policy
    metadata:
      name: policy-pod
      annotations:
        policy.open-cluster-management.io/categories: 'SystemAndCommunicationsProtections,SystemAndInformationIntegrity'
        policy.open-cluster-management.io/controls: 'control example'
        policy.open-cluster-management.io/standards: 'NIST,HIPAA'
        policy.open-cluster-management.io/description:
    spec:
      complianceType: musthave
      namespaces:
        exclude: ["kube*"]
        include: ["default"]
        pruneObjectBehavior: None
      object-templates:
      - complianceType: musthave
        objectDefinition:
          apiVersion: v1
          kind: Pod
          metadata:
            name: pod1
          spec:
            containers:
            - name: pod-name
              image: 'pod-image'
              ports:
              - containerPort: 80
      remediationAction: enforce
      disabled: false

    次の PlacementBinding の例を参照してください。

    apiVersion: policy.open-cluster-management.io/v1
    kind: PlacementBinding
    metadata:
      name: binding-pod
    placementRef:
      name: placement-pod
      kind: Placement
      apiGroup: cluster.open-cluster-management.io
    subjects:
    - name: policy-pod
      kind: Policy
      apiGroup: policy.open-cluster-management.io

    次の Placement の例を参照してください。

    apiVersion: cluster.open-cluster-management.io/v1beta1
     kind: Placement
     metadata:
       name: placement-pod
    spec:
      predicates:
      - requiredClusterSelector:
          labelSelector:
            matchLabels:
              cloud: "IBM"
        tolerations:
            - key: cluster.open-cluster-management.io/unavailable
              operator: Exists
            - key: cluster.open-cluster-management.io/unreachable
              operator: Exists
  2. オプション: ポリシーの説明を追加します。
  3. Create Policy をクリックします。コンソールからセキュリティーポリシーが作成されました。
4.16.1.2.1. コンソールからのセキュリティーポリシーの表示

コンソールからセキュリティーポリシーとステータスを表示します。

  1. Governance ページに移動し、ポリシー表の一覧を表示します。注記: ポリシー表の一覧をフィルタリングするには、Policies タブまたは Cluster violations タブを選択します。
  2. 詳細を表示するポリシーを 1 つ選択します。DetailsClusters、および Templates タブが表示されます。クラスターまたはポリシーのステータスを判断できない場合は、No status メッセージが表示されます。
  3. または、Policies タブを選択してポリシーのリストを表示します。ポリシーの行を展開すると、DescriptionStandardsControls、および Categories の詳細が表示されます。

4.16.1.3. コマンドラインからポリシーセットを作成する

デフォルトでは、ポリシーまたは配置のないポリシーセットが作成されます。ポリシーセットの配置を作成し、クラスターに存在するポリシーを 1 つ以上設定する必要があります。ポリシーセットを作成する場合は、多くのポリシーを追加できます。

コマンドラインからポリシーセットを作成するには、次のコマンドを実行します。

oc apply -f <policyset-filename>

4.16.1.4. コンソールからのポリシーセットの作成

  1. ナビゲーションメニューから Governance を選択します。
  2. Policy sets タブを選択します。
  3. Create policy set ボタンを選択し、フォームを完了します。
  4. ポリシーセットの詳細を追加し、送信 ボタンを選択します。

ポリシーがポリシーテーブルからリスト表示されます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る