Skip to content
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

api: redact more fields. #9692

Merged
merged 3 commits into from
Jan 16, 2020

Conversation

PiotrSikora
Copy link
Contributor

Signed-off-by: Piotr Sikora piotrsikora@google.com

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
@repokitteh-read-only
Copy link

CC @envoyproxy/api-shepherds: Your approval is needed for changes made to api/.

🐱

Caused by: #9692 was opened by PiotrSikora.

see: more, trace.

Copy link
Member

@mergeconflict mergeconflict left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you thinking to add tests similar to SecretManagerImplTest::ConfigDumpHandler?

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
@PiotrSikora
Copy link
Contributor Author

Are you thinking to add tests similar to SecretManagerImplTest::ConfigDumpHandler?

Not really, no... Extensive testing for protos annotated with udpa.annotations.sensitive in /config_dump is already done in #9315, and that's the only place where those fields are emitted, AFAIK (other than logs, but you're working on that separately).

@incfly
Copy link
Contributor

incfly commented Jan 15, 2020

pieces that i'm famliar with are already redacted, so lgtm

just curious whats the PrivateKeyProvider.typed_config is about? That seems used to implement opaque private operation backed by boringssl hook, correct? is that security sensitive?
#6326

@PiotrSikora
Copy link
Contributor Author

just curious whats the PrivateKeyProvider.typed_config is about? That seems used to implement opaque private operation backed by boringssl hook, correct? is that security sensitive?
#6326

It's the configuration for the asynchronous private key provider, which, in principle, may contain the private key itself, or an information on how to perform the signing.

I consider this information sensitive.

mergeconflict
mergeconflict previously approved these changes Jan 15, 2020
Copy link
Member

@mergeconflict mergeconflict left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for doing this!

htuch
htuch previously approved these changes Jan 15, 2020
Copy link
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks. I think we don't have to be perfect here, only grow the number of sites we annotate and encourage folks to use these going forward. Config dump and logs are still sensitive and contain PII, so we are not making any assertions around them being scrubbed of all sensitive data.

@htuch htuch self-assigned this Jan 15, 2020
…more_fields

Signed-off-by: Piotr Sikora <piotrsikora@google.com>
@PiotrSikora PiotrSikora dismissed stale reviews from htuch and mergeconflict via c85001a January 16, 2020 02:49
@PiotrSikora
Copy link
Contributor Author

This won't make for a great git history, but presumably this can be still merged after the freeze?

@htuch
Copy link
Member

htuch commented Jan 16, 2020

Yeah, sensitive annotations are not breaking. By freezing, we just mean that we won't do breaking changes as per policy.

Copy link
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with one question.

@@ -118,9 +118,9 @@ message PrivateKeyProvider {

// Private key method provider specific configuration.
oneof config_type {
google.protobuf.Struct config = 2 [deprecated = true];
google.protobuf.Struct config = 2 [deprecated = true, (udpa.annotations.sensitive) = true];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't this effectively not do anything since redaction doesn't work inside the struct?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, this works fine: it recursively redacts everything inside the struct.
The case that wouldn't work is if the struct weren't annotated as sensitive, but contained some field that, if it were part of a strongly-typed message, would have been annotated sensitive. That is, when we're looking inside the struct, we have no info about which fields should be redacted.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK got it. Since this is a struct that gets converted into a strongly typed message everything works. 👍

@mattklein123 mattklein123 merged commit caf39ff into envoyproxy:master Jan 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants