Use the following commands and examples to create the cluster policy and runtime ruleset
custom
resources for your cluster-managed policies in Container Inventory.
Cluster-managed policies are not enabled by default. To enable this policy type, add
the following to your
overrides.yaml
file:cloudOne: policyOperator: enabled: true clusterPolicyName: <name of your policy custom resource>
Apply policy to cluster
For information on the rules, exceptions, and XDR enablement resources that you can
apply to
your cluster managed policy, see Custom resources for cluster-managed
policies.
Use the following command to apply your policy to a cluster:
NoteYour file does not have to be named
policy.yaml . |
kubectl apply -f policy.yaml
NoteThe cluster policy custom resource name must match the name specified in the values
or the
overrides.yaml file. |
The following is an example of a cluster-managed policy file:
apiVersion: visionone.trendmicro.com/v1alpha1 kind: ClusterPolicy metadata: name: trendmicro-cluster-policy spec: xdrEnabled: true rules: # Pod properties - type: hostNetwork action: log mitigation: log - type: hostIPC action: log mitigation: log - type: hostPID action: log mitigation: log # Container properties - type: runAsNonRoot action: log mitigation: log - type: privileged action: log mitigation: log - type: privileged action: log mitigation: log - type: allowPrivilegeEscalation action: log mitigation: log - type: readOnlyRootFilesystem action: log mitigation: log - type: containerCapabilities properties: capabilityRestriction: baseline action: log mitigation: log # Image properties - type: imageRegistry properties: operator: equals values: - 198890578717.dkr.ecr.us-east-1.amazonaws.com/sample-registry action: log mitigation: log - type: imageName properties: operator: startsWith values: - nginx - alpine action: log mitigation: log - type: imageTag properties: operator: notEquals values: - latest action: log mitigation: log - type: imagePath properties: operator: contains values: - example.com/org/repo - example.com/image action: log mitigation: log # Unscanned images - type: imagesNotScanned properties: scanType: vulnerability maxScanAge: 30 action: log mitigation: log - type: imagesNotScanned properties: scanType: malware maxScanAge: 30 action: log mitigation: log - type: imagesNotScanned properties: scanType: secret maxScanAge: 30 action: log mitigation: log # Artifact Scanner Scan results - type: imagesWithMalware action: log mitigation: log - type: imagesWithSecrets action: log mitigation: log - type: imagesWithVulnerabilities properties: severity: critical action: log mitigation: log - type: imagesWithCVSSAttackVector properties: attackVector: network severity: high action: log mitigation: log - type: imagesWithCVSSAttackComplexity properties: attackComplexity: high severity: high action: log mitigation: log - type: imagesWithCVSSAvailabilityImpact properties: availabilityImpact: low severity: high action: log mitigation: log # Kubectl Access - type: podExec action: log mitigation: log - type: podPortForward action: log mitigation: log # Exceptions exceptions: - type: imageName properties: operator: equals values: - sampleImage namespaces: # exclude to apply to all namespaces - sample-namespace - type: imageRegistry properties: operator: equals values: - 198890578717.dkr.ecr.us-east-1.amazonaws.com/sample-registry
Custom resource ruleset
The Runtime Ruleset defines the rules for runtime security. These Falco rules are
managed by Trend Micro and referenced with the ruleID. The
RuntimeRuleset
spec contains the runtime definition with two fields: labels
and rules
.labels: An array of pod labels where the rules are applied using label selectors. Without
the labels, the rules are applied to all pods.
- key: Label key.
- value: Label value.
rules: An array of rule IDs and the mitigation to apply when the rule is triggered.
- ruleID: The Trend Micro runtime ruleID as
TM-{8 digit id}
(example: TM-00000001). View the list of available, predefined rules. - mitigation: The action taken when a rule is matched. Use
log
,isolate
, orterminate
.
Use the following command to apply the runtime ruleset:
NoteYour file does not have to be named
runtimeruleset.yaml . |
kubectl apply -f runtimeruleset.yaml
The following is an example of a runtime ruleset file:
apiVersion: visionone.trendmicro.com/v1alpha1 kind: RuntimeRuleset metadata: labels: app.kubernetes.io/name: init app.kubernetes.io/managed-by: kustomize name: trendmicro-ruleset-sample spec: definition: labels: - key: "app" value: "nginx" rules: - ruleID: TM-00000001 mitigation: log - ruleID: TM-00000002 mitigation: log - ruleID: TM-00000003 mitigation: isolate - ruleID: TM-00000004 mitigation: terminate