Repository navigation
docs: list what the audit log records, and name EXTENDDB_PASSWORD for manage - #842
Open
LeeroyHannigan wants to merge 1 commit into
Open
LeeroyHannigan wants to merge 1 commit into
LeeroyHannigan wants to merge 1 commit into
Conversation
… manage getting-started.md said that every management and settings operation goes to the audit log. Its list included changes to accounts, users, groups, roles, policies and access keys. Section 7 said that the server logs every credential import. The server writes audit entries only for DeleteAdmin, user and role tag changes, AssumeRole (granted, and refused by the role's trust policy) and settings changes made through the management API. extenddb settings set changes the catalog without the server and prints its entry on its own standard output, so the server writes no audit entry for it. Section 9 now says this and names the changes that are not audit-logged. It also says that the server writes no entry while the log level is error or the log filter turns the audit targets off, and gives the macOS and Docker Compose commands. The admin guide and the security model say the same, and no longer say that all logging goes to syslog: a server started with --foreground logs to stderr. getting-started.md and the security model told extenddb manage users to put the password in EXTENDDB_ADMIN_PASSWORD. extenddb init reads that variable for the first admin's password. extenddb manage reads EXTENDDB_PASSWORD when --password is not given. The notes now set it with read -rs, which keeps it out of shell history. They also say that the other password flags and --secret-access-key have no environment variable. Signed-off-by: Lee Hannigan <29015211+LeeroyHannigan@users.noreply.github.com>
LeeroyHannigan
requested review from
amrith,
c33howard,
eliseong,
hitesh96db,
jcshepherd,
navareamol,
pdf-amzn and
robinnsc
as code owners
November 5, 2026 02:38
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
docs/getting-started.mdsection 9 now lists the operations that write audit entries, as the security model does (Operational Security, Logging):extenddb::audit::manage: DeleteAdmin, user and role tag changes, and AssumeRole, both granted and refused by the role's trust policy.extenddb::audit::settings: each settings change made through the management API (PUT /management/settings/{key}).extenddb settings setchanges the catalog without the server and prints its entry on its own standard output. So the server writes no audit entry for that change.error, or whilelogging.levelturns the audit targets off.--foreground. The section gives the Linux, macOS and Docker Compose commands.docs/manuals/05-admin-guide.mdanddocs/manuals/10-security-model.mdsay the same, and no longer say that all logging goes to syslog.docs/getting-started.mdsection 7, the security note after theimport-access-keyexample, anddocs/manuals/10-security-model.md(Credential Handling) now tellextenddb manageusers to setEXTENDDB_PASSWORD. Before, they namedEXTENDDB_ADMIN_PASSWORD. The notes set it withread -rs, which keeps the password out of shell history. They also say that--admin-password,--new-password,--user-passwordand--secret-access-keyhave no environment variable.Why
Section 9 said that every management and settings operation goes to the audit log. The server writes audit entries for 4 kinds of change only. An operator who reads the old text expects a record of each key, user and policy change, and the log does not have one.
extenddb initreadsEXTENDDB_ADMIN_PASSWORDfor the password of the first admin.extenddb managereadsEXTENDDB_PASSWORDwhen--passwordis not given (crates/app/src/manage_http.rs). A user who followed the old text and left out--passwordgotNo password provided. Use --password VALUE or set EXTENDDB_PASSWORD.Testing done
extenddb::auditlog calls onmain:admin.rs,assume_role.rs,iam_user.rs,iam_role.rsandops_settings.rsincrates/server/src/management/, andcrates/app/src/cmd_settings.rs. The console writes no audit entries and has no route for these changes.extenddb settings setwrites its log (run_interactiveincrates/app/src/lib.rsinstalls a subscriber that writes to standard output), and the server's log filter (crates/server/src/serve.rsandcrates/server/src/workers.rs).crates/app/src/manage_http.rs, the flags incrates/app/src/manage_types.rs, and the variable thatcrates/app/src/cmd_init.rsreads.Checklist
cargo test --workspace)cargo fmt --check)cargo clippy -- -W clippy::pedantic)Storagetrait, auth model, on-diskformat, or public CLI surface, an RFC has been accepted or is linked
below. Otherwise, an ADR captures the decision (link below).
ADR / RFC: n/a. The change makes the docs match the code.
Merging with #228
#228 also edits the Credential Handling list in
docs/manuals/10-security-model.md, on the line after the line that this PR changes. The PR that merges second keeps both lines.By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache License 2.0 and I agree to the Developer Certificate of
Origin (DCO). See CONTRIBUTING.md for details.