Wie erstelle ich manuell eine Kubernetes-Netzwerkrichtlinie für kontinuierliche Compliance?
Standardmäßig erstellt die Container Security kontinuierliche Compliance eine Kubernetes-Netzwerkrichtlinie
in Ihrem Namen. Wenn Sie die Richtlinie manuell erstellen möchten, folgen Sie den
unten stehenden Schritten:
Prozedur
- Ändern Sie den Wert von
cloudOne.oversight.enableNetworkPolicyCreation
zufalse
.visionOne: oversight: enableNetworkPolicyCreation: false
- Erstellen Sie eine Netzwerkrichtlinie mit
matchLabels
, die auftrendmicro-cloud-one: isolate
in Ihren gewünschten Namespaces gesetzt ist.apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: labels: app.kubernetes.io/instance: trendmicro name: trendmicro-oversight-isolate-policy spec: podSelector: matchLabels: trendmicro-cloud-one: isolate policyTypes: - Ingress - Egress
Wichtig
Die Netzwerkrichtlinie mit matchLabelstrendmicro-cloud-one: isolate
muss in jedem Anwendungs-Namespace vorhanden sein, um eine ordnungsgemäße Isolationsminderung durchzuführen.
Wie führe ich Helm-Chart-Operationen im Zusammenhang mit Container Security durch?
Verweisen Sie auf die folgende Tabelle, um die verfügbaren Aufgaben zu finden, die
Sie mit Helm-Befehlen ausführen können.
Aufgabe
|
Beschreibung
|
Aktualisieren Sie Ihre Container Security-Bereitstellung
|
Um eine bestehende Installation im Standard-Kubernetes-Namespace auf die neueste Version
zu aktualisieren:
helm upgrade \ --values overrides.yaml \ --namespace ${namespace} \ trendmicro \ https://github.com/trendmicro/visionone-container-security-helm/archive/main.tar.gz Das obige Skript überschreibt oder setzt die Werte in der Datei overrides.yaml zurück.
Wenn Sie die zuvor verwendeten Werte beibehalten möchten, verwenden Sie den Parameter
-reuse-values während des Helm-Upgrades:
helm upgrade \ --namespace ${namespace} \ --reuse-values \ trendmicro \ https://github.com/trendmicro/visionone-container-security-helm/archive/main.tar.gz |
Aktivieren oder Deaktivieren einer bestimmten Komponente
|
Bestimmte Komponenten des Container Security Helm-Diagramms können individuell aktiviert
oder deaktiviert werden, indem eine Overrides-Datei verwendet wird. Zum Beispiel können
Sie die Laufzeitsicherheitskomponente aktivieren, indem Sie das Folgende in Ihre
overrides.yaml -Datei aufnehmen:visionOne: runtimeSecurity: enabled: true |
Laufzeitsicherheit auf AWS Bottlerocket aktivieren
|
Standardmäßig verwendet AWS EKS Auto Mode Knoten mit dem Bottlerocket-Betriebssystem.
Bevor Sie Container Security in einem Auto Mode-Cluster bereitstellen, führen Sie
Runtime Security auf AWS Bottlerocket-Knoten aus, indem Sie diese Konfigurationen
in Ihrer
overrides.yaml -Datei hinzufügen:securityContext: scout: scout: allowPrivilegeEscalation: true privileged: true |
Wie sammle ich Protokolle für Fehlerbehebungszwecke?
Bei der Fehlerbehebung eines Problems stehen Ihnen mehrere Protokolle zur Verfügung,
die Sie verwenden können.
Zugriffsprotokolle
Die meisten Probleme können mithilfe der Anwendungsprotokolle untersucht werden. Auf
die Protokolle kann mit
kubectl
zugegriffen werden. Sie können auf die Protokolle zugreifen für die- Admission-Controller mit folgendem Befehl:
kubectl logs deployment/trendmicro-admission-controller --namespace ${namespace}
- Laufzeitsicherheitskomponente mit dem folgenden Befehl verwenden, wobei der Container
einer der
scout
oderfalco
sein kann:kubectl logs daemonset/trendmicro-scout --namespace ${namespace} -c ${container}
- Oversight-Controller (Kontinuierliche Compliance-Policy enforcement) mit dem folgenden
Befehl verwenden:
kubectl logs deployment/trendmicro-oversight-controller [controller-manager | rbac-proxy] --namespace ${namespace}
- Verwenden Sie den Controller mit folgendem Befehl:
kubectl logs deployment/trendmicro-usage-controller [controller-manager | rbac-proxy] --namespace ${namespace}
Supportprotokolle sammeln
Wenn Sie einen Supportfall eröffnen, reproduzieren Sie das Problem mit aktiviertem
Debug-Logging und fügen Sie das Debug-Log-Paket bei. Das Log-Paket hilft Ihrem Support-Anbieter,
Probleme zu debuggen, insbesondere solche, die mit In-Cluster-Komponenten oder Kommunikation
zusammenhängen. Ein Skript zur Protokollsammlung steht Ihnen zur Verfügung unter Trend Micro.
Verwenden Sie die folgenden Schritte, um das Debug-Logging zu aktivieren:
- Setzen Sie das
logConfig.logLevel
aufdebug
in der Dateioverrides.yaml
und aktualisieren Sie das Helm-Chart.logConfig: logLevel: debug
- Reproduzieren Sie das Problem und sammeln Sie Protokolle mit dem folgenden Befehl:
./collect-logs.sh
Die folgenden Umgebungsvariablen werden für die Protokollsammlung unterstützt:
Umgebungsvariable | Beschreibung | Standard |
VERÖFFENTLICHEN | Helm-Release-Name | trendmicro |
NAMESPACE | Der Namespace, in dem das Helm-Chart bereitgestellt wird | Aktueller Namensraum in kubeconfig deklariert. Wenn keine Namensraumeinstellung in kubeconfig vorhanden ist, wird trendmicro-system verwendet. |
Warum erhalte ich eine '401 Unauthorized'-Meldung bei API-Aufrufen?
Dies liegt normalerweise daran, dass Sie keinen API-Schlüssel erstellt haben, um Ihre
Anfragen mit Container Security zu authentifizieren. Informationen zum Erstellen und
Verwenden eines Trend Vision One API-Schlüssels finden Sie unter Abrufen eines API-Schlüssels.
Deprecated: Informationen zum Erstellen und Verwenden eines Legacy-API-Schlüssels finden Sie
in der Workload Security API-Schlüssel-Hilfe.
Erfordert Container Security eingehenden Netzwerkzugriff auf meinen Kubernetes-Cluster?
Container Security erfordert derzeit keinen eingehenden Netzwerkzugang und es müssen
keine zusätzlichen IP-Adressen zu den eingehenden Firewall-Regeln hinzugefügt werden.
Die Kommunikation vom Admission Controller wird nur ausgehend über den HTTPS-Port
443 initiiert.
Werden reguläre Ausdrücke beim Erstellen von Richtlinien unterstützt?
Wir unterstützen die Schlüsselwörter "enthält" und "beginnt mit" für Image-Registry,
Name und Tag in der ersten Version. Dies bietet eine grundlegende Schnittstelle für
reguläre Ausdrücke.
Benötigt jeder Kubernetes-Cluster seinen eigenen Admission Controller?
Ja. Jeder Kubernetes-Cluster sollte seinen eigenen Admission Controller haben. Bei
Bedarf können Sie die gewünschten Replikate skalieren. Der Standardwert ist 1.
Wird die Validierung von Admission-Control-Webhooks dazu führen, dass Container Security die Konfiguration eines Containers ändert?
Nein. Es überprüft nur, ob eine Bereitstellungsanforderung in einer Richtliniendefinition
erlaubt oder abgelehnt wird.
Während der Validierungsphase, wenn Sie kubectl apply -f <...>
ausführen, fragt der Admission Controller die Container Security ab? Falls ja, wird
ein lokaler Cache für jede Abfrage verwendet?
Ja. Der Admission Controller fragt Container Security jedes Mal ab, wenn eine Überprüfungsanfrage
in Kubernetes erfolgt, sowohl bei einem
kubectl create
als auch bei einem kubectl apply
.Es wird kein lokaler Cache für Abfragen oder Richtlinien verwendet, um sicherzustellen,
dass die Richtlinie immer auf dem neuesten Stand ist.
Standardmäßig werden Überprüfungsanfragen aus dem kube-system-Namespace nicht an Container
Security weitergeleitet. Weitere Informationen finden Sie in der YAML-Datei des Admission Controllers.
Wofür wird die Telemetrie in Container Security verwendet? Welche Art von Daten sendet die Zugriffskontrolle?
Weitere Informationen zur Datenerfassung und Telemetrie finden Sie im Hinweis zur Datenerfassung von Trend Vision One Container Security.
Wann sollten Sie die Replikatanzahl für den Admission Controller erhöhen?
Erwägen Sie, die Replikatanzahl für den Admission Controller in großen Umgebungen
zu erhöhen, in denen viele Admission-Anfragen gleichzeitig auftreten können. Admission-Anfragen
treten auf, wenn ein Pod seine Replikatanzahl skaliert, neue Bereitstellungen erfolgen
usw.
Wie fügt man Pods mit mehreren Containern zu den Ausnahmen hinzu?
Pods mit mehreren Containern sollten Ausnahmen für alle darin enthaltenen Container
haben. Container Security erlaubt die Zulassungsanfrage nur, wenn alle angeforderten
Container keine Richtlinienregel verletzen oder die Ausnahmekriterien erfüllen.
Warum wird mein Pod nicht vom Netzwerkzugriff isoliert?
Wenn Sie die Aktion „Isolieren“ in Ihrer Continuous Compliance-Richtlinie oder Laufzeitregeln
verwenden, muss der Kubernetes-Cluster, in dem die geschützten Ressourcen ausgeführt
werden, Kubernetes-Netzwerkrichtlinien aktiviert haben. Um Kubernetes-Netzwerkrichtlinien
zu aktivieren, installieren Sie ein Netzwerk-Plugin mit NetworkPolicy-Unterstützung
mithilfe der bereitgestellten Anleitung im Helm-Chart-README.
Warum werden Schwachstellen nicht in der Sicherheitslückenansicht angezeigt?
In diesem Abschnitt werden einige häufig auftretende Probleme beim Laufzeitscannen
behandelt und wie man sie beheben kann.
Scanner-Pods werden mit einem
OOMKilled
-Status beendet:-
Der Status des Scanner-Pods kann mit Tools wie
kubectl
beobachtet werden. In diesem Fall könnte das folgende Protokoll durch Ausführen beobachtet werdenkubectl describe nodes: Memory cgroup out of memory: Killed process xxxxx (sbom-job)
-
Während des normalen Betriebs löst jedes einzigartige Bild, das in Ihrem Cluster bereitgestellt wird, einen Scanner-Pod aus. Dieser Scan-Auftrag erzeugt ein Software-Stückverzeichnis (SBOM) für das bereitgestellte Bild, und das SBOM wird zur weiteren Analyse an Trend Vision One gesendet. Wenn das erzeugte SBOM größer ist als das standardmäßige maximale Speicherlimit des Scan-Auftrags, wird der Pod mit einem
OOMKilled
-Status beendet. Außergewöhnlich große Bilder (wie z. B. Bilder für maschinelles Lernen) könnten zu außergewöhnlich großen SBOMs führen. Um dieses Problem zu beheben, können Sie das standardmäßige maximale Speicherlimit des Scan-Auftrags in Ihrer Helm-Overrides-YAML-Datei (normalerweiseoverrides.yaml
) überschreiben:visionOne: bootstrapToken: <BOOTSTRAP_TOKEN> endpoint: <ENDPOINT> vulnerabilityScanning: enabled: true resources: scanner: limits: memory: 1024Mi
-
Um die neue Konfiguration anzuwenden, führen Sie den helm upgrade-Befehl aus. Wenn das Problem weiterhin besteht, sollten Sie in Betracht ziehen, den Speicher des Scanners erneut zu erhöhen (zum Beispiel
2048Mi
).
Entdeckte Schwachstellen verschwinden aus der Sicherheitslückenansicht:
-
Die Ansicht der Sicherheitslücken beim Laufzeitscanning ist derzeit eine Live-Darstellung der Schwachstellen in Ihrem Cluster. Sobald eine Sicherheitslücke nicht mehr im Cluster aktiv ist (der anfällige Container wird beendet), wird sie sofort aus der Sicherheitslückenansicht entfernt.
Kann ich mehrere Durchsuchungswerkzeuge in meinem Cluster installieren?
Es wird empfohlen, in jedem Cluster nur ein Scantool einzuschließen, da mehrere gleichzeitig
laufende Tools unvorhersehbares Verhalten verursachen können, bei dem beide Tools
kontinuierlich die Pods des jeweils anderen durchsuchen. Wenn diese Situation nicht
vermeidbar ist, können Sie den Namespace des anderen Scantools von Container Security-Scans
ausschließen, indem Sie Folgendes zu Ihrer Overrides-Datei hinzufügen:
visionOne: exclusion: namespaces: [list, of, namespaces]
Es wird auch empfohlen, den Namespace, in dem Sie Container Security installiert haben,
von der Überprüfung durch das andere Scan-Tool auszuschließen.
Wann sollte ich die maximale Gleichzeitigkeit für die Vulnerability Scanner-Pods erhöhen?
Große Cluster könnten davon profitieren, die standardmäßige maximale Gleichzeitigkeit für die Vulnerability Scanner-Pods zu erhöhen, um schnellere Scan-Ergebnisse zu erzielen, indem mehr Ressourcen Ihres
Clusters genutzt werden. Das Gleichzeitigkeitslimit der Scanner-Pods soll die Ressourcennutzung
der Container Security innerhalb Ihres Clusters einschränken. Wenn das Gleichzeitigkeitslimit
beispielsweise auf 5 gesetzt ist, können maximal 5 einzigartige Images gleichzeitig
gescannt werden. Die Änderung des Gleichzeitigkeitslimits der Scanner-Pods kann über
Ihre Overrides-Datei erfolgen:
visionOne: scanManager: maxJobCount: 15
Wenn Sie das Gleichzeitigkeit-Limit für die Vulnerability Scanner-Pods erhöhen, stellen
Sie bitte sicher, dass Ihr Cluster über genügend Ressourcen verfügt, um die zusätzlichen
Scanner-Pods zu bewältigen. Sie können die Standardressourcenanforderungen für jeden
Scanner-Pod ändern, indem Sie den Wert
maxJobCount
im Abschnitt scanManager
des Helm-Diagramms ändern.Wie sammle ich ECS-Scout-Servicelogs?
Um Protokolle effizient vom ECS Scout-Dienst zu sammeln, befolgen Sie die folgenden
Schritte:
Prozedur
- Greifen Sie auf den Dienst zu, indem Sie zu Ihrem ECS-Cluster navigieren und den Dienst trendmicro-scout auswählen.
- Klicken Sie auf die Registerkarte Protokolle.
- Wenden Sie Container- und Zeitfilter an, um Ihre Suche zu verfeinern und sich auf die neuesten Protokolle zu konzentrieren, die für Ihre Analyse relevant sind.
- Um die Protokolle weiter zu analysieren, klicken Sie auf View in CloudWatch. In CloudWatch haben Sie die Möglichkeit, die Protokolle im CSV-Format für eine detaillierte Untersuchung und Archivierungszwecke herunterzuladen.
Wie ziehe ich Bilder aus einem privaten Register?
Standardmäßig speichert Container Security öffentliche Container-Images in der Amazon ECR Public Gallery und zieht diese Images in Cluster, wie im Helm-Chart definiert. Die Verwendung eines privaten Registrys ermöglicht Image-Pulls ohne Geschwindigkeitsbegrenzung
und erlaubt es, Container-Images so zu speichern, dass sie den besten Praktiken des
Unternehmens entsprechen.
Um Bilder aus einem privaten Registry abzurufen, verwenden Sie die folgenden Schritte:
![]() |
HinweisDie folgenden Schritte verwenden ein privates Amazon Elastic Container Registry (ECR)
als Beispiel, aber der Prozess variiert je nach verwendetem Container-Registry.
|
Prozedur
- Befolgen Sie die Anweisungen im Amazon-Benutzerhandbuch (Schritte 1 bis 8) um eine Pull-Through-Cache-Regel (AWS Management Console) für Amazon ECR Public zu erstellen.
- Ändern Sie die Helm-Überschreibungsdatei, um Ihre private ECR-Registry-URL, den Projektnamen
und das Image-Pull-Secret im folgenden Format zu verwenden:
images: defaults: registry: <your-private-registry> project: <prefix-path> imagePullSecret: <pull-secret-if-needed>
Beispiel:images: defaults: registry: <aws-account>.dkr.ecr.us-east-1.amazonaws.com project: <namespace>/trendmicro/container-security imagePullSecret: <ecr-cred>
Tipp
Sie können den Befehlhelm install
oderhelm upgrade
verwenden, um die Werte Ihrer Helm-Overrides-Datei zu ändern.
Warum beendet sich der Sidecar-Container mit Code 137 in AWS Fargate?
In AWS Fargate, wenn der wesentliche Container einer Aufgabe normal stoppt (entweder
seinen Prozess beendet oder sauber beendet), initiiert AWS automatisch das Herunterfahren
der Aufgabe, indem alle anderen Container in der Aufgabe gestoppt werden, einschließlich
der Sidecars. Wenn ein Sidecar-Container, wie zum Beispiel
trendmicro-scout
, während dieses Herunterfahrprozesses nicht innerhalb eines kurzen Timeout-Fensters
beendet wird, sendet AWS eine SIGKILL
(Signal 9) Nachricht, um den Container zwangsweise zu beenden, was zu einem Exit-Code
137 führt. Dies ist ein erwartetes Verhalten und weist nicht auf einen Fehler oder
eine ungewöhnliche Beendigung des Sidecar-Containers hin.Wie behebe ich eine Trend Vision One Container Security Argo CD-Anwendung, die während der Deinstallation im Löschzustand feststeckt?
Sie können das Skript argocd-cleanup.sh verwenden, um eine Trend Vision One Container Security Argo CD-Anwendung zu beheben,
die während des Deinstallationsprozesses im Status "Löschen" feststeckt. Dieses Skript
hilft, Finalizer und Ressourcen zu löschen, die die vollständige Entfernung der Anwendung
verhindern. Weitere Informationen finden Sie unter Argo CD-Bereinigungsskript für Container Security.
Wie überprüfe ich die Authentizität von Trend Micro-Container-Images mit Cosign-öffentlichen Schlüsseln?
Cosign ist ein vertrauenswürdiges Werkzeug zum Signieren und Verifizieren von Containern,
das Sie zur Authentifizierung von Trend Micro-Container-Images verwenden können. Dieser
Verifizierungsprozess stellt sicher, dass Ihre Container-Images legitim von Trend
Micro veröffentlicht wurden.
![]() |
HinweisDiese Schritte dienen speziell zur Überprüfung von Trend Micro-Container-Images. Wenn
Sie Ihre eigenen Container-Images mit vertrauenswürdigen öffentlichen Schlüsseln überprüfen
möchten, siehe Attestatoren verwalten.
|
-
Installieren Sie Cosign mit Homebrew (macOS/Linux):
brew install cosign
Für andere Installationsmethoden siehe die Cosign-Dokumentation. -
Speichern Sie Ihren Trend Micro öffentlichen Schlüssel in einer Datei mit dem Namen
cosign.pub
. Zum Beispiel:-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE6N2uJjDtSNmTrfg/+GEU8ZzuKxAH yXSc+SQdFeBb+eDpme+rNYVwf8ZuX6ii+4RhGW8IVHnyx458B2nlNrndqQ== -----END PUBLIC KEY-----
-
Überprüfen Sie das Container-Image mit dem gespeicherten öffentlichen Schlüssel:
cosign verify --key cosign.pub public.ecr.aws/trendmicro/container-security/<image-name>:<tag> --insecure-ignore-tlog
Hinweis
Ersetzen Sie<image-name>
und<tag>
durch den spezifischen Trend Micro Container-Image-Namen und die Version, die Sie überprüfen möchten. Die verfügbaren Image-Namen und Tags finden Sie in der Amazon ECR Public Gallery. -
Sehen Sie sich die Ergebnisse der Cosign-Überprüfung an:
-
Wenn die Überprüfung erfolgreich ist, sehen Sie eine Bestätigung, dass die Signatur gültig ist.
-
Wenn die Überprüfung fehlschlägt, verwenden Sie das Image nicht. Kontaktieren Sie Trend Micro Support.
-