Amazon EKS-Audit-Logs sind über CloudWatch Logs verfügbar. Verwenden Sie das k8saudit-eks Falco-Plugin.
Vorbereitungen
-
Falco mit den Plugins
k8saudit-eksundjsongebaut. -
EKS-Cluster mit aktiviertem Steuerungsebenen-Logging.
Prozedur
- Aktivieren Sie die Protokollierung der Steuerungsebene in der AWS Console.
- Navigieren Sie zu Ihrem EKS-Cluster.
- Navigieren Sie zu .
- Aktivieren Sie die Protokollierung von Audit.
- Konfigurieren Sie IAM-Berechtigungen in der AWS Console.
- Navigieren Sie zu und klicken Sie auf den Knotengruppennamen.
- Klicken Sie auf Node IAM role ARN, um IAM zu öffnen.
- Die folgende Inline-Richtlinie hinzufügen:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadAccessToCloudWatchLogs", "Effect": "Allow", "Action": [ "logs:Describe*", "logs:FilterLogEvents", "logs:Get*", "logs:List*" ], "Resource": [ "arn:aws:logs:${region}:${account-id}:log-group:/aws/eks/${cluster-name}/cluster:*" ] } ] }Ersetzen Sie${region},${account-id}und${cluster-name}durch Ihre Werte. - Aktualisieren Sie die
overrides.yaml, um die Erfassung von Audit-Logs zu aktivieren.visionOne: bootstrapToken: ... endpoint: ... exclusion: namespaces: [kube-system] ... auditLogCollection: enabled: true provider: eks eks: region: "${your cluster's region}" clusterName: "${your cluster's name in aws console}"
Fehlerbehebung: NoCredentialProviders-Fehler
Wenn Sie
Error: NoCredentialProviders: no valid providers in chain sehen:Ursache: Der Container kann aufgrund eines Hop-Limits nicht auf IMDS zugreifen.
Lösung:
# Get instance ID INSTANCE_ID=$(aws ec2 describe-instances --region <region> \ --filters "Name=private-dns-name,Values=<node-name>" \ --query "Reservations[0].Instances[0].InstanceId" --output text) # Increase hop limit aws ec2 modify-instance-metadata-options --region <region> \ --instance-id $INSTANCE_ID \ --http-put-response-hop-limit 2 # Restart pod kubectl delete pod -n trendmicro-system <pod-name>
