Amazon EKS 審計日誌可透過 CloudWatch Logs 獲得。使用 k8saudit-eks Falco 插件。
開始之前
-
Falco 使用
k8saudit-eks和json插件構建。 -
EKS 叢集已啟動控制平面日誌記錄。
步驟
- 在 AWS Console 中啟用控制平面日誌記錄。
- 導航至您的 EKS 叢集。
- 移至
- 啟用「Audit」日誌記錄。
- 在 AWS Console 中配置 IAM 權限。
- 導航至,然後點擊節點群組名稱。
- 請點選「Node IAM role ARN」以開啟 IAM。
- 新增下列內嵌策略:
{ "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:*" ] } ] }請將${region}、${account-id}和${cluster-name}替換為您的值。 - 更新
overrides.yaml以啟用稽核日誌收集。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}"
疑難排解:NoCredentialProviders 錯誤
如果您看到
Error: NoCredentialProviders: no valid providers in chain:原因:容器因跳數限制無法訪問 IMDS。
解決方案:
# 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>
