-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Workload Identity: Kubernetes Workload Attestation #44209
Workload Identity: Kubernetes Workload Attestation #44209
Conversation
I'd like to get this manually tested on EKS and AKS before releasing this. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We discussed my issue offline, turns out my bot role was misconfigured. spiffe-helper
is happily issuing SVIDs now that there is in fact a valid allow:
rule for the path.
LGTM otherwise!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Orca Security Scan Summary
Status | Check | Issues by priority | |
---|---|---|---|
Passed | Infrastructure as Code | 0 0 0 0 | View in Orca |
Passed | Secrets | 0 0 0 0 | View in Orca |
Failed | Vulnerabilities | 1 0 0 0 | View in Orca |
☢️ The following Vulnerabilities (CVEs) have been detected
PACKAGE | FILE | CVE ID | INSTALLED VERSION | FIXED VERSION | ||
---|---|---|---|---|---|---|
github.com/docker/docker | ./go.mod | CVE-2024-41110 | 26.1.1+incompatible | 23.0.14, 26.1.4, 27.1.0 | View in code |
This is fixed on master, will merge master in this branch. |
@strideynet See the table below for backport results.
|
* Start hacking on resolving pod/container id from pid * Add godoc comments * Tidy attestation into well defined types * Use gopsutil to determine gid/uid on unix systems * Start threading through config * Update tests * Start working TLS support into kubelet api client * Thread through configuration to yaml * Support loading the CA * Start testing with real cluster/bug fixes * Simplify by removing container lookup * Add new attestation rules/tests for new attestation rules * Add test that leverages example mountfiles * Start handling kubelet client auth more elegantly * Add handling of custom CA values * Tie together configuration validation * Update YAML tests * Go mod/sum * Ensure we use the Effective UID/GID rather than "Real" UID/GID in Unix attestation * Add testdata from GCP * Add test of Kubernetes attestation with mock kubelet API * Add test for UnixAttestor * Update YAML goldenfile * Appease liinter * Remove change to session.go * Add timeout to Kubelet client * Import `time` * Go mod tidy * Go mod tidy * Remove TODO about renaming * Rename attestor -> attestors * Add stubs on windows * Add missing license header
* Start hacking on resolving pod/container id from pid * Add godoc comments * Tidy attestation into well defined types * Use gopsutil to determine gid/uid on unix systems * Start threading through config * Update tests * Start working TLS support into kubelet api client * Thread through configuration to yaml * Support loading the CA * Start testing with real cluster/bug fixes * Simplify by removing container lookup * Add new attestation rules/tests for new attestation rules * Add test that leverages example mountfiles * Start handling kubelet client auth more elegantly * Add handling of custom CA values * Tie together configuration validation * Update YAML tests * Go mod/sum * Ensure we use the Effective UID/GID rather than "Real" UID/GID in Unix attestation * Add testdata from GCP * Add test of Kubernetes attestation with mock kubelet API * Add test for UnixAttestor * Update YAML goldenfile * Appease liinter * Remove change to session.go * Add timeout to Kubelet client * Import `time` * Go mod tidy * Go mod tidy * Remove TODO about renaming * Rename attestor -> attestors * Add stubs on windows * Add missing license header
* Start hacking on resolving pod/container id from pid * Add godoc comments * Tidy attestation into well defined types * Use gopsutil to determine gid/uid on unix systems * Start threading through config * Update tests * Start working TLS support into kubelet api client * Thread through configuration to yaml * Support loading the CA * Start testing with real cluster/bug fixes * Simplify by removing container lookup * Add new attestation rules/tests for new attestation rules * Add test that leverages example mountfiles * Start handling kubelet client auth more elegantly * Add handling of custom CA values * Tie together configuration validation * Update YAML tests * Go mod/sum * Ensure we use the Effective UID/GID rather than "Real" UID/GID in Unix attestation * Add testdata from GCP * Add test of Kubernetes attestation with mock kubelet API * Add test for UnixAttestor * Update YAML goldenfile * Appease liinter * Remove change to session.go * Add timeout to Kubelet client * Import `time` * Go mod tidy * Go mod tidy * Remove TODO about renaming * Rename attestor -> attestors * Add stubs on windows * Add missing license header
…4884) * Workload Identity: Kubernetes Workload Attestation (#44209) * Start hacking on resolving pod/container id from pid * Add godoc comments * Tidy attestation into well defined types * Use gopsutil to determine gid/uid on unix systems * Start threading through config * Update tests * Start working TLS support into kubelet api client * Thread through configuration to yaml * Support loading the CA * Start testing with real cluster/bug fixes * Simplify by removing container lookup * Add new attestation rules/tests for new attestation rules * Add test that leverages example mountfiles * Start handling kubelet client auth more elegantly * Add handling of custom CA values * Tie together configuration validation * Update YAML tests * Go mod/sum * Ensure we use the Effective UID/GID rather than "Real" UID/GID in Unix attestation * Add testdata from GCP * Add test of Kubernetes attestation with mock kubelet API * Add test for UnixAttestor * Update YAML goldenfile * Appease liinter * Remove change to session.go * Add timeout to Kubelet client * Import `time` * Go mod tidy * Go mod tidy * Remove TODO about renaming * Rename attestor -> attestors * Add stubs on windows * Add missing license header * Update go.mod go.sum
Closes #41892
Manifests used in manual testing:
Tested on GCP and my local docker desktop cluster.
changelog: Added support for Kubernetes Workload Attestation into Teleport Workload Identity to allow the authentication of pods running within Kubernetes without secrets.