agent: warn on unauthenticated server join request - #28176
Conversation
Using the API to join a new server agent via the `nomad server join` command is currently protected by Serf gossip encryption. Only once the agents are joined in the Serf cluster does mTLS come into play. Although both encryption types have been long-published to be required for secure configuration, we intend to make authentication mandatory for the server join API in a near-future version of Nomad. Add a warning to the request logs, to the API response, and to the command line when attempting to server join without an `agent:write` ACL. The warning doesn't specifically refer to this policy just in case we want to invent a new fine-grained capability by the time we remove anonymous access. Ref: https://hashicorp.atlassian.net/browse/NMD-1507 Ref: https://hashicorp.atlassian.net/browse/SECVULN-44064
3e4ebcb to
35f11d9
Compare
gulducat
left a comment
There was a problem hiding this comment.
LGTM. I do kinda wonder how many workflows out there lean on the status quo, even just by happenstance.
There was a problem hiding this comment.
Thanks Tim!
I do kinda wonder how many workflows out there lean on the status quo, even just by happenstance.
We have to assume lots because we just didn't care before. Being lax is great for usability, and this operation is particularly nice to be able to perform unauthenticated because it's probably either being done by automation or a panicked operator. It's never really part of a "normal" workflow where the service or user would be expected to have a token already.
All we can do is add warnings and document document document though. Despite not technically a problem for properly secured clusters, authed-everywhere is the right destination to move toward.
Using the API to join a new server agent via the `nomad server join` command is currently protected by Serf gossip encryption. Only once the agents are joined in the Serf cluster does mTLS come into play. Although both encryption types have been long-published to be required for secure configuration, we intend to make authentication mandatory for the server join API in a near-future version of Nomad. Add a warning to the request logs, to the API response, and to the command line when attempting to server join without an `agent:write` ACL. The warning doesn't specifically refer to this policy just in case we want to invent a new fine-grained capability by the time we remove anonymous access. Ref: https://hashicorp.atlassian.net/browse/NMD-1507 Ref: https://hashicorp.atlassian.net/browse/SECVULN-44064
…) (#28179) Using the API to join a new server agent via the `nomad server join` command is currently protected by Serf gossip encryption. Only once the agents are joined in the Serf cluster does mTLS come into play. Although both encryption types have been long-published to be required for secure configuration, we intend to make authentication mandatory for the server join API in a near-future version of Nomad. Add a warning to the request logs, to the API response, and to the command line when attempting to server join without an `agent:write` ACL. The warning doesn't specifically refer to this policy just in case we want to invent a new fine-grained capability by the time we remove anonymous access. Ref: https://hashicorp.atlassian.net/browse/NMD-1507 Ref: https://hashicorp.atlassian.net/browse/SECVULN-44064 Co-authored-by: Tim Gross <tim@0x74696d.com>
As part of an effort to harden Nomad server join, we're deprecating the unauthenticated server join API and requiring authentication as of Nomad 2.1.0. In the process, we'll also be removing long-deprecated server configuration fields related to server join. Ref: hashicorp/nomad#28176 Ref: https://hashicorp.atlassian.net/browse/NMD-1506 Ref: https://hashicorp.atlassian.net/browse/NMD-1508 Ref: https://hashicorp.atlassian.net/browse/SECVULN-44064
As part of an effort to harden Nomad server join, we're deprecating the unauthenticated server join API and requiring authentication as of Nomad 2.1.0. In the process, we'll also be removing long-deprecated server configuration fields related to server join. This changeset also updates documentation for the join process to steer users into the right direction for the future deprecation. (Note: no backports on this.) Ref: hashicorp/nomad#28176 Ref: https://hashicorp.atlassian.net/browse/NMD-1506 Ref: https://hashicorp.atlassian.net/browse/NMD-1508 Ref: https://hashicorp.atlassian.net/browse/SECVULN-44064 ## Contributor checklists Review urgency: - [ ] ASAP: Bug fixes, broken content, imminent releases - [x] 3 days: Small changes, easy reviews - [ ] 1 week: Default expectation - [ ] Best effort: No urgency Pull request: - [x] Verify that the PR is set to merge into the correct base branch - [x] Verify that all status checks passed - [x] Verify that the preview environment deployed successfully - [ ] Add additional reviewers if they are not part of assigned groups Content: - [x] I added redirects for any moved or removed pages - [x] I followed the [Education style guide](https://github.com/hashicorp/web-unified-docs/tree/main/docs/style-guide) - [x] I looked at the local or Vercel build to make sure the content rendered correctly ## Reviewer checklist - [ ] This PR is set to merge into the correct base branch. - [ ] The content does not contain technical inaccuracies. - [ ] The content follows the Education content and style guides. - [ ] I have verified and tested changes to instructions for end users.
Using the API to join a new server agent via the `nomad server join` command is currently protected by Serf gossip encryption. Only once the agents are joined in the Serf cluster does mTLS come into play. Although both encryption types have been long-published to be required for secure configuration, we intend to make authentication mandatory for the server join API in a near-future version of Nomad. Add a warning to the request logs, to the API response, and to the command line when attempting to server join without an `agent:write` ACL. The warning doesn't specifically refer to this policy just in case we want to invent a new fine-grained capability by the time we remove anonymous access. Ref: https://hashicorp.atlassian.net/browse/NMD-1507 Ref: https://hashicorp.atlassian.net/browse/SECVULN-44064
As foretold in the 2.0.4 release notes, remove unauthenticated server join. Ref: https://developer.hashicorp.com/nomad/docs/release-notes/v2-0-x#server-join-deprecations Ref: #28176 Ref: https://hashicorp.atlassian.net/browse/NMD-1507
As foretold in the 2.0.4 release notes, remove unauthenticated server join. Ref: https://developer.hashicorp.com/nomad/docs/release-notes/v2-0-x#server-join-deprecations Ref: #28176 Ref: https://hashicorp.atlassian.net/browse/NMD-1507
Using the API to join a new server agent via the `nomad server join` command is currently protected by Serf gossip encryption. Only once the agents are joined in the Serf cluster does mTLS come into play. Although both encryption types have been long-published to be required for secure configuration, we intend to make authentication mandatory for the server join API in a near-future version of Nomad. Add a warning to the request logs, to the API response, and to the command line when attempting to server join without an `agent:write` ACL. The warning doesn't specifically refer to this policy just in case we want to invent a new fine-grained capability by the time we remove anonymous access. Ref: https://hashicorp.atlassian.net/browse/NMD-1507 Ref: https://hashicorp.atlassian.net/browse/SECVULN-44064
As foretold in the 2.0.4 release notes, remove unauthenticated server join. Ref: https://developer.hashicorp.com/nomad/docs/release-notes/v2-0-x#server-join-deprecations Ref: hashicorp#28176 Ref: https://hashicorp.atlassian.net/browse/NMD-1507
Using the API to join a new server agent via the
nomad server joincommand is currently protected by Serf gossip encryption. Only once the agents are joined in the Serf cluster does mTLS come into play. Although both encryption types have been long-published to be required for secure configuration, we intend to make authentication mandatory for the server join API in a near-future version of Nomad (likely 2.1.0).Add a warning to the request logs, to the API response, and to the command line when attempting to server join without an
agent:writeACL. The warning doesn't specifically refer to this policy just in case we want to invent a new fine-grained capability by the time we remove anonymous access.Ref: https://hashicorp.atlassian.net/browse/NMD-1507
Ref: https://hashicorp.atlassian.net/browse/SECVULN-44064
Testing & Reproduction steps
In addition to unit tests:
Contributor Checklist
Reviewer Checklist
in the majority of situations. The main exceptions are long-lived feature branches or merges where
history should be preserved.
within the public repository.
Changes to Security Controls
Are there any changes to security controls (access controls, encryption, logging) in this pull request? If so, explain.