-
Notifications
You must be signed in to change notification settings - Fork 5.3k
sds: additional support for symlink-based key rotation. #13721
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
Changes from all commits
08d0c51
d3c88a5
ce847fd
cbe018b
6ae5d80
8a2056e
e6fca97
e8c3181
c5ed1a1
71b791f
2282367
f7b7d94
da64842
2dae3be
6b5f720
4ef3f13
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -128,16 +128,36 @@ message PrivateKeyProvider { | |
| } | ||
| } | ||
|
|
||
| // [#next-free-field: 7] | ||
| // [#next-free-field: 8] | ||
| message TlsCertificate { | ||
| option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.auth.TlsCertificate"; | ||
|
|
||
| // The TLS certificate chain. | ||
| // | ||
| // If *certificate_chain* is a filesystem path, a watch will be added to the | ||
| // parent directory for any file moves to support rotation. This currently | ||
| // only applies to dynamic secrets, when the *TlsCertificate* is delivered via | ||
| // SDS. | ||
| config.core.v3.DataSource certificate_chain = 1; | ||
|
|
||
| // The TLS private key. | ||
| // | ||
| // If *private_key* is a filesystem path, a watch will be added to the parent | ||
| // directory for any file moves to support rotation. This currently only | ||
| // applies to dynamic secrets, when the *TlsCertificate* is delivered via SDS. | ||
| config.core.v3.DataSource private_key = 2 [(udpa.annotations.sensitive) = true]; | ||
|
|
||
| // If specified, updates of file-based *certificate_chain* and *private_key* | ||
| // sources will be triggered by this watch. The certificate/key pair will be | ||
| // read together and validated for atomic read consistency (i.e. no | ||
| // intervening modification occurred between cert/key read, verified by file | ||
| // hash comparisons). This allows explicit control over the path watched, by | ||
| // default the parent directories of the filesystem paths in | ||
| // *certificate_chain* and *private_key* are watched if this field is not | ||
| // specified. This only applies when a *TlsCertificate* is delivered by SDS | ||
| // with references to filesystem paths. | ||
| config.core.v3.WatchedDirectory watched_directory = 7; | ||
|
|
||
| // BoringSSL private key method provider. This is an alternative to :ref:`private_key | ||
| // <envoy_api_field_extensions.transport_sockets.tls.v3.TlsCertificate.private_key>` field. This can't be | ||
| // marked as ``oneof`` due to API compatibility reasons. Setting both :ref:`private_key | ||
|
|
@@ -191,7 +211,7 @@ message TlsSessionTicketKeys { | |
| [(validate.rules).repeated = {min_items: 1}, (udpa.annotations.sensitive) = true]; | ||
| } | ||
|
|
||
| // [#next-free-field: 11] | ||
| // [#next-free-field: 12] | ||
| message CertificateValidationContext { | ||
| option (udpa.annotations.versioning).previous_message_type = | ||
| "envoy.api.v2.auth.CertificateValidationContext"; | ||
|
|
@@ -233,8 +253,21 @@ message CertificateValidationContext { | |
| // | ||
| // See :ref:`the TLS overview <arch_overview_ssl_enabling_verification>` for a list of common | ||
| // system CA locations. | ||
| // | ||
| // If *trusted_ca* is a filesystem path, a watch will be added to the parent | ||
| // directory for any file moves to support rotation. This currently only | ||
| // applies to dynamic secrets, when the *CertificateValidationContext* is | ||
| // delivered via SDS. | ||
| config.core.v3.DataSource trusted_ca = 1; | ||
|
|
||
| // If specified, updates of a file-based *trusted_ca* source will be triggered | ||
| // by this watch. This allows explicit control over the path watched, by | ||
| // default the parent directory of the filesystem path in *trusted_ca* is | ||
| // watched if this field is not specified. This only applies when a | ||
| // *CertificateValidationContext* is delivered by SDS with references to | ||
| // filesystem paths. | ||
| config.core.v3.WatchedDirectory watched_directory = 11; | ||
|
Comment on lines
+263
to
+269
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 still don't understand how this does anything if there is only a single file above? What's the utility?
Member
Author
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. Let's say you have a trusted CA files
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. OK I think having a concrete example might help for this stuff (or ref link back to the docs where you have the example) as it was pretty hard for me to understand the difference. |
||
|
|
||
| // An optional list of base64-encoded SHA-256 hashes. If specified, Envoy will verify that the | ||
| // SHA-256 of the DER-encoded Subject Public Key Information (SPKI) of the presented certificate | ||
| // matches one of the specified values. | ||
|
|
||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Uh oh!
There was an error while loading. Please reload this page.