|
|
|
|
@ -402,20 +402,20 @@ Etag: "e0b2816b418b3f266309d94426ac7668ab3c1fa87798785bf82f1085cc2f6d9c" |
|
|
|
|
|
|
|
|
|
// Example/default ACLs for unrestricted connections. |
|
|
|
|
{ |
|
|
|
|
"Tests": [], |
|
|
|
|
"tests": [], |
|
|
|
|
// Declare static groups of users beyond those in the identity service. |
|
|
|
|
"Groups": { |
|
|
|
|
"groups": { |
|
|
|
|
"group:example": [ |
|
|
|
|
"user1@example.com", |
|
|
|
|
"user2@example.com" |
|
|
|
|
], |
|
|
|
|
}, |
|
|
|
|
// Declare convenient hostname aliases to use in place of IP addresses. |
|
|
|
|
"Hosts": { |
|
|
|
|
"hosts": { |
|
|
|
|
"example-host-1": "100.100.100.100", |
|
|
|
|
}, |
|
|
|
|
// Access control lists. |
|
|
|
|
"ACLs": [ |
|
|
|
|
"acls": [ |
|
|
|
|
// Match absolutely everything. Comment out this section if you want |
|
|
|
|
// to define specific ACL restrictions. |
|
|
|
|
{ |
|
|
|
|
@ -494,14 +494,14 @@ A special value `ts-default` will ensure that ACL will be set only if current AC |
|
|
|
|
The POST body should be a JSON or [HuJSON](https://github.com/tailscale/hujson#hujson---human-json) formatted JSON object. |
|
|
|
|
An ACL policy may contain the following top-level properties: |
|
|
|
|
|
|
|
|
|
* `Groups` - Static groups of users which can be used for ACL rules. |
|
|
|
|
* `Hosts` - Hostname aliases to use in place of IP addresses or subnets. |
|
|
|
|
* `ACLs` - Access control lists. |
|
|
|
|
* `TagOwners` - Defines who is allowed to use which tags. |
|
|
|
|
* `Tests` - Run on ACL updates to check correct functionality of defined ACLs. |
|
|
|
|
* `AutoApprovers` - Defines which users can advertise routes or exit nodes without further approval. |
|
|
|
|
* `SSH` - Configures access policy for Tailscale SSH. |
|
|
|
|
* `NodeAttrs` - Defines which devices can use certain features. |
|
|
|
|
* `groups` - Static groups of users which can be used for ACL rules. |
|
|
|
|
* `hosts` - Hostname aliases to use in place of IP addresses or subnets. |
|
|
|
|
* `acls` - Access control lists. |
|
|
|
|
* `tagOwners` - Defines who is allowed to use which tags. |
|
|
|
|
* `tests` - Run on ACL updates to check correct functionality of defined ACLs. |
|
|
|
|
* `autoApprovers` - Defines which users can advertise routes or exit nodes without further approval. |
|
|
|
|
* `ssh` - Configures access policy for Tailscale SSH. |
|
|
|
|
* `nodeAttrs` - Defines which devices can use certain features. |
|
|
|
|
|
|
|
|
|
See https://tailscale.com/kb/1018/acls for more information on those properties. |
|
|
|
|
|
|
|
|
|
@ -514,22 +514,22 @@ curl 'https://api.tailscale.com/api/v2/tailnet/example.com/acl' \ |
|
|
|
|
--data-binary '// Example/default ACLs for unrestricted connections. |
|
|
|
|
{ |
|
|
|
|
// Declare tests to check functionality of ACL rules. User must be a valid user with registered machines. |
|
|
|
|
"Tests": [ |
|
|
|
|
// {"User": "user1@example.com", "Allow": ["example-host-1:22"], "Deny": ["example-host-2:100"]}, |
|
|
|
|
"tests": [ |
|
|
|
|
// {"src": "user1@example.com", "accept": ["example-host-1:22"], "deny": ["example-host-2:100"]}, |
|
|
|
|
], |
|
|
|
|
// Declare static groups of users beyond those in the identity service. |
|
|
|
|
"Groups": { |
|
|
|
|
"groups": { |
|
|
|
|
"group:example": [ "user1@example.com", "user2@example.com" ], |
|
|
|
|
}, |
|
|
|
|
// Declare convenient hostname aliases to use in place of IP addresses. |
|
|
|
|
"Hosts": { |
|
|
|
|
"hosts": { |
|
|
|
|
"example-host-1": "100.100.100.100", |
|
|
|
|
}, |
|
|
|
|
// Access control lists. |
|
|
|
|
"ACLs": [ |
|
|
|
|
"acls": [ |
|
|
|
|
// Match absolutely everything. Comment out this section if you want |
|
|
|
|
// to define specific ACL restrictions. |
|
|
|
|
{ "Action": "accept", "Users": ["*"], "Ports": ["*:*"] }, |
|
|
|
|
{ "action": "accept", "users": ["*"], "ports": ["*:*"] }, |
|
|
|
|
] |
|
|
|
|
}' |
|
|
|
|
``` |
|
|
|
|
@ -539,22 +539,22 @@ Response: |
|
|
|
|
// Example/default ACLs for unrestricted connections. |
|
|
|
|
{ |
|
|
|
|
// Declare tests to check functionality of ACL rules. User must be a valid user with registered machines. |
|
|
|
|
"Tests": [ |
|
|
|
|
// {"User": "user1@example.com", "Allow": ["example-host-1:22"], "Deny": ["example-host-2:100"]}, |
|
|
|
|
"tests": [ |
|
|
|
|
// {"src": "user1@example.com", "accept": ["example-host-1:22"], "deny": ["example-host-2:100"]}, |
|
|
|
|
], |
|
|
|
|
// Declare static groups of users beyond those in the identity service. |
|
|
|
|
"Groups": { |
|
|
|
|
"groups": { |
|
|
|
|
"group:example": [ "user1@example.com", "user2@example.com" ], |
|
|
|
|
}, |
|
|
|
|
// Declare convenient hostname aliases to use in place of IP addresses. |
|
|
|
|
"Hosts": { |
|
|
|
|
"hosts": { |
|
|
|
|
"example-host-1": "100.100.100.100", |
|
|
|
|
}, |
|
|
|
|
// Access control lists. |
|
|
|
|
"ACLs": [ |
|
|
|
|
"acls": [ |
|
|
|
|
// Match absolutely everything. Comment out this section if you want |
|
|
|
|
// to define specific ACL restrictions. |
|
|
|
|
{ "Action": "accept", "Users": ["*"], "Ports": ["*:*"] }, |
|
|
|
|
{ "action": "accept", "users": ["*"], "ports": ["*:*"] }, |
|
|
|
|
] |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
@ -597,22 +597,22 @@ curl 'https://api.tailscale.com/api/v2/tailnet/example.com/acl/preview?previewFo |
|
|
|
|
--data-binary '// Example/default ACLs for unrestricted connections. |
|
|
|
|
{ |
|
|
|
|
// Declare tests to check functionality of ACL rules. User must be a valid user with registered machines. |
|
|
|
|
"Tests": [ |
|
|
|
|
// {"User": "user1@example.com", "Allow": ["example-host-1:22"], "Deny": ["example-host-2:100"]}, |
|
|
|
|
"tests": [ |
|
|
|
|
// {"src": "user1@example.com", "accept": ["example-host-1:22"], "deny": ["example-host-2:100"]}, |
|
|
|
|
], |
|
|
|
|
// Declare static groups of users beyond those in the identity service. |
|
|
|
|
"Groups": { |
|
|
|
|
"groups": { |
|
|
|
|
"group:example": [ "user1@example.com", "user2@example.com" ], |
|
|
|
|
}, |
|
|
|
|
// Declare convenient hostname aliases to use in place of IP addresses. |
|
|
|
|
"Hosts": { |
|
|
|
|
"hosts": { |
|
|
|
|
"example-host-1": "100.100.100.100", |
|
|
|
|
}, |
|
|
|
|
// Access control lists. |
|
|
|
|
"ACLs": [ |
|
|
|
|
"acls": [ |
|
|
|
|
// Match absolutely everything. Comment out this section if you want |
|
|
|
|
// to define specific ACL restrictions. |
|
|
|
|
{ "Action": "accept", "Users": ["*"], "Ports": ["*:*"] }, |
|
|
|
|
{ "action": "accept", "users": ["*"], "ports": ["*:*"] }, |
|
|
|
|
] |
|
|
|
|
}' |
|
|
|
|
``` |
|
|
|
|
@ -648,7 +648,7 @@ curl 'https://api.tailscale.com/api/v2/tailnet/example.com/acl/validate' \ |
|
|
|
|
-u "tskey-yourapikey123:" \ |
|
|
|
|
--data-binary ' |
|
|
|
|
[ |
|
|
|
|
{"User": "user1@example.com", "Allow": ["example-host-1:22"], "Deny": ["example-host-2:100"]} |
|
|
|
|
{"src": "user1@example.com", "accept": ["example-host-1:22"], "deny": ["example-host-2:100"]} |
|
|
|
|
]' |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
@ -659,10 +659,10 @@ curl 'https://api.tailscale.com/api/v2/tailnet/example.com/acl/validate' \ |
|
|
|
|
-u "tskey-yourapikey123:" \ |
|
|
|
|
--data-binary ' |
|
|
|
|
{ |
|
|
|
|
"ACLs": [ |
|
|
|
|
{ "Action": "accept", "src": ["100.105.106.107"], "dst": ["1.2.3.4:*"] }, |
|
|
|
|
"acls": [ |
|
|
|
|
{ "action": "accept", "src": ["100.105.106.107"], "dst": ["1.2.3.4:*"] }, |
|
|
|
|
], |
|
|
|
|
"Tests", [ |
|
|
|
|
"tests", [ |
|
|
|
|
{"src": "100.105.106.107", "allow": ["1.2.3.4:80"]} |
|
|
|
|
], |
|
|
|
|
}' |
|
|
|
|
|