Skip to content

Commit

Permalink
Merge pull request #1590 from PhilipGough/kubescape-1
Browse files Browse the repository at this point in the history
Document security audit exceptions for node-exporter
  • Loading branch information
philipgough authored Jan 27, 2022
2 parents c2d6b3e + 586fc87 commit 3521698
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 2 deletions.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ kubeconform: crdschemas manifests $(KUBECONFORM_BIN)
$(KUBECONFORM_BIN) -kubernetes-version $(KUBE_VERSION) -schema-location 'default' -schema-location 'crdschemas/{{ .ResourceKind }}.json' -skip CustomResourceDefinition manifests/

.PHONY: kubescape
kubescape: $(KUBESCAPE_BIN) ## Runs a security analysis on generated manifests - failing if risk score is above 40%
$(KUBESCAPE_BIN) scan -s framework -t 30 nsa manifests/*.yaml
kubescape: $(KUBESCAPE_BIN) ## Runs a security analysis on generated manifests - failing if risk score is above threshold percentage 't'
$(KUBESCAPE_BIN) scan -s framework -t 25 nsa manifests/*.yaml --exceptions 'kubescape-exceptions.json'

.PHONY: fmt
fmt: $(JSONNETFMT_BIN)
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ If you are migrating from `release-0.7` branch or earlier please read [what chan
- [Customization Examples](#customization-examples)
- [Minikube Example](#minikube-example)
- [Continuous Delivery](#continuous-delivery)
- [Security](docs/security.md)
- [Troubleshooting](#troubleshooting)
- [Error retrieving kubelet metrics](#error-retrieving-kubelet-metrics)
- [Authentication problem](#authentication-problem)
Expand Down
11 changes: 11 additions & 0 deletions docs/security.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## Security

The manifests generated in this repository are subject to a security audit in CI via [kubescape](https://github.com/armosec/kubescape).
The scan can be run locally via `make kubescape`.

While we aim for best practices in terms of security by default, due to the nature of the project, we are required to make the exceptions in the following components:

#### node-exporter
* Host Port is set. https://hub.armo.cloud/docs/c-0044 is not relevant since node-exporter is considered as a core platform component running as a DaemonSet.
* Host PID is set to `true`, since node-exporter requires direct access to the host namespace to gather statistics.
* Host Network is set to `true`, since node-exporter requires direct access to the host network to gather statistics.
29 changes: 29 additions & 0 deletions kubescape-exceptions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
[
{
"name": "exclude-node-exporter-host-access-checks",
"policyType": "postureExceptionPolicy",
"actions": [
"alertOnly"
],
"resources": [
{
"designatorType": "Attributes",
"attributes": {
"kind": "DaemonSet",
"name": "node-exporter"
}
}
],
"posturePolicies": [
{
"controlName": "Container hostPort"
},
{
"controlName": "Host PID/IPC privileges"
},
{
"controlName": "HostNetwork access"
}
]
}
]

0 comments on commit 3521698

Please sign in to comment.