-
Notifications
You must be signed in to change notification settings - Fork 293
Improve Security Suggestions for Nexus Deployments #4172
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
base: main
Are you sure you want to change the base?
Changes from all commits
4bd9051
bd31dfb
14369af
efb67da
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -58,7 +58,7 @@ To enable Nexus in your deployment: | |||||||
| httpAddress: $PUBLIC_URL:7243 | ||||||||
| ``` | ||||||||
|
|
||||||||
| 2. Enable Nexus through dynamic config, set the public callback URL, and set the allowed callback addresses. | ||||||||
| 2a. Prior to version 1.30.X, you must enable Nexus through dynamic config, set the public callback URL, and set the allowed callback addresses. | ||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Actually not sure how markdown will handle
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I checked, it's invalid markdown. |
||||||||
|
|
||||||||
| ```yaml | ||||||||
| system.enableNexus: | ||||||||
|
|
@@ -69,12 +69,18 @@ To enable Nexus in your deployment: | |||||||
| # membership. The URL is a Go template that interpolates the `NamepaceName` and `NamespaceID` variables. | ||||||||
| - value: https://$PUBLIC_URL:7243/namespaces/{{.NamespaceName}}/nexus/callback | ||||||||
| component.callbacks.allowedAddresses: | ||||||||
| # This list is a security mechanism for limiting which callback URLs are accepted by the server. | ||||||||
| # Attackers may leverage the callback mechanism to force the server to call arbitrary URLs. | ||||||||
| # The config below is only recommended for development, tune this to your requirements. | ||||||||
| # Limits which callback URLs are accepted by the server. | ||||||||
| # Wildcard patterns (*) and insecure (HTTP) callbacks are intended for development only. | ||||||||
| # For production, restrict allowed hosts and set AllowInsecure to false | ||||||||
| # whenever HTTPS/TLS is supported. Allowing HTTP increases MITM and data exposure risk. | ||||||||
| - value: | ||||||||
| - Pattern: "*" | ||||||||
| AllowInsecure: true | ||||||||
| - Pattern: "*" # Update to restrict allowed callers, e.g. "https://$EXAMPLE_URL\\.example\\.com(:1234)?/.*$" | ||||||||
| AllowInsecure: true # In production, set to false when HTTPS/TLS is supported. | ||||||||
| ``` | ||||||||
|
|
||||||||
| 2b. Since version 1.30.X, Nexus is enabled by default, the only configuration needed is to use the SystemCallbackURL. | ||||||||
| ```yaml | ||||||||
| component.nexusoperations.useSystemCallbackURL: true | ||||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||
| ``` | ||||||||
|
|
||||||||
| ## Build and use Nexus Services | ||||||||
|
|
||||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -239,3 +239,15 @@ The Temporal server reports the server version and the version of the SDK that i | |
| | Dynamic configuration key | Type | Description | Default value | | ||
| | ----------------------------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------- | | ||
| | `frontend.enableServerVersionCheck` | Boolean | Enables the Temporal server to report version information about the current server and SDK. Allowed values are `true` or `false`. | `true` | | ||
|
|
||
| ### Nexus settings | ||
|
|
||
| Settings related to the management of Nexus | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There are more but I would refer them to the architecture doc in the server repo. And also please mention |
||
|
|
||
| | Dynamic configuration key | Type | Description | Default value | | ||
| | ------------------------------------------------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | | ||
| | `system.enableNexus` | Boolean | Enables Nexus Features | `true` (since 1.27) | | ||
| | `component.nexusoperations.callback.endpoint.template` | String | Defines the URL template used to construct Nexus callback endpoints that Nexus uses to deliver asynchronous completion results. | `https://$PUBLIC_URL:7243/namespaces/{{.NamespaceName}}/nexus/callback` | | ||
KeithB-Temporal marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| | `component.callbacks.allowedAddresses` | Object | Defines the security allow-list of callback URL patterns that the server will accept; used to restrict what callback endpoints can be invoked. | (See below sub-properties) | | ||
| | `component.callbacks.allowedAddresses.Pattern` | String | Defines which callback URLs are permitted to be called by the server. (the patterns is a wildcard) | `*` | | ||
| | `component.callbacks.allowedAddresses.AllowInsecure` | Boolean | Enables whether insecure (non-TLS/HTTP) URLs matching the pattern are permitted; should be false in production when HTTPS is supported. | `true` | | ||
Uh oh!
There was an error while loading. Please reload this page.