Skip to content

Commit 2bb083b

Browse files
author
Martin Linkhorst
committed
add an admitter that validates that unprivileged users cannot exec into postgres pods
1 parent 99438af commit 2bb083b

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

cluster/manifests/01-admission-control/teapot.yaml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,30 @@ webhooks:
268268
resources: ["rolebindings", "clusterrolebindings"]
269269
{{- end }}
270270
{{- if eq .Cluster.ConfigItems.teapot_admission_controller_enable_write_protection_webhook "true" }}
271+
- name: pod-exec-admitter.teapot.zalan.do
272+
clientConfig:
273+
url: "https://localhost:8085/pod/exec"
274+
caBundle: "{{ .Cluster.ConfigItems.ca_cert_decompressed }}"
275+
admissionReviewVersions: ["v1beta1"]
276+
failurePolicy: Fail
277+
sideEffects: "NoneOnDryRun"
278+
matchPolicy: Equivalent
279+
namespaceSelector:
280+
matchExpressions:
281+
- key: kubernetes.io/metadata.name
282+
operator: NotIn
283+
values: [ "kube-system", "visibility", "kubenurse" ]
284+
rules:
285+
- operations: [ "CONNECT" ]
286+
apiGroups: [""]
287+
apiVersions: ["v1"]
288+
resources: ["pods/exec"]
289+
scope: "Namespaced"
290+
matchConditions:
291+
- name: 'exclude-privileged-groups'
292+
expression: 'request.userInfo.groups.all(g, !(g in ["okta:common/administrator", "zalando:administrator"]))'
293+
- name: 'exclude-postgres-admins'
294+
expression: 'request.userInfo.groups.all(g, !(g in ["okta:common/postgres-admin"]))'
271295
- name: namespaced-deny-admitter.teapot.zalan.do
272296
clientConfig:
273297
url: "https://localhost:8085/deny"

cluster/node-pools/master-default/userdata.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ write_files:
206206
limits:
207207
memory: {{ .Values.InstanceInfo.MemoryFraction (parseInt64 .Cluster.ConfigItems.apiserver_memory_limit_percent)}}
208208
{{- end }}
209-
- image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/admission-controller:master-226
209+
- image: 926694233939.dkr.ecr.eu-central-1.amazonaws.com/production_namespace/teapot/admission-controller:master-227
210210
name: admission-controller
211211
lifecycle:
212212
preStop:

0 commit comments

Comments
 (0)