open-nomad/website/content/docs
Tim Gross 1cf28996e7 acl: prevent privilege escalation via workload identity
ACL policies can be associated with a job so that the job's Workload Identity
can have expanded access to other policy objects, including other
variables. Policies set on the variables the job automatically has access to
were ignored, but this includes policies with `deny` capabilities.

Additionally, when resolving claims for a workload identity without any attached
policies, the `ResolveClaims` method returned a `nil` ACL object, which is
treated similarly to a management token. While this was safe in Nomad 1.4.x,
when the workload identity token was exposed to the task via the `identity`
block, this allows a user with `submit-job` capabilities to escalate their
privileges.

We originally implemented automatic workload access to Variables as a separate
code path in the Variables RPC endpoint so that we don't have to generate
on-the-fly policies that blow up the ACL policy cache. This is fairly brittle
but also the behavior around wildcard paths in policies different from the rest
of our ACL polices, which is hard to reason about.

Add an `ACLClaim` parameter to the `AllowVariableOperation` method so that we
can push all this logic into the `acl` package and the behavior can be
consistent. This will allow a `deny` policy to override automatic access (and
probably speed up checks of non-automatic variable access).
2023-03-13 11:13:27 -04:00
..
commands cli: add -json and -t flag for alloc checks command (#16405) 2023-03-10 16:58:53 +01:00
concepts acl: prevent privilege escalation via workload identity 2023-03-13 11:13:27 -04:00
configuration Allow configurable range of Job priorities (#16084) 2023-02-17 09:23:13 -05:00
devices feat(website): extract /plugins /tools docs (#11584) 2021-12-09 14:25:18 -05:00
drivers docs: remove cores/memory beta label, update driver cpu docs (#16175) 2023-02-14 14:43:07 -06:00
enterprise docs: Migrate link formats (#15779) 2023-01-25 09:31:14 -08:00
install docs: add more warnings about running agent as root on Linux (#15926) 2023-01-27 15:22:18 -05:00
integrations docs: how to troubleshoot consul connect envoy (#15908) 2023-02-02 14:20:26 -06:00
job-specification docs: note that secrets dir is usually mounted noexec (#16363) 2023-03-07 11:57:15 -05:00
networking docs: update default Nomad bridge config (#16072) 2023-02-07 09:47:41 -05:00
nomad-vs-kubernetes docs: Migrate link formats (#15779) 2023-01-25 09:31:14 -08:00
operations renamed stanza to block for consistency with other projects (#15941) 2023-01-30 15:48:43 +01:00
other-specifications docs: add variable specification docs (#16165) 2023-02-13 14:06:56 -08:00
runtime docs: note that secrets dir is usually mounted noexec (#16363) 2023-03-07 11:57:15 -05:00
upgrade client: disable running artifact downloader as nobody (#16375) 2023-03-08 15:58:43 -06:00
ecosystem.mdx docs: Migrate link formats (#15779) 2023-01-25 09:31:14 -08:00
faq.mdx docs: Migrate link formats (#15779) 2023-01-25 09:31:14 -08:00
index.mdx docs: Migrate link formats (#15779) 2023-01-25 09:31:14 -08:00
partnerships.mdx docs: Migrate link formats (#15779) 2023-01-25 09:31:14 -08:00
schedulers.mdx docs: clarify sysbatch supports count (#16205) 2023-02-17 10:51:38 -08:00
who-uses-nomad.mdx Updated who-uses-nomad to add Behavox (#16339) 2023-03-08 19:43:12 -05:00