sse-secure-systems / connaisseur

An admission controller that integrates Container Image Signature Verification into a Kubernetes cluster
https://sse-secure-systems.github.io/connaisseur/
Apache License 2.0
437 stars 61 forks source link

Refactor helm deployment #496

Closed annekebr closed 1 year ago

annekebr commented 2 years ago

When touching the helm deployment the next time, please consider the following things:

xopham commented 2 years ago

Consider deprecating default for trust roots in light of #428

xopham commented 2 years ago

Consider dropping dockerhub official public key

annekebr commented 2 years ago

See also https://github.com/sse-secure-systems/connaisseur/issues/383 - might become more relevant when users can configure their own side cars etc.

xopham commented 2 years ago

normalize naming either camel-case or snake case

annekebr commented 2 years ago
xopham commented 2 years ago

improve hierarchy and summarize all features under a feature key

Starkteetje commented 1 year ago

Refactor version mgmt:

Starkteetje commented 1 year ago
  • Check whether reinvocationPolicy: Never could lead to the scenario that another admission controller e.g. adds a sidecar container to a Pod after Connaisseur did its mutation, thus, leading to unverified containers in a deployment. If so, change default such that this cannot happen by default

Since we're not technically idempotent due to a change in image tag potentially resulting in a different policy being applied, changing the reinvocationPolicy by default seems risky. However, I agree that this is a potential vector to bypass validation if there's neglience in another mutating admission controller (an attacker controlling with direct access to admission controllers may also be able to forge Connaisseurs controller instead of hijacking another one) @annekebr what do you think about documenting this as a limitation instead? Other option I'd see is if user could set a flag validateMutationSafe or the like, which then employs a validating admission controller and whose documentation suggests using policies that lend themselves to idempotent execution through Connaisseur, e.g. policies don't specify human-readable tags and instead either * or digests

Starkteetje commented 1 year ago

[Naming] Should the policy section rather be policies?

Talked with @phbelitz and we both agreed that it is a single policy with multiple rules below it (which is also the notion in the explaining comments), so would not rename

Starkteetje commented 1 year ago

Should we move to explicitly support only currently supported k8s versions? (while not purposefully bricking old ones of course)

E.g. since start of April the legacy tests fail since their runners were deprecated for good and I don't see that we should invest more time into fixing up these tests.

Afaik @phbelitz agrees. @xopham Thoughts?