Software Engineer and Student
Who can reach which systems, how that access is authenticated and authorized, how it is reviewed, and how it is removed.
Effective August 10, 2026. Review cadence: annually, and on any material change.
This policy covers administrative and application access to all infrastructure operated by Kanishk Sachdev as a private individual, and to the third party accounts required to administer it. There are no employees, contractors, or other users; the only principal is the operator, plus the automation identities described in section 5. Where a control is conventionally staffed by a separate team, this document states the compensating control rather than implying a team exists.
There is no trusted internal network. Hosts do not grant access based on being on the same subnet, and being inside the perimeter conveys no privilege on its own.
Identity is consolidated into a self-hosted Authentik instance, which is the single point at which access is granted and removed for the services that support federated login.
| Layer | Control point |
|---|---|
| Web applications | Authentik single sign-on, using OIDC or forward-auth proxy providers, with group-based authorization |
| Network admission | Tailscale device enrollment, tied to an identity provider account with MFA enforced |
| Host administration | SSH public key authentication over the private network, keys held on enrolled devices only |
| Application secrets | Self-hosted Infisical, read via a scoped machine identity with read-only permission |
| Source control | GitHub account with MFA, plus per-host read-only deploy keys |
| Provider consoles | Individual accounts at hosting, DNS, and CDN providers, each with MFA enforced |
Authorization is expressed as group membership in the identity provider rather than per-application user lists. Applications that carry their own login instead of federating are treated as exceptions under section 8 and are required to enforce multi-factor authentication locally.
Automation runs with credentials narrower than the operator holds. Three patterns are used consistently:
Privilege escalation on hosts is explicit. Automation declares where root is required rather than running everything elevated by default.
No credential is committed to source control. Secrets live in the self-hosted secrets manager and are rendered onto hosts at deploy time, so the deployed state is reproducible without the repository ever containing a secret. Credentials are rotated on suspected disclosure, on device loss, and whenever a system that could read them is rebuilt.
One deliberate exception is recorded here rather than hidden: keys whose rotation would render existing encrypted data unreadable are treated as permanent for the life of that data, and are protected by the controls above rather than by rotation.
Access is reviewed on a fixed schedule, not only when something changes. Each review is a deliberate pass, and the effective date on this page is advanced when one is completed.
| Review | Frequency |
|---|---|
| Enrolled devices on the private network, removing any device no longer in use | Quarterly |
| Identity provider accounts, group memberships, and application authorizations | Quarterly |
| Third party provider accounts, confirming MFA is still enforced and no stale API tokens remain | Quarterly |
| Machine identities and deploy keys, confirming each is still needed and still read-only | Semi-annually |
| Linked financial institution connections, disconnecting any no longer in use | Quarterly |
| Full policy review against actual configuration | Annually |
Continuous monitoring supplements these scheduled passes. Authentication events and administrative access are logged centrally, and a host-based intrusion detection system evaluates those logs and blocks malicious sources automatically.
There are no employees, contractors, or additional users, so there is no joiner or leaver population and no transfer process between roles. The equivalent control, and the one that actually matters here, is immediate revocation of a device or credential that should no longer have access. That is treated as the de-provisioning process and is exercised the same way a departure would be.
Some self-hosted applications carry built-in authentication rather than federating to the identity provider, usually because the upstream project does not support it cleanly. Those are permitted only where the application enforces multi-factor authentication itself, keeps registration closed, and is covered by the same network controls as everything else. Exceptions are recorded in the infrastructure repository alongside the service they apply to, not tracked separately, so an exception cannot outlive the service that needed it.
This policy is reviewed annually and whenever access architecture changes materially, whichever comes first. It sits under the Information Security Policy.
Questions about this policy can go to security@kanishksachdev.com.