Access control for the tailnet
By default, every device on your tailnet can reach every other device on every port. For a single-user personal tailnet that's fine. As soon as you share with family, contractors, or coworkers, you'll want ACLs — rules that restrict who can reach what.
Tags decouple identity from machine
Rather than naming individual devices in ACLs (which churns when devices change), tag machines by role (tag:server, tag:dev, tag:prod). Then write ACLs against tags. Tags also let you give a server a stable identity that isn't tied to any single user account.
Grants — the next-gen syntax
Tailscale is migrating from the older ACL syntax to grants, which provide finer-grained capabilities — including SSH user-mapping, app-level controls, and time-limited access. New tailnets default to grants; old ones can opt in. The ACL example below shows both styles.