security-profiles-operator

module
v0.4.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 1, 2022 License: Apache-2.0

README

Kubernetes Security Profiles Operator

build test coverage CII Best Practices

This project is the starting point for the Security Profiles Operator (SPO), an out-of-tree Kubernetes enhancement which aims to make it easier for users to use SELinux, seccomp and AppArmor in Kubernetes clusters.

About

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

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:

Features

The SPO's features are implemented for each one of the underlying supported technologies, namely: Seccomp, SELinux and AppArmor. Here's the feature parity status across them:

Seccomp SELinux AppArmor
Profile CRD Yes Yes Yes
ProfileBinding Yes No No
Deploy profiles into nodes Yes Yes WIP
Remove profiles no longer in use Yes Yes WIP
Profile Auto-generation (logs) Yes WIP No
Profile Auto-generation (ebpf) Yes No No
Audit log enrichment Yes WIP Yes

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

Personas & User Stories

As any other piece of software, this operator is meant to help people. Thus, the target personas have been reflected in a document in this repo.

The functionality that this operator is meant to enable is captured as user stories. If you feel that a user story is not captured properly, feel free to submit a Pull Request. The team will be more than happy to review and help you reflect the requirement.

Roadmap

The project tries to not overlap with those existing implementations to provide valuable additions in a more secure Kubernetes context. We created a mind map to get a better feeling about all features we want to implement to better support some security areas within Kubernetes:

mind-map

Going forwards, the operator will extend its purpose to assist Kubernetes users to create, distribute and apply security profiles for seccomp, AppArmor, SeLinux, PodSecurityPolicies and RBAC permissions.

Community, discussion, contribution, 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.

Directories

Path Synopsis
api
apparmorprofile/v1alpha1
Package v1alpha1 contains API Schema definitions for the security-profiles-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
Package v1alpha1 contains API Schema definitions for the security-profiles-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
profilebinding/v1alpha1
Package v1alpha1 contains API Schema definitions for the security-profiles-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
Package v1alpha1 contains API Schema definitions for the security-profiles-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
profilerecording/v1alpha1
Package v1alpha1 contains API Schema definitions for the security-profiles-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
Package v1alpha1 contains API Schema definitions for the security-profiles-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
seccompprofile/v1beta1
Package v1beta1 contains API Schema definitions for the security-profiles-operator v1beta1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
Package v1beta1 contains API Schema definitions for the security-profiles-operator v1beta1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
secprofnodestatus/v1alpha1
Package v1alpha1 contains API Schema definitions for the security-profiles-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
Package v1alpha1 contains API Schema definitions for the security-profiles-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
selinuxprofile/v1alpha2
Package v1alpha2 contains API Schema definitions for the security-profiles-operator v1alpha2 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
Package v1alpha2 contains API Schema definitions for the security-profiles-operator v1alpha2 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
spod/v1alpha1
Package v1alpha1 contains API Schema definitions for the security-profiles-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
Package v1alpha1 contains API Schema definitions for the security-profiles-operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=security-profiles-operator.x-k8s.io
cmd
internal
pkg/daemon/bpfrecorder/bpfrecorderfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
pkg/daemon/enricher/enricherfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
pkg/daemon/metrics/metricsfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
pkg/daemon/profilerecorder/profilerecorderfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
pkg/nonrootenabler/nonrootenablerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
pkg/webhooks/binding/bindingfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
pkg/webhooks/recording/recordingfakes
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL