次のコマンドと例を使用して、Container Securityでクラスター管理ポリシーのためのクラスター ポリシーとランタイム ルールセットのカスタム リソースを作成します。
クラスター管理ポリシーはデフォルトでは有効になっていません。このポリシータイプを有効にするには、次の内容を
overrides.yaml ファイルに追加してください:visionOne:
policyOperator:
enabled: true
clusterPolicyName: <name of your policy custom resource>
ポリシーをクラスターに適用
クラスター管理ポリシーに適用できるルール、例外、およびXDR有効化リソースの詳細については、クラスター管理ポリシーのカスタムリソースを参照してください。
次のコマンドを使用して、ポリシーをクラスターに適用します:
注意ファイル名を
policy.yamlにする必要はありません。 |
kubectl apply -f policy.yaml
注意クラスター ポリシーのカスタム リソース名は、values または
overrides.yaml ファイルに指定された名前と一致している必要があります。 |
次は、クラスタ管理ポリシーファイルの例です:
apiVersion: container-security.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
カスタムリソースルールセット
ランタイムルールセットはランタイムセキュリティのルールを定義します。これらのFalcoルールはトレンドマイクロによって管理され、ruleIDで参照されます。
RuntimeRuleset仕様には、labelsとrulesの2つのフィールドを含むランタイム定義が含まれています。[labels]: ラベルセレクターを使用してルールが適用されるポッドラベルの配列です。ラベルがない場合、ルールはすべてのポッドに適用されます。
- [key]: ラベルキー。
- [value]: ラベル値。
[rules]: ルールIDの配列と、ルールがトリガーされたときに適用する緩和策。
- [ruleID]: トレンドマイクロのランタイムルールIDは
TM-{8 digit id}です (例: TM-00000001)。利用可能な定義済みルールのリストを表示。 - [mitigation]: ルールが一致したときに実行された処理。
log、isolate、またはterminateを使用します。
次のコマンドを使用してランタイムルールセットを適用します:
注意ファイル名を
runtimeruleset.yamlにする必要はありません。 |
kubectl apply -f runtimeruleset.yaml
次の例は、ランタイムルールセットファイルです:
apiVersion: container-security.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
