2.2. ポリシーの概要
ポリシーを作成および管理し、可視性を高め、標準に合わせて設定を修正するには、Red Hat Advanced Cluster Management for Kubernetes のセキュリティーポリシーフレームワークを使用します。ポリシーの作成には、Kubernetes カスタムリソース定義インスタンスが使用されます。ポリシーは、マネージドクラスターの namespace を除く、ハブクラスター上の任意の namespace に作成できます。マネージドクラスターの namespace にポリシーを作成すると、そのポリシーは Red Hat Advanced Cluster Management によって削除されます。Red Hat Advanced Cluster Management の各ポリシーは、1 つ以上のポリシーテンプレート定義にまとめることができます。ポリシー要素の詳細は、このページの ポリシー YAML の表 のセクションを参照してください。
マネージドクラウド環境が、Kubernetes クラスターでホストされるワークロードの社内エンタープライズセキュリティー標準 (ソフトウェアエンジニアリング、セキュアエンジニアリング、回復力、セキュリティー、および規制コンプライアンスに関する標準) を満たしていることを確認するのは、お客様の責任です。
2.2.1. 前提条件
-
各ポリシーに、ポリシードキュメントの適用先のクラスターを定義する
Placement
リソースと、Red Hat Advanced Cluster Management for Kubernetes ポリシーをバインドするPlacementBinding
リソースが必要です。Placement
リソースの定義方法は、クラスターライフサイクルドキュメントの Placement の概要 を参照してください。 -
マネージドクラスターにポリシーを伝播するには、
PlacementBinding
を作成して、ポリシーをPlacement
にバインドする必要があります。 -
Placement
リソースを使用するには、ManagedClusterSetBinding
リソースを使用して、ManagedClusterSet
リソースをPlacement
リソースの namespace にバインドする必要があります。詳細は、ManagedClusterSetBinding リソースの作成 を参照してください。 -
コンソールからポリシーの
Placement
リソースを作成すると、配置の容認のステータスがPlacement
リソースに自動的に追加されます。詳細は、配置への容認の追加 参照してください。
ベストプラクティス: Placement
リソースの使用時には、コマンドラインインターフェイス (CLI) を使用してポリシーの更新を行います。
以下のセクションでは、ポリシーコンポーネントを説明します。
2.2.2. ポリシー YAML の設定
ポリシーの作成時に、必須パラメーターフィールドと値を含める必要があります。ポリシーコントローラーによっては、他の任意のフィールドおよび値の追加が必要になる場合があります。ポリシーの YAML 設定を以下に示します。
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: annotations: policy.open-cluster-management.io/standards: policy.open-cluster-management.io/categories: policy.open-cluster-management.io/controls: policy.open-cluster-management.io/description: spec: disabled: remediationAction: dependencies: - apiVersion: policy.open-cluster-management.io/v1 compliance: kind: Policy name: namespace: policy-templates: - objectDefinition: apiVersion: kind: metadata: name: spec: --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: bindingOverrides: remediationAction: subFilter: name: placementRef: name: kind: Placement apiGroup: cluster.open-cluster-management.io subjects: - name: kind: apiGroup: --- apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: spec:
2.2.3. ポリシー YAML の表
ポリシーパラメーターの説明は、以下の表を参照してください。
フィールド | 任意または必須 | 説明 |
---|---|---|
| 必須 |
この値は |
| 必須 |
ポリシーのタイプを指定するには、値を |
| 必須 | ポリシーリソースを識別する名前。 |
| 任意 | ポリシーが検証を試みる標準セットを記述する、一連のセキュリティー情報の指定に使用します。ここに記載されているすべてのアノテーションは、コンマ区切りリストを含む文字列として表示されます。 注記: コンソールの ポリシー ページで、ポリシー定義の標準およびカテゴリーに基づいてポリシー違反を表示できます。 |
| 任意 |
このパラメーターを |
| 任意 |
バインドされたポリシーのサブセットを選択するには、このパラメーターを |
| 任意 | ポリシーが関連するセキュリティー標準の名前。たとえば、アメリカ国立標準技術研究所 (NIST: National Institute of Standards and Technology) および Payment Card Industry (PCI) などがあります。 |
| 任意 | セキュリティーコントロールカテゴリーは、1 つ以上の標準に関する特定要件を表します。たとえば、システムおよび情報の整合性カテゴリーには、HIPAA および PCI 標準で必要とされているように、個人情報保護のデータ転送プロトコルが含まれる場合があります。 |
| 任意 | チェックされるセキュリティー制御の名前。たとえば、アクセス制御やシステムと情報のインテグリティーです。 |
| 必須 |
この値は |
| 任意 |
ポリシーの修正を指定します。パラメーターの値は |
| 任意 |
ポリシーをマネージドクラスターに複製するときに、ポリシーのラベルとアノテーションをコピーするかどうかを指定します。 |
| 任意 | コンプライアンスに関する特別な考慮事項を含む詳細な依存オブジェクトのリストを作成するために使用されます。 |
| 必須 | 1 つ以上のポリシーを作成し、マネージドクラスターに適用するのに使用します。 |
| 任意 | ポリシーテンプレートの場合は、これを使用して、コンプライアンスに関する特別な考慮事項を詳述した依存オブジェクトのリストを作成します。 |
| 任意 | 依存関係の基準が検証されるまで、ポリシーテンプレートを準拠としてマークするために使用されます。 重要: 一部のポリシーの種類は、強制機能をサポートしていない場合があります。 |
2.2.4. ポリシーサンプルファイル
ロールの設定ポリシーである以下の YAML ファイルを確認します。
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: policy-role annotations: policy.open-cluster-management.io/standards: NIST SP 800-53 policy.open-cluster-management.io/categories: AC Access Control policy.open-cluster-management.io/controls: AC-3 Access Enforcement policy.open-cluster-management.io/description: spec: remediationAction: inform disabled: false policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: policy-role-example spec: remediationAction: inform # the policy-template spec.remediationAction is overridden by the preceding parameter value for spec.remediationAction. severity: high namespaceSelector: include: ["default"] object-templates: - complianceType: mustonlyhave # role definition should exact match objectDefinition: apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: sample-role rules: - apiGroups: ["extensions", "apps"] resources: ["deployments"] verbs: ["get", "list", "watch", "delete","patch"] --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: binding-policy-role placementRef: name: placement-policy-role kind: Placement apiGroup: cluster.open-cluster-management.io subjects: - name: policy-role kind: Policy apiGroup: policy.open-cluster-management.io --- apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: placement-policy-role spec: predicates: - requiredClusterSelector: labelSelector: matchExpressions: - {key: environment, operator: In, values: ["dev"]}
2.2.5. 関連情報
- ポリシーコントローラー を参照してください。
- ポリシーの作成および更新は、セキュリティーポリシーの管理 を参照してください。また、Red Hat Advanced Cluster Management ポリシーコントローラーを有効にして更新し、ポリシーのコンプライアンスを検証することもできます。
- ガバナンス ドキュメントに戻ります。