Compliance has a reputation for being paperwork. In practice the questionnaire is a proxy for a real question: if something goes wrong inside your product, can the customer explain it to their own regulator.
This piece walks through how we think about it at Paycux, what we have changed our minds about, and where the sharp edges are.
Access control
Access control deserves its own treatment. Write down the control before you automate it. A control nobody can describe in a sentence will not survive its first review, no matter how well it is implemented.
Separate the record from the data. Audit events are append-only and describe what happened; user records are mutable and describe who someone is. Keeping the two apart makes retention a job over a timestamp and erasure an operation on a row, instead of a negotiation between them.
Access Control List (ACL)
Access Control List (ACL) is where this gets concrete. Separate the record from the data. Audit events are append-only and describe what happened; user records are mutable and describe who someone is. Keeping the two apart makes retention a job over a timestamp and erasure an operation on a row, instead of a negotiation between them.
Write down the control before you automate it. A control nobody can describe in a sentence will not survive its first review, no matter how well it is implemented.
- Keep audit events append-only and separate from user records
- Describe each control in one sentence before automating it
- Produce evidence automatically, not by hand
- Decide retention per data category, in writing
Access token
Consider access token. Separate the record from the data. Audit events are append-only and describe what happened; user records are mutable and describe who someone is. Keeping the two apart makes retention a job over a timestamp and erasure an operation on a row, instead of a negotiation between them.
Separate the record from the data. Audit events are append-only and describe what happened; user records are mutable and describe who someone is. Keeping the two apart makes retention a job over a timestamp and erasure an operation on a row, instead of a negotiation between them.
Action
That brings us to action. Write down the control before you automate it. A control nobody can describe in a sentence will not survive its first review, no matter how well it is implemented.
Write down the control before you automate it. A control nobody can describe in a sentence will not survive its first review, no matter how well it is implemented.
Evidence is the deliverable.
Attribute-Based Access Control (ABAC)
Attribute-Based Access Control (ABAC) is where this gets concrete. Separate the record from the data. Audit events are append-only and describe what happened; user records are mutable and describe who someone is. Keeping the two apart makes retention a job over a timestamp and erasure an operation on a row, instead of a negotiation between them.
Write down the control before you automate it. A control nobody can describe in a sentence will not survive its first review, no matter how well it is implemented.
Audit log
Audit log deserves its own treatment. Write down the control before you automate it. A control nobody can describe in a sentence will not survive its first review, no matter how well it is implemented.
Separate the record from the data. Audit events are append-only and describe what happened; user records are mutable and describe who someone is. Keeping the two apart makes retention a job over a timestamp and erasure an operation on a row, instead of a negotiation between them.
Authorization
That brings us to authorization. Evidence is the deliverable. Not the policy document — the artifact that shows the policy was applied on a specific date to a specific system, produced without anyone editing a spreadsheet.
Separate the record from the data. Audit events are append-only and describe what happened; user records are mutable and describe who someone is. Keeping the two apart makes retention a job over a timestamp and erasure an operation on a row, instead of a negotiation between them.
Where this leaves us
The pattern repeats across every system we have looked at: the hard part is not the mechanism, it is keeping the mechanism honest as the surrounding assumptions change.
If you are working through the same problem and want to compare notes, the docs cover the mechanics and the console shows the behaviour on your own data.
Everything here, already built
Sign-in, enterprise SSO, directory provisioning, roles and an audit trail behind one API.