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

Implement user lockout log #23140

Merged
merged 11 commits into from
Oct 6, 2023
Merged

Conversation

davidadeleon
Copy link
Contributor

This PR adds a log which will be emitted at a configurable interval (default of 1 minute), in the event of there being a locked user anywhere in Vault. This adds visibility for operators around the user lockout feature via the operational logs, allowing them to know when a user lockout is in effect. A WARN log will be emitted when a lockout is in effect, and an INFO log will be emitted when all lockouts have been cleared. The log interval can be modified as part of the server config using the user_lockout_log_interval parameter.

Example Config:
user_lockout_log_interval="30s"

@github-actions github-actions bot added the hashicorp-contributed-pr If the PR is HashiCorp (i.e. not-community) contributed label Sep 18, 2023
@github-actions
Copy link

github-actions bot commented Sep 18, 2023

CI Results:
All Go tests succeeded! ✅

@davidadeleon davidadeleon marked this pull request as ready for review September 19, 2023 17:52
@github-actions
Copy link

Build Results:
All builds succeeded! ✅

@davidadeleon davidadeleon requested a review from a team October 3, 2023 19:38
lockedUserCount := c.getUserFailedLoginCount(ctx)

if lockedUserCount > 0 {
c.Logger().Warn("user lockout(s) in effect")
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it make sense to note that users can access who is locked out via the sys/locked-users endpoint?

vault/request_handling.go Show resolved Hide resolved
@davidadeleon davidadeleon merged commit 92fcfda into main Oct 6, 2023
106 checks passed
@davidadeleon davidadeleon deleted the davidadeleon/implement-user-lockout-log branch October 6, 2023 19:58
davidadeleon added a commit that referenced this pull request Oct 9, 2023
* implement user lockout logger

* formatting

* make user lockout log interval configurable

* create func to get locked user count, and fix potential deadlock

* fix test

* fix test

* add changelog
davidadeleon added a commit that referenced this pull request Oct 9, 2023
* implement user lockout logger

* formatting

* make user lockout log interval configurable

* create func to get locked user count, and fix potential deadlock

* fix test

* fix test

* add changelog

Co-authored-by: davidadeleon <[email protected]>
davidadeleon added a commit that referenced this pull request Oct 12, 2023
* implement user lockout logger

* formatting

* make user lockout log interval configurable

* create func to get locked user count, and fix potential deadlock

* fix test

* fix test

* add changelog
davidadeleon added a commit that referenced this pull request Oct 12, 2023
* Implement user lockout log (#23140)

* implement user lockout logger

* formatting

* make user lockout log interval configurable

* create func to get locked user count, and fix potential deadlock

* fix test

* fix test

* add changelog

* fix panic when unlocking unlocked user (#23611)
davidadeleon added a commit that referenced this pull request Oct 19, 2023
davidadeleon added a commit that referenced this pull request Oct 20, 2023
ryancragun pushed a commit that referenced this pull request Oct 20, 2023
ryancragun pushed a commit that referenced this pull request Oct 20, 2023
ryancragun pushed a commit that referenced this pull request Oct 20, 2023
ryancragun pushed a commit that referenced this pull request Oct 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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.

2 participants