Red Hat Advanced Cluster Management for Kubernetes でポリシーの作成および管理時に、ハブクラスターでのルール、プロセス、制御の定義方法を説明するサポート対象のポリシーを確認します。
Expand 表2.8 サポート表 Policy Red Hat OpenShift Container Platform 3.11 Red Hat OpenShift Container Platform 4
メモリー使用状況のポリシー
x
x
Namespace ポリシー
x
x
イメージ脆弱性ポリシー
x
x
Pod ポリシー
x
x
Pod セキュリティーポリシー (非推奨)
ロールポリシー
x
x
Role binding ポリシー
x
x
SCC (Security Context Constraints) ポリシー
x
x
ETCD 暗号化ポリシー
x
gatekeeper ポリシー
x
コンプライアンス Operator ポリシー
x
E8 スキャンポリシー
x
OpenShift CIS スキャンポリシー
x
ポリシーセット
x
Show more
以下のポリシーサンプルを参照し、特定のポリシーの適用方法を確認します。
他のトピックについては、ガバナンス を参照してください。
Kubernetes 設定ポリシーコントローラーは、メモリー使用状況ポリシーのステータスを監視します。メモリー使用状況ポリシーを使用して、メモリーおよびコンピュートの使用量を制限または制約します。詳細は、Kubernetes ドキュメント の Limit Ranges を参照してください。
以下のセクションでは、メモリー使用状況ポリシーの設定について説明します。
メモリー使用状況ポリシーは、以下の YAML ファイルのようになります。
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name:
namespace:
annotations:
policy.open-cluster-management.io/standards:
policy.open-cluster-management.io/categories:
policy.open-cluster-management.io/controls:
spec:
remediationAction:
disabled:
policy-templates:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name:
spec:
remediationAction:
severity:
namespaceSelector:
exclude:
include:
matchLabels:
matchExpressions:
object-templates:
- complianceType: mustonlyhave
objectDefinition:
apiVersion: v1
kind: LimitRange
metadata:
name:
spec:
limits:
- default:
memory:
defaultRequest:
memory:
type:
...
apiVersion : policy.open- cluster- management.io/v1
kind : Policy
metadata :
name :
namespace :
annotations :
policy.open-cluster-management.io/standards :
policy.open-cluster-management.io/categories :
policy.open-cluster-management.io/controls :
spec :
remediationAction :
disabled :
policy-templates :
- objectDefinition :
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name :
spec :
remediationAction :
severity :
namespaceSelector :
exclude :
include :
matchLabels :
matchExpressions :
object-templates :
- complianceType : mustonlyhave
objectDefinition :
apiVersion : v1
kind : LimitRange
metadata :
name :
spec :
limits :
- default :
memory :
defaultRequest :
memory :
type :
...
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
Expand 表2.9 パラメーターの表 フィールド 任意または必須 説明
apiVersion
必須
この値は policy.open-cluster-management.io/v1 に設定します。
kind
必須
ポリシーのタイプを指定するには、値を Policy に設定します。
metadata.name
必須
ポリシーリソースを識別する名前。
metadata.namespace
必須
ポリシーの namespace。
spec.remediationAction
任意
ポリシーの修正を指定します。パラメーターの値は enforce および inform です。この値はオプションです。spec.policy-templates で提供されるすべての値をオーバーライドするためです。
spec.disabled
必須
この値は true または false に設定します。disabled パラメーターを使用すると、ポリシーを有効または無効にすることができます。
spec.policy-templates[].objectDefinition
必須
マネージドクラスターに評価または適用する必要がある Kubernetes オブジェクトを含む設定ポリシーをリスト表示するために使用されます。
Show more
Kubernetes 設定ポリシーコントローラーは、namespace ポリシーのステータスを監視します。Namespace ポリシーを適用し、namespace の特定のルールを定義します。
以下のセクションでは namespace ポリシーの設定について説明します。
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name:
namespace:
annotations:
policy.open-cluster-management.io/standards:
policy.open-cluster-management.io/categories:
policy.open-cluster-management.io/controls:
spec:
remediationAction:
disabled:
policy-templates:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name:
spec:
remediationAction:
severity:
object-templates:
- complianceType:
objectDefinition:
kind: Namespace
apiVersion: v1
metadata:
name:
...
apiVersion : policy.open- cluster- management.io/v1
kind : Policy
metadata :
name :
namespace :
annotations :
policy.open-cluster-management.io/standards :
policy.open-cluster-management.io/categories :
policy.open-cluster-management.io/controls :
spec :
remediationAction :
disabled :
policy-templates :
- objectDefinition :
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name :
spec :
remediationAction :
severity :
object-templates :
- complianceType :
objectDefinition :
kind : Namespace
apiVersion : v1
metadata :
name :
...
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
Expand フィールド 任意または必須 説明
apiVersion
必須
この値は policy.open-cluster-management.io/v1 に設定します。
kind
必須
ポリシーのタイプを指定するには、値を Policy に設定します。
metadata.name
必須
ポリシーリソースを識別する名前。
metadata.namespace
必須
ポリシーの namespace。
spec.remediationAction
任意
ポリシーの修正を指定します。パラメーターの値は enforce および inform です。この値はオプションです。spec.policy-templates で提供されるすべての値をオーバーライドするためです。
spec.disabled
必須
この値は true または false に設定します。disabled パラメーターを使用すると、ポリシーを有効または無効にすることができます。
spec.policy-templates[].objectDefinition
必須
マネージドクラスターに評価または適用する必要がある Kubernetes オブジェクトを含む設定ポリシーをリスト表示するために使用されます。
Show more
イメージ脆弱性ポリシーを適用し、コンテナーセキュリティー Operator を利用してコンテナーイメージに脆弱性があるかどうかを検出します。このポリシーは、コンテナーセキュリティー Operator がインストールされていない場合は、これをマネージドクラスターにインストールします。
イメージ脆弱性ポリシーは、Kubernetes 設定ポリシーコントローラーがチェックします。セキュリティー Operator の詳細は、Quay リポジトリー の コンテナーセキュリティー Operator を参照してください。
注記:
詳細は、以下のセクションを参照してください。
コンテナーセキュリティー operator ポリシーを作成すると、次のポリシーが含まれます。
名前とチャネルを参照するサブスクリプション (container-security-operator) を作成するポリシー。この設定ポリシーには、リソースを作成するために enforce する spec.remediationAction が設定されている必要があります。サブスクリプションは、サブスクリプションがサポートするプロファイルをコンテナーとしてプルします。以下の例を参照してください。
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: policy-imagemanifestvuln-example-sub
spec:
remediationAction: enforce # will be overridden by remediationAction in parent policy
severity: high
object-templates:
- complianceType: musthave
objectDefinition:
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: container-security-operator
namespace: openshift-operators
spec:
# channel: quay-v3.3 # specify a specific channel if desired
installPlanApproval: Automatic
name: container-security-operator
source: redhat-operators
sourceNamespace: openshift-marketplace
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : policy- imagemanifestvuln- example- sub
spec :
remediationAction : enforce
severity : high
object-templates :
- complianceType : musthave
objectDefinition :
apiVersion : operators.coreos.com/v1alpha1
kind : Subscription
metadata :
name : container- security- operator
namespace : openshift- operators
spec :
installPlanApproval : Automatic
name : container- security- operator
source : redhat- operators
sourceNamespace : openshift- marketplace
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
コンテナーセキュリティー operator のインストールが成功したことを確認するために ClusterServiceVersion を監査するための inform 設定ポリシー。以下の例を参照してください。
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: policy-imagemanifestvuln-status
spec:
remediationAction: inform # will be overridden by remediationAction in parent policy
severity: high
object-templates:
- complianceType: musthave
objectDefinition:
apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
namespace: openshift-operators
spec:
displayName: Red Hat Quay Container Security Operator
status:
phase: Succeeded # check the CSV status to determine if operator is running or not
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : policy- imagemanifestvuln- status
spec :
remediationAction : inform
severity : high
object-templates :
- complianceType : musthave
objectDefinition :
apiVersion : operators.coreos.com/v1alpha1
kind : ClusterServiceVersion
metadata :
namespace : openshift- operators
spec :
displayName : Red Hat Quay Container Security Operator
status :
phase : Succeeded
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
ImageManifestVuln オブジェクトがイメージの脆弱性スキャンによって作成されたかどうかを監査する inform 設定ポリシー。以下の例を参照してください。
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: policy-imagemanifestvuln-example-imv
spec:
remediationAction: inform # will be overridden by remediationAction in parent policy
severity: high
namespaceSelector:
exclude: ["kube-*"]
include: ["*"]
object-templates:
- complianceType: mustnothave # mustnothave any ImageManifestVuln object
objectDefinition:
apiVersion: secscan.quay.redhat.com/v1alpha1
kind: ImageManifestVuln # checking for a Kind
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : policy- imagemanifestvuln- example- imv
spec :
remediationAction : inform
severity : high
namespaceSelector :
exclude : [ "kube-*" ]
include : [ "*" ]
object-templates :
- complianceType : mustnothave
objectDefinition :
apiVersion : secscan.quay.redhat.com/v1alpha1
kind : ImageManifestVuln
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
Kubernetes 設定ポリシーコントローラーは、ロールポリシーのステータスを監視します。Pod ポリシーを適用し、Pod のコンテナールールを定義します。この情報を使用するには、Pod がクラスターに存在している必要があります。
以下のセクションでは、Pod ポリシーの設定について説明します。
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name:
namespace:
annotations:
policy.open-cluster-management.io/standards:
policy.open-cluster-management.io/categories:
policy.open-cluster-management.io/controls:
spec:
remediationAction:
disabled:
policy-templates:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name:
spec:
remediationAction:
severity:
namespaceSelector:
exclude:
include:
matchLabels:
matchExpressions:
object-templates:
- complianceType:
objectDefinition:
apiVersion: v1
kind: Pod
metadata:
name:
spec:
containers:
- image:
name:
...
apiVersion : policy.open- cluster- management.io/v1
kind : Policy
metadata :
name :
namespace :
annotations :
policy.open-cluster-management.io/standards :
policy.open-cluster-management.io/categories :
policy.open-cluster-management.io/controls :
spec :
remediationAction :
disabled :
policy-templates :
- objectDefinition :
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name :
spec :
remediationAction :
severity :
namespaceSelector :
exclude :
include :
matchLabels :
matchExpressions :
object-templates :
- complianceType :
objectDefinition :
apiVersion : v1
kind : Pod
metadata :
name :
spec :
containers :
- image :
name :
...
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
Expand 表2.10 パラメーターの表 フィールド 任意または必須 説明
apiVersion
必須
この値は policy.open-cluster-management.io/v1 に設定します。
kind
必須
ポリシーのタイプを指定するには、値を Policy に設定します。
metadata.name
必須
ポリシーリソースを識別する名前。
metadata.namespace
必須
ポリシーの namespace。
spec.remediationAction
任意
ポリシーの修正を指定します。パラメーターの値は enforce および inform です。この値はオプションです。spec.policy-templates で提供されるすべての値をオーバーライドするためです。
spec.disabled
必須
この値は true または false に設定します。disabled パラメーターを使用すると、ポリシーを有効または無効にすることができます。
spec.policy-templates[].objectDefinition
必須
マネージドクラスターに評価または適用する必要がある Kubernetes オブジェクトを含む設定ポリシーをリスト表示するために使用されます。
Show more
Kubernetes 設定ポリシーコントローラーは、Pod セキュリティーポリシーのステータスを監視します。Pod のセキュリティーポリシーを適用して Pod およびコンテナーのセキュリティーを保護します。
以下のセクションでは、Pod セキュリティーポリシーの設定について説明します。
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name:
namespace:
annotations:
policy.open-cluster-management.io/standards:
policy.open-cluster-management.io/categories:
policy.open-cluster-management.io/controls:
spec:
remediationAction:
disabled:
policy-templates:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name:
spec:
remediationAction:
severity:
namespaceSelector:
exclude:
include:
matchLabels:
matchExpressions:
object-templates:
- complianceType:
objectDefinition:
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name:
annotations:
seccomp.security.alpha.kubernetes.io/allowedProfileNames:
spec:
privileged:
allowPrivilegeEscalation:
allowedCapabilities:
volumes:
hostNetwork:
hostPorts:
hostIPC:
hostPID:
runAsUser:
seLinux:
supplementalGroups:
fsGroup:
...
apiVersion : policy.open- cluster- management.io/v1
kind : Policy
metadata :
name :
namespace :
annotations :
policy.open-cluster-management.io/standards :
policy.open-cluster-management.io/categories :
policy.open-cluster-management.io/controls :
spec :
remediationAction :
disabled :
policy-templates :
- objectDefinition :
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name :
spec :
remediationAction :
severity :
namespaceSelector :
exclude :
include :
matchLabels :
matchExpressions :
object-templates :
- complianceType :
objectDefinition :
apiVersion : policy/v1beta1
kind : PodSecurityPolicy
metadata :
name :
annotations :
seccomp.security.alpha.kubernetes.io/allowedProfileNames :
spec :
privileged :
allowPrivilegeEscalation :
allowedCapabilities :
volumes :
hostNetwork :
hostPorts :
hostIPC :
hostPID :
runAsUser :
seLinux :
supplementalGroups :
fsGroup :
...
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
Expand 表2.11 パラメーターの表 フィールド 任意または必須 説明
apiVersion
必須
この値は policy.open-cluster-management.io/v1 に設定します。
kind
必須
ポリシーのタイプを指定するには、値を Policy に設定します。
metadata.name
必須
ポリシーリソースを識別する名前。
metadata.namespace
必須
ポリシーの namespace。
spec.remediationAction
任意
ポリシーの修正を指定します。パラメーターの値は enforce および inform です。この値はオプションです。spec.policy-templates で提供されるすべての値をオーバーライドするためです。
spec.disabled
必須
この値は true または false に設定します。disabled パラメーターを使用すると、ポリシーを有効または無効にすることができます。
spec.policy-templates[].objectDefinition
必須
マネージドクラスターに評価または適用する必要がある Kubernetes オブジェクトを含む設定ポリシーをリスト表示するために使用されます。
Show more
Pod セキュリティーポリシーのサポートは、OpenShift Container Platform 4.12 以降、および Kubernetes v1.25 以降から削除されました。PodSecurityPolicy リソースを適用すると、次の非準拠メッセージを受け取る場合があります。
violation - couldn't find mapping resource with kind PodSecurityPolicy, please check if you have CRD deployed
violation - couldn't find mapping resource with kind PodSecurityPolicy, please check if you have CRD deployed
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
Kubernetes 設定ポリシーコントローラーは、ロールポリシーのステータスを監視します。object-template にロールを定義して、クラスター内の特定ロールのルールおよびパーミッションを設定します。
以下のセクションでは、ロールポリシーの設定について説明します。
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name:
namespace:
annotations:
policy.open-cluster-management.io/standards:
policy.open-cluster-management.io/categories:
policy.open-cluster-management.io/controls:
spec:
remediationAction:
disabled:
policy-templates:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name:
spec:
remediationAction:
severity:
namespaceSelector:
exclude:
include:
matchLabels:
matchExpressions:
object-templates:
- complianceType:
objectDefinition:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name:
rules:
- apiGroups:
resources:
verbs:
...
---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
name: binding-policy-role
namespace:
placementRef:
name: placement-policy-role
kind: PlacementRule
apiGroup: apps.open-cluster-management.io
subjects:
- name: policy-role
kind: Policy
apiGroup: policy.open-cluster-management.io
---
apiVersion: apps.open-cluster-management.io/v1
kind: PlacementRule
metadata:
name: placement-policy-role
namespace:
spec:
clusterConditions:
- type: ManagedClusterConditionAvailable
status: "True"
clusterSelector:
matchExpressions:
[]
...
apiVersion : policy.open- cluster- management.io/v1
kind : Policy
metadata :
name :
namespace :
annotations :
policy.open-cluster-management.io/standards :
policy.open-cluster-management.io/categories :
policy.open-cluster-management.io/controls :
spec :
remediationAction :
disabled :
policy-templates :
- objectDefinition :
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name :
spec :
remediationAction :
severity :
namespaceSelector :
exclude :
include :
matchLabels :
matchExpressions :
object-templates :
- complianceType :
objectDefinition :
apiVersion : rbac.authorization.k8s.io/v1
kind : Role
metadata :
name :
rules :
- apiGroups :
resources :
verbs :
...
---
apiVersion : policy.open- cluster- management.io/v1
kind : PlacementBinding
metadata :
name : binding- policy- role
namespace :
placementRef :
name : placement- policy- role
kind : PlacementRule
apiGroup : apps.open- cluster- management.io
subjects :
- name : policy- role
kind : Policy
apiGroup : policy.open- cluster- management.io
---
apiVersion : apps.open- cluster- management.io/v1
kind : PlacementRule
metadata :
name : placement- policy- role
namespace :
spec :
clusterConditions :
- type : ManagedClusterConditionAvailable
status : "True"
clusterSelector :
matchExpressions :
[ ]
...
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
Expand 表2.12 パラメーターの表 フィールド 任意または必須 説明
apiVersion
必須
この値は policy.open-cluster-management.io/v1 に設定します。
kind
必須
ポリシーのタイプを指定するには、値を Policy に設定します。
metadata.name
必須
ポリシーリソースを識別する名前。
metadata.namespace
必須
ポリシーの namespace。
spec.remediationAction
任意
ポリシーの修正を指定します。パラメーターの値は enforce および inform です。この値はオプションです。spec.policy-templates で提供されるすべての値をオーバーライドするためです。
spec.disabled
必須
この値は true または false に設定します。disabled パラメーターを使用すると、ポリシーを有効または無効にすることができます。
spec.policy-templates[].objectDefinition
必須
マネージドクラスターに評価または適用する必要がある Kubernetes オブジェクトを含む設定ポリシーをリスト表示するために使用されます。
Show more
Kubernetes 設定ポリシーコントローラーは、role binding ポリシーのステータスを監視します。Role Binding ポリシーを適用し、ポリシーをマネージドクラスターの namespace にバインドします。
以下のセクションでは namespace ポリシーの設定について説明します。
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name:
namespace:
annotations:
policy.open-cluster-management.io/standards:
policy.open-cluster-management.io/categories:
policy.open-cluster-management.io/controls:
spec:
remediationAction:
disabled:
policy-templates:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name:
spec:
remediationAction:
severity:
namespaceSelector:
exclude:
include:
matchLabels:
matchExpressions:
object-templates:
- complianceType:
objectDefinition:
kind: RoleBinding # role binding must exist
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name:
subjects:
- kind:
name:
apiGroup:
roleRef:
kind:
name:
apiGroup:
...
apiVersion : policy.open- cluster- management.io/v1
kind : Policy
metadata :
name :
namespace :
annotations :
policy.open-cluster-management.io/standards :
policy.open-cluster-management.io/categories :
policy.open-cluster-management.io/controls :
spec :
remediationAction :
disabled :
policy-templates :
- objectDefinition :
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name :
spec :
remediationAction :
severity :
namespaceSelector :
exclude :
include :
matchLabels :
matchExpressions :
object-templates :
- complianceType :
objectDefinition :
kind : RoleBinding
apiVersion : rbac.authorization.k8s.io/v1
metadata :
name :
subjects :
- kind :
name :
apiGroup :
roleRef :
kind :
name :
apiGroup :
...
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
Expand フィールド 任意または必須 説明
apiVersion
必須
この値は policy.open-cluster-management.io/v1 に設定します。
kind
必須
ポリシーのタイプを指定するには、値を Policy に設定します。
metadata.name
必須
ポリシーリソースを識別する名前。
metadata.namespace
必須
ポリシーの namespace。
spec.remediationAction
任意
ポリシーの修正を指定します。パラメーターの値は enforce および inform です。この値はオプションです。spec.policy-templates で提供されるすべての値をオーバーライドするためです。
spec.disabled
必須
この値は true または false に設定します。disabled パラメーターを使用すると、ポリシーを有効または無効にすることができます。
spec.policy-templates[].objectDefinition
必須
マネージドクラスターに評価または適用する必要がある Kubernetes オブジェクトを含む設定ポリシーをリスト表示するために使用されます。
Show more
Kubernetes 設定ポリシーコントローラーは、SCC (Security Context Constraints) ポリシーのステータスを監視します。SCC (Security Context Constraints) ポリシーを適用し、ポリシーで条件を定義して Pod のパーミッションを制御します。
以下のセクションで、SCC ポリシーについての詳細を説明します。
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name:
namespace:
annotations:
policy.open-cluster-management.io/standards:
policy.open-cluster-management.io/categories:
policy.open-cluster-management.io/controls:
spec:
remediationAction:
disabled:
policy-templates:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name:
spec:
remediationAction:
severity:
namespaceSelector:
exclude:
include:
matchLabels:
matchExpressions:
object-templates:
- complianceType:
objectDefinition:
apiVersion: security.openshift.io/v1
kind: SecurityContextConstraints
metadata:
name:
allowHostDirVolumePlugin:
allowHostIPC:
allowHostNetwork:
allowHostPID:
allowHostPorts:
allowPrivilegeEscalation:
allowPrivilegedContainer:
fsGroup:
readOnlyRootFilesystem:
requiredDropCapabilities:
runAsUser:
seLinuxContext:
supplementalGroups:
users:
volumes:
...
apiVersion : policy.open- cluster- management.io/v1
kind : Policy
metadata :
name :
namespace :
annotations :
policy.open-cluster-management.io/standards :
policy.open-cluster-management.io/categories :
policy.open-cluster-management.io/controls :
spec :
remediationAction :
disabled :
policy-templates :
- objectDefinition :
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name :
spec :
remediationAction :
severity :
namespaceSelector :
exclude :
include :
matchLabels :
matchExpressions :
object-templates :
- complianceType :
objectDefinition :
apiVersion : security.openshift.io/v1
kind : SecurityContextConstraints
metadata :
name :
allowHostDirVolumePlugin :
allowHostIPC :
allowHostNetwork :
allowHostPID :
allowHostPorts :
allowPrivilegeEscalation :
allowPrivilegedContainer :
fsGroup :
readOnlyRootFilesystem :
requiredDropCapabilities :
runAsUser :
seLinuxContext :
supplementalGroups :
users :
volumes :
...
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
Expand フィールド 任意または必須 説明
apiVersion
必須
この値は policy.open-cluster-management.io/v1 に設定します。
kind
必須
ポリシーのタイプを指定するには、値を Policy に設定します。
metadata.name
必須
ポリシーリソースを識別する名前。
metadata.namespace
必須
ポリシーの namespace。
spec.remediationAction
任意
ポリシーの修正を指定します。パラメーターの値は enforce および inform です。この値はオプションです。spec.policy-templates で提供されるすべての値をオーバーライドするためです。
spec.disabled
必須
この値は true または false に設定します。disabled パラメーターを使用すると、ポリシーを有効または無効にすることができます。
spec.policy-templates[].objectDefinition
必須
マネージドクラスターに評価または適用する必要がある Kubernetes オブジェクトを含む設定ポリシーをリスト表示するために使用されます。
Show more
SCC ポリシーの内容の説明は、OpenShift Container Platform ドキュメントの SCC (Security Context Constraints) の管理 を参照してください。
etcd-encryption ポリシーを適用して、ETCD データストアで機密データを検出するか、機密データの暗号化を有効にします。Kubernetes 設定ポリシーコントローラーは、etcd-encryption ポリシーのステータスを監視します。詳細は、OpenShift Container Platform ドキュメントの etcd データの暗号化 を参照してください。注記 : ETCD 暗号化ポリシーは、Red Hat OpenShift Container Platform 4 以降のみをサポートします。
以下のセクションでは、 etcd-encryption ポリシーの設定について説明します。
etcd-encryption ポリシーは、以下の YAML ファイルのようになります。
apiVersion: policy.open-cluster-management.io/v1
kind: Policy
metadata:
name:
namespace:
annotations:
policy.open-cluster-management.io/standards:
policy.open-cluster-management.io/categories:
policy.open-cluster-management.io/controls:
spec:
remediationAction:
disabled:
policy-templates:
- objectDefinition:
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name:
spec:
remediationAction:
severity:
object-templates:
- complianceType:
objectDefinition:
apiVersion: config.openshift.io/v1
kind: APIServer
metadata:
name:
spec:
encryption:
...
apiVersion : policy.open- cluster- management.io/v1
kind : Policy
metadata :
name :
namespace :
annotations :
policy.open-cluster-management.io/standards :
policy.open-cluster-management.io/categories :
policy.open-cluster-management.io/controls :
spec :
remediationAction :
disabled :
policy-templates :
- objectDefinition :
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name :
spec :
remediationAction :
severity :
object-templates :
- complianceType :
objectDefinition :
apiVersion : config.openshift.io/v1
kind : APIServer
metadata :
name :
spec :
encryption :
...
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
Expand 表2.13 パラメーターの表 フィールド 任意または必須 説明
apiVersion
必須
この値は policy.open-cluster-management.io/v1 に設定します。
kind
必須
ポリシーのタイプを指定するには、値を Policy に設定します。
metadata.name
必須
ポリシーリソースを識別する名前。
metadata.namespace
必須
ポリシーの namespace。
spec.remediationAction
任意
ポリシーの修正を指定します。パラメーターの値は enforce および inform です。この値はオプションです。spec.policy-templates で提供されるすべての値をオーバーライドするためです。
spec.disabled
必須
この値は true または false に設定します。disabled パラメーターを使用すると、ポリシーを有効または無効にすることができます。
spec.policy-templates[].objectDefinition
必須
マネージドクラスターに評価または適用する必要がある Kubernetes オブジェクトを含む設定ポリシーをリスト表示するために使用されます。
Show more
コンプライアンス Operator は、OpenSCAP を実行する Operator で、Red Hat OpenShift Container Platform クラスターを必要なセキュリティーベンチマークに常に準拠させることができます。コンプライアンス Operator ポリシーを使用して、マネージドクラスターにコンプライアンス Operator をインストールできます。
コンプライアンス Operator ポリシーは、Kubernetes 設定ポリシーとして Red Hat Advanced Cluster Management に作成されます。コンプライアンス Operator ポリシーは、OpenShift Container Platform 4.6 および 4.7 でサポートされます。詳細は、OpenShift Container Platform ドキュメントの コンプライアンス Operator について を参照してください。
注記: コンプライアンス Operator ポリシー は、IBM Power または IBM Z アーキテクチャーではサポートされていない OpenShift Container Platform コンプライアンス Operator に依存します。コンプライアンス Operator の詳細は、OpenShift Container Platform ドキュメントの コンプライアンス Operator について を参照してください。
コンプライアンス Operator ポリシーを作成すると、次のリソースが作成されます。
Operator インストール用のコンプライアンス Operator namespace (openshift-compliance):
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: comp-operator-ns
spec:
remediationAction: inform # will be overridden by remediationAction in parent policy
severity: high
object-templates:
- complianceType: musthave
objectDefinition:
apiVersion: v1
kind: Namespace
metadata:
name: openshift-compliance
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : comp- operator- ns
spec :
remediationAction : inform
severity : high
object-templates :
- complianceType : musthave
objectDefinition :
apiVersion : v1
kind : Namespace
metadata :
name : openshift- compliance
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
対象の namespace を指定する Operator グループ (compliance-operator):
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: comp-operator-operator-group
spec:
remediationAction: inform # will be overridden by remediationAction in parent policy
severity: high
object-templates:
- complianceType: musthave
objectDefinition:
apiVersion: operators.coreos.com/v1
kind: OperatorGroup
metadata:
name: compliance-operator
namespace: openshift-compliance
spec:
targetNamespaces:
- openshift-compliance
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : comp- operator- operator- group
spec :
remediationAction : inform
severity : high
object-templates :
- complianceType : musthave
objectDefinition :
apiVersion : operators.coreos.com/v1
kind : OperatorGroup
metadata :
name : compliance- operator
namespace : openshift- compliance
spec :
targetNamespaces :
- openshift- compliance
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
名前とチャネルを参照するためのサブスクリプション (comp-operator-subscription)。サブスクリプションは、サポートするプロファイルをコンテナーとしてプルします。
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: comp-operator-subscription
spec:
remediationAction: inform # will be overridden by remediationAction in parent policy
severity: high
object-templates:
- complianceType: musthave
objectDefinition:
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: compliance-operator
namespace: openshift-compliance
spec:
channel: "4.7"
installPlanApproval: Automatic
name: compliance-operator
source: redhat-operators
sourceNamespace: openshift-marketplace
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : comp- operator- subscription
spec :
remediationAction : inform
severity : high
object-templates :
- complianceType : musthave
objectDefinition :
apiVersion : operators.coreos.com/v1alpha1
kind : Subscription
metadata :
name : compliance- operator
namespace : openshift- compliance
spec :
channel : "4.7"
installPlanApproval : Automatic
name : compliance- operator
source : redhat- operators
sourceNamespace : openshift- marketplace
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
コンプライアンス Operator ポリシーをインストールすると、compliance-operator 、ocp4 、および rhcos4 の Pod が作成されます。policy-compliance-operator-install.yaml のサンプルを参照してください。
コンプライアンス Operator をインストールした後に、E8 スキャンポリシーと OpenShift CIS スキャンポリシーを作成して適用することもできます。詳細は、E8 スキャンポリシー および OpenShift CIS スキャンポリシー を参照してください。
コンプライアンス Operator ポリシーの管理に関する詳細は、セキュリティポリシーの管理 を参照してください。設定ポリシーの他のトピックについては、Kubernetes 設定ポリシーコントローラー を参照してください。
Essential 8 (E8) スキャンポリシーは、マスターノードとワーカーノードが E8 セキュリティープロファイルに準拠しているかどうかを確認するスキャンをデプロイします。E8 スキャンポリシーを適用するには、コンプライアンス Operator をインストールする必要があります。
E8 スキャンポリシーは、Kubernetes 設定ポリシーとして Red Hat Advanced Cluster Management に作成されます。E8 スキャンポリシーは OpenShift Container Platform 4.6 および 4.7 でサポートされます。詳細は、OpenShift Container Platform ドキュメント の コンプライアンス Operator について を参照してください。
E8 スキャンポリシーを作成すると、次のリソースが作成されます。
スキャンするプロファイルを特定する ScanSettingBinding リソース (e8):
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: compliance-suite-e8
spec:
remediationAction: inform
severity: high
object-templates:
- complianceType: musthave # this template checks if scan has completed by checking the status field
objectDefinition:
apiVersion: compliance.openshift.io/v1alpha1
kind: ScanSettingBinding
metadata:
name: e8
namespace: openshift-compliance
profiles:
- apiGroup: compliance.openshift.io/v1alpha1
kind: Profile
name: ocp4-e8
- apiGroup: compliance.openshift.io/v1alpha1
kind: Profile
name: rhcos4-e8
settingsRef:
apiGroup: compliance.openshift.io/v1alpha1
kind: ScanSetting
name: default
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : compliance- suite- e8
spec :
remediationAction : inform
severity : high
object-templates :
- complianceType : musthave
objectDefinition :
apiVersion : compliance.openshift.io/v1alpha1
kind : ScanSettingBinding
metadata :
name : e8
namespace : openshift- compliance
profiles :
- apiGroup : compliance.openshift.io/v1alpha1
kind : Profile
name : ocp4- e8
- apiGroup : compliance.openshift.io/v1alpha1
kind : Profile
name : rhcos4- e8
settingsRef :
apiGroup : compliance.openshift.io/v1alpha1
kind : ScanSetting
name : default
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
status フィールドを確認してスキャンが完了したかどうかを確認する ComplianceSuite リソース (compliance-suite-e8):
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: compliance-suite-e8
spec:
remediationAction: inform
severity: high
object-templates:
- complianceType: musthave # this template checks if scan has completed by checking the status field
objectDefinition:
apiVersion: compliance.openshift.io/v1alpha1
kind: ComplianceSuite
metadata:
name: e8
namespace: openshift-compliance
status:
phase: DONE
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : compliance- suite- e8
spec :
remediationAction : inform
severity : high
object-templates :
- complianceType : musthave
objectDefinition :
apiVersion : compliance.openshift.io/v1alpha1
kind : ComplianceSuite
metadata :
name : e8
namespace : openshift- compliance
status :
phase : DONE
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
ComplianceCheckResult カスタムリソース (CR) を確認してスキャンスイートの結果を報告する ComplianceCheckResult リソース (compliance-suite-e8-results):
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: compliance-suite-e8-results
spec:
remediationAction: inform
severity: high
object-templates:
- complianceType: mustnothave # this template reports the results for scan suite: e8 by looking at ComplianceCheckResult CRs
objectDefinition:
apiVersion: compliance.openshift.io/v1alpha1
kind: ComplianceCheckResult
metadata:
namespace: openshift-compliance
labels:
compliance.openshift.io/check-status: FAIL
compliance.openshift.io/suite: e8
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : compliance- suite- e8- results
spec :
remediationAction : inform
severity : high
object-templates :
- complianceType : mustnothave
objectDefinition :
apiVersion : compliance.openshift.io/v1alpha1
kind : ComplianceCheckResult
metadata :
namespace : openshift- compliance
labels :
compliance.openshift.io/check-status : FAIL
compliance.openshift.io/suite : e8
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
注記: 自動修復はサポート対象です。ScanSettingBinding リソースを作成するには修復アクションを enforce に設定します。
policy-compliance-operator-e8-scan.yaml の サンプルを参照してください。詳細は、セキュリティーポリシーの管理 を参照してください。注記: E8 ポリシーの削除後に、これはターゲットクラスターから削除されます。
OpenShift CIS スキャンポリシーは、マスターとワーカーノードをチェックして、OpenShift CIS セキュリティーベンチマークに準拠しているかどうかを確認するスキャンをデプロイします。OpenShift CIS ポリシーを適用するには、コンプライアンス Operator をインストールする必要があります。
OpenShift CIS ポリシーは、Kubernetes 設定ポリシーとして Red Hat Advanced Cluster Management に作成されます。OpenShift CIS スキャンポリシーは OpenShift Container Platform 4.6 および 4.7、4.9 でサポートされます。詳細は、OpenShift Container Platform ドキュメントの コンプライアンス Operator について を参照してください。
OpenShift CIS スキャンポリシーを作成すると、次のリソースが作成されます。
スキャンするプロファイルを特定する ScanSettingBinding リソース (cis):
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: compliance-cis-scan
spec:
remediationAction: inform
severity: high
object-templates:
- complianceType: musthave # this template creates ScanSettingBinding:cis
objectDefinition:
apiVersion: compliance.openshift.io/v1alpha1
kind: ScanSettingBinding
metadata:
name: cis
namespace: openshift-compliance
profiles:
- apiGroup: compliance.openshift.io/v1alpha1
kind: Profile
name: ocp4-cis
- apiGroup: compliance.openshift.io/v1alpha1
kind: Profile
name: ocp4-cis-node
settingsRef:
apiGroup: compliance.openshift.io/v1alpha1
kind: ScanSetting
name: default
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : compliance- cis- scan
spec :
remediationAction : inform
severity : high
object-templates :
- complianceType : musthave
objectDefinition :
apiVersion : compliance.openshift.io/v1alpha1
kind : ScanSettingBinding
metadata :
name : cis
namespace : openshift- compliance
profiles :
- apiGroup : compliance.openshift.io/v1alpha1
kind : Profile
name : ocp4- cis
- apiGroup : compliance.openshift.io/v1alpha1
kind : Profile
name : ocp4- cis- node
settingsRef :
apiGroup : compliance.openshift.io/v1alpha1
kind : ScanSetting
name : default
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
status フィールドを確認してスキャンが完了したかどうかを確認する ComplianceSuite リソース (compliance-suite-cis):
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: compliance-suite-cis
spec:
remediationAction: inform
severity: high
object-templates:
- complianceType: musthave # this template checks if scan has completed by checking the status field
objectDefinition:
apiVersion: compliance.openshift.io/v1alpha1
kind: ComplianceSuite
metadata:
name: cis
namespace: openshift-compliance
status:
phase: DONE
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : compliance- suite- cis
spec :
remediationAction : inform
severity : high
object-templates :
- complianceType : musthave
objectDefinition :
apiVersion : compliance.openshift.io/v1alpha1
kind : ComplianceSuite
metadata :
name : cis
namespace : openshift- compliance
status :
phase : DONE
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
ComplianceCheckResult カスタムリソース (CR) を確認してスキャンスイートの結果を報告する ComplianceCheckResult リソース (compliance-suite-cis-results):
apiVersion: policy.open-cluster-management.io/v1
kind: ConfigurationPolicy
metadata:
name: compliance-suite-cis-results
spec:
remediationAction: inform
severity: high
object-templates:
- complianceType: mustnothave # this template reports the results for scan suite: cis by looking at ComplianceCheckResult CRs
objectDefinition:
apiVersion: compliance.openshift.io/v1alpha1
kind: ComplianceCheckResult
metadata:
namespace: openshift-compliance
labels:
compliance.openshift.io/check-status: FAIL
compliance.openshift.io/suite: cis
apiVersion : policy.open- cluster- management.io/v1
kind : ConfigurationPolicy
metadata :
name : compliance- suite- cis- results
spec :
remediationAction : inform
severity : high
object-templates :
- complianceType : mustnothave
objectDefinition :
apiVersion : compliance.openshift.io/v1alpha1
kind : ComplianceCheckResult
metadata :
namespace : openshift- compliance
labels :
compliance.openshift.io/check-status : FAIL
compliance.openshift.io/suite : cis
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
policy-compliance-operator-cis-scan.yaml ファイルのサンプルを参照してください。ポリシーの作成に関する詳細は、セキュリティーポリシーの管理 を参照してください。