Expand on runtime default part of seccomp tutorial
This commit is contained in:
@@ -344,7 +344,7 @@ only the privileges they need.
|
|||||||
|
|
||||||
Clean up that Pod and Service before moving to the next section:
|
Clean up that Pod and Service before moving to the next section:
|
||||||
|
|
||||||
```
|
```shell
|
||||||
kubectl delete service violation-pod --wait
|
kubectl delete service violation-pod --wait
|
||||||
kubectl delete pod violation-pod --wait --now
|
kubectl delete pod violation-pod --wait --now
|
||||||
```
|
```
|
||||||
@@ -431,13 +431,39 @@ kubectl delete pod fine-pod --wait --now
|
|||||||
## Create Pod that uses the Container Runtime Default seccomp Profile
|
## Create Pod that uses the Container Runtime Default seccomp Profile
|
||||||
|
|
||||||
Most container runtimes provide a sane set of default syscalls that are allowed
|
Most container runtimes provide a sane set of default syscalls that are allowed
|
||||||
or not. The defaults can easily be applied in Kubernetes by using the
|
or not. You can adopt these defaults for your workload by setting the seccomp
|
||||||
`runtime/default` annotation or setting the seccomp type in the security context
|
type in the security context of a pod or container to `RuntimeDefault`.
|
||||||
of a pod or container to `RuntimeDefault`.
|
|
||||||
|
{{< note >}}
|
||||||
|
If you have the `SeccompDefault` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) enabled, then Pods use the `RuntimeDefault` seccomp profile whenever
|
||||||
|
no other seccomp profile is specified. Otherwise, the default is `Unconfined`.
|
||||||
|
{{< /note >}}
|
||||||
|
|
||||||
|
Here's a manifest for a Pod that requests the `RuntimeDefault` seccomp profile
|
||||||
|
for all its containers:
|
||||||
|
|
||||||
{{< codenew file="pods/security/seccomp/ga/default-pod.yaml" >}}
|
{{< codenew file="pods/security/seccomp/ga/default-pod.yaml" >}}
|
||||||
|
|
||||||
The default seccomp profile should provide adequate access for most workloads.
|
Create that Pod:
|
||||||
|
```shell
|
||||||
|
kubectl apply -f https://k8s.io/examples/pods/security/seccomp/ga/default-pod.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl get pod default-pod
|
||||||
|
```
|
||||||
|
|
||||||
|
The Pod should be showing as having started successfully:
|
||||||
|
```
|
||||||
|
NAME READY STATUS RESTARTS AGE
|
||||||
|
default-pod 1/1 Running 0 20s
|
||||||
|
```
|
||||||
|
|
||||||
|
Finally, now that you saw that work OK, clean up:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
kubectl delete pod default-pod --wait --now
|
||||||
|
```
|
||||||
|
|
||||||
## {{% heading "whatsnext" %}}
|
## {{% heading "whatsnext" %}}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Pod
|
kind: Pod
|
||||||
metadata:
|
metadata:
|
||||||
name: audit-pod
|
name: default-pod
|
||||||
labels:
|
labels:
|
||||||
app: audit-pod
|
app: default-pod
|
||||||
spec:
|
spec:
|
||||||
securityContext:
|
securityContext:
|
||||||
seccompProfile:
|
seccompProfile:
|
||||||
@@ -12,6 +12,6 @@ spec:
|
|||||||
- name: test-container
|
- name: test-container
|
||||||
image: hashicorp/http-echo:0.2.3
|
image: hashicorp/http-echo:0.2.3
|
||||||
args:
|
args:
|
||||||
- "-text=just made some syscalls!"
|
- "-text=just made some more syscalls!"
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: false
|
allowPrivilegeEscalation: false
|
||||||
Reference in New Issue
Block a user