Skip to content

Latest commit

 

History

3,817 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Kubernetes Security Profiles Operator

build test coverage CII Best Practices OCI security profiles

The Security Profiles Operator (SPO) is an out-of-tree Kubernetes enhancement which aims to make it easier to create and use SELinux, seccomp and AppArmor security profiles in Kubernetes clusters.

The documentation covers the installation, the profiles, the spoc command line interface, troubleshooting and the development of SPO. The released container images are available below registry.k8s.io/security-profiles-operator, see verifying the released artifacts.

Quick start

Install cert-manager, which is not needed on OpenShift:

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/latest/download/cert-manager.yaml
kubectl --namespace cert-manager wait --for condition=available deployment --all

Install the operator from the manifest of the latest release, where VERSION is its version without the v prefix:

VERSION=x.y.z
kubectl apply -f "https://raw.githubusercontent.com/kubernetes-sigs/security-profiles-operator/v${VERSION}/deploy/operator.yaml"

Once kubectl -n security-profiles-operator get spod spod reports the state Running, create the example seccomp profiles and check that they got installed on the nodes:

$ kubectl apply -f "https://raw.githubusercontent.com/kubernetes-sigs/security-profiles-operator/v${VERSION}/examples/seccompprofile.yaml"
$ kubectl get sp
NAME                               STATUS      AGE
profile-allow-unsafe               Installed   20s
profile-block-all                  Installed   20s
profile-complain-block-high-risk   Installed   20s
profile-complain-unsafe            Installed   20s

Use Seccomp profile shows how a pod uses them.

Installation methods

Features

This is the parity of features across various security profiles supported by the SPO:

Seccomp SELinux AppArmor
Profile CRD Yes Yes Yes
Install profiles in cluster Yes Yes Yes
Remove unused profiles from cluster Yes Yes Yes
Profile Recording (audit logs) Yes Yes No
Profile Recording (eBPF) Yes No Yes
Profile Binding to container images Yes Yes Yes
Audit log enrichment Yes Yes Yes
Audit In-Pod Activity JSON log enrichment Yes No No

For information about the security model and what permissions each feature requires, refer to SPO's security model.

Resources

The motivation behind the project can be found in the corresponding RFC.

The operator runs as a deployment in the cluster and manages daemon pods on each node. These daemon pods handle profile installation, recording, and enforcement for seccomp, SELinux, and AppArmor. The documentation describes the architecture and links the user stories, personas and guides.

Related Kubernetes Enhancement Proposals (KEPs) which have direct influence on this project:

Next to those KEPs, here are existing approaches for security profiles in the Kubernetes world:

Community, discussions, contributions, and support

If you're interested in contributing to SPO, please see the developer focused document.

We schedule a monthly meeting every last Thursday of a month.

Learn how to engage with the Kubernetes community on the community page.

You can reach the maintainers of this project at:

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

Releases

Used by

Contributors

Languages