mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-09-28 23:09:36 -04:00
Enable and configure k8s audit-log (#160)
* Enable and configure k8s audit-log * Update coordinator/kubernetes/k8sapi/kubeadm_config.go Co-authored-by: Malte Poll <mp@edgeless.systems> * add mount point for audit log dir in kubeadm conf * Mount audit policy into kube-apiserver static pod * Write default auditpolicy on cluster init / cluster join Co-authored-by: Malte Poll <mp@edgeless.systems>
This commit is contained in:
parent
e4a9be832c
commit
6dc97590fe
6 changed files with 114 additions and 13 deletions
33
coordinator/kubernetes/k8sapi/resources/auditpolicy.go
Normal file
33
coordinator/kubernetes/k8sapi/resources/auditpolicy.go
Normal file
|
@ -0,0 +1,33 @@
|
|||
package resources
|
||||
|
||||
import (
|
||||
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
auditv1 "k8s.io/apiserver/pkg/apis/audit/v1"
|
||||
)
|
||||
|
||||
// AuditPolicy defines rulesets for what should be logged in the kube-apiserver audit log.
|
||||
// reference: https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/ .
|
||||
type AuditPolicy struct {
|
||||
Policy auditv1.Policy
|
||||
}
|
||||
|
||||
func NewDefaultAuditPolicy() *AuditPolicy {
|
||||
return &AuditPolicy{
|
||||
Policy: auditv1.Policy{
|
||||
TypeMeta: v1.TypeMeta{
|
||||
APIVersion: "audit.k8s.io/v1",
|
||||
Kind: "Policy",
|
||||
},
|
||||
Rules: []auditv1.PolicyRule{
|
||||
{
|
||||
Level: auditv1.LevelMetadata,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// Marshal marshals the audit policy as a YAML document.
|
||||
func (p *AuditPolicy) Marshal() ([]byte, error) {
|
||||
return MarshalK8SResources(p)
|
||||
}
|
21
coordinator/kubernetes/k8sapi/resources/auditpolicy_test.go
Normal file
21
coordinator/kubernetes/k8sapi/resources/auditpolicy_test.go
Normal file
|
@ -0,0 +1,21 @@
|
|||
package resources
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestAuditPolicyMarshalUnmarshal(t *testing.T) {
|
||||
require := require.New(t)
|
||||
assert := assert.New(t)
|
||||
|
||||
auditPolicy := NewDefaultAuditPolicy()
|
||||
data, err := auditPolicy.Marshal()
|
||||
require.NoError(err)
|
||||
|
||||
var recreated AuditPolicy
|
||||
require.NoError(UnmarshalK8SResources(data, &recreated))
|
||||
assert.Equal(auditPolicy, &recreated)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue