Optionally cache generated client credentials in daos_agent

Description

When a client process connects to a pool and container, it must present a credential that contains user and group principals for ACL evaluation on the server side. The credential is generated by daos_agent, which is considered a secure component of the DAOS control plane, rather than by the client process, in order to avoid credential forgery.

On systems with high client process counts (e.g. hundreds of client connections per minute), the agent may perform a significant amount of duplicated work by resolving local uid/gid values into ACL principals and then cryptographically signing a credential for each client connection. As a performance optimization, the agent should be able to cache the generated credential for a given uid:gid pair for some admin-defined lifetime.

By default, the credential cache will be disabled. With a conservative cache value (e.g. 1 minute) chosen, the agent may reduce per-connection overhead at the client side while providing reasonable responsiveness to user/group database updates.

Activity

Show:

Michael MacDonaldAugust 5, 2024 at 3:37 PM

This won’t be a clean cherry-pick without the backport for . If that one can’t land for 2.6.1, then it probably makes sense to hold this one off until that one can be approved too.

Scott P.August 5, 2024 at 2:01 PM

Do we have a 2.6.1 PR for this?

Michael MacDonaldJuly 7, 2024 at 10:31 PM

Landed to master:

Done

Details

Assignee

Reporter

Priority

Affects versions

Components

Patch URL

Story Points

Created May 21, 2024 at 4:42 PM
Updated August 7, 2024 at 6:08 PM
Resolved July 7, 2024 at 10:31 PM