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

Audit: always use derived context for audit logging, increase timeout to 10s #28286

Merged
merged 3 commits into from
Sep 5, 2024

Conversation

peteski22
Copy link

@peteski22 peteski22 commented Sep 5, 2024

Description

This PR makes the following changes to the Audit system:

  • Always use a newly derived context so that we cannot be cancelled by the HTTP request etc.
  • Increase new context timeout to 10 secs
  • Remove non-required code and tests (isContextViable)

No ENT PR required.

NOTE:

The reason we are not currently looking into making the timeout tuneable/configurable is that it's an easy/surefire way to brick your Vault cluster if you turn this up too high.

Each attempt to log a request or response means the eventlogger could spin up multiple goroutines for Vault's audit devices, if we're dealing with clusters experiencing 10s of thousands of requests per second, this could mean there's a lot 'in flight', and giving audit longer and longer likely won't resolve an issue if a file/socket/syslog cannot write within ~10secs.

It just means we would be making the eventlogger wait longer and longer before deciding if we wrote to enough audit sinks. With Vault sat waiting in the meantime.

HashiCorp employee checklist

  • Backport Labels: If this PR is in the ENT repo and needs to be backported, backport
    to N, N-1, and N-2, using the backport/ent/x.x.x+ent labels. If this PR is in the CE repo, you should only backport to N, using the backport/x.x.x label, not the enterprise labels.
    • If this fixes a critical security vulnerability or severity 1 bug, it will also need to be backported to the current LTS versions of Vault. To ensure this, use all available enterprise labels.
  • ENT Breakage: If this PR either 1) removes a public function OR 2) changes the signature
    of a public function, even if that change is in a CE file, double check that
    applying the patch for this PR to the ENT repo and running tests doesn't
    break any tests. Sometimes ENT only tests rely on public functions in CE
    files.
  • Jira: If this change has an associated Jira, it's referenced either
    in the PR description, commit message, or branch name.
  • RFC: If this change has an associated RFC, please link it in the description.
  • ENT PR: If this change has an associated ENT PR, please link it in the
    description. Also, make sure the changelog is in this PR, not in your ENT PR.

@peteski22 peteski22 added core/audit hashicorp-contributed-pr If the PR is HashiCorp (i.e. not-community) contributed backport/ent/1.16.x+ent Changes are backported to 1.16.x+ent backport/1.17.x labels Sep 5, 2024
@peteski22 peteski22 added this to the 1.16.10 milestone Sep 5, 2024
@peteski22 peteski22 changed the title always use derived context for audit logging, increase timeout to 10s… Audit: always use derived context for audit logging, increase timeout to 10s Sep 5, 2024
Copy link

github-actions bot commented Sep 5, 2024

CI Results:
All Go tests succeeded! ✅

Copy link

github-actions bot commented Sep 5, 2024

Build Results:
All builds succeeded! ✅

Copy link
Contributor

@VioletHynes VioletHynes left a comment

Choose a reason for hiding this comment

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

Looks great! I love this idea, and it's a nice concise implementation with good tests :)

Copy link
Contributor

@kubawi kubawi left a comment

Choose a reason for hiding this comment

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

LGTM

@peteski22 peteski22 merged commit 322cb27 into main Sep 5, 2024
83 checks passed
@peteski22 peteski22 deleted the VAULT-30601/audit/contexts branch September 5, 2024 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/ent/1.16.x+ent Changes are backported to 1.16.x+ent core/audit hashicorp-contributed-pr If the PR is HashiCorp (i.e. not-community) contributed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants