Consul
Consul ACL Set Agent Token
Command: consul acl set-agent-token
Corresponding HTTP API Endpoint: [PUT] /v1/agent/token/:type
This command updates the ACL tokens currently in use by the agent. It can be used to introduce
ACL tokens to the agent for the first time, or to update tokens that were initially loaded from
the agent's configuration. Tokens are not persisted unless
acl.enable_token_persistence
is true
, so tokens will need to be updated again if that option is false
and
the agent is restarted.
The table below shows this command's required ACLs. Configuration of blocking queries and agent caching are not supported from commands, but may be from the corresponding HTTP endpoint.
ACL Required |
---|
acl:write |
Usage
Usage: consul acl set-agent-token [options] token_type token_secret_id
The token types are:
agent
- The token that the agent will use for internal agent operations. If not given then the default token is used for these operations.dns
- Specifies the token that agents use to request information needed to respond to DNS queries. If thedns
token is not set, Consul uses thedefault
token by default. Because thedefault
token allows unauthenticated HTTP API access to list nodes and services, we strongly recommend using thedns
token. Create DNS tokens using the templated policy option to ensure that the token has the permissions needed to respond to all DNS queries.config_file_service_registration
- This is the token that the agent uses to register services and checks defined in config files. This token needs to be configured with write permissions for the services or checks being registered. If not set, thedefault
token is used. If a service or check definition contains atoken
field, then that token is used to register that service or check instead of theconfig_file_service_registration
token.replication
- This is the token that the agent uses for replication operations. This token must be configured with read access to all data that the agent replicates.recovery
- This sets the token that allows access to the agent APIs when the ACL datacenter is unreachable.default
- The default token is the token that the agent uses for both internal agent operations and operations initiated by the HTTP and DNS interfaces when no specific token is provided. If not set the agent uses the anonymous token.
API Options
-ca-file=<value>
- Path to a CA file to use for TLS when communicating with Consul. This can also be specified via theCONSUL_CACERT
environment variable.-ca-path=<value>
- Path to a directory of CA certificates to use for TLS when communicating with Consul. This can also be specified via theCONSUL_CAPATH
environment variable.-client-cert=<value>
- Path to a client cert file to use for TLS whenverify_incoming
is enabled. This can also be specified via theCONSUL_CLIENT_CERT
environment variable.-client-key=<value>
- Path to a client key file to use for TLS whenverify_incoming
is enabled. This can also be specified via theCONSUL_CLIENT_KEY
environment variable.-http-addr=<addr>
- Address of the Consul agent with the port. This can be an IP address or DNS address, but it must include the port. This can also be specified via theCONSUL_HTTP_ADDR
environment variable. In Consul 0.8 and later, the default value is http://127.0.0.1:8500, and https can optionally be used instead. The scheme can also be set to HTTPS by setting the environment variableCONSUL_HTTP_SSL=true
. This may be a unix domain socket usingunix:///path/to/socket
if the agent is configured to listen that way.-tls-server-name=<value>
- The server name to use as the SNI host when connecting via TLS. This can also be specified via theCONSUL_TLS_SERVER_NAME
environment variable.-token=<value>
- ACL token to use in the request. This can also be specified via theCONSUL_HTTP_TOKEN
environment variable. If unspecified, the query will default to the token of the Consul agent at the HTTP address.-token-file=<value>
- File containing the ACL token to use in the request instead of one specified via the-token
argument orCONSUL_HTTP_TOKEN
environment variable. This can also be specified via theCONSUL_HTTP_TOKEN_FILE
environment variable.
-datacenter=<name>
- Name of the datacenter to query. If unspecified, the query will default to the datacenter of the Consul agent at the HTTP address.-stale
- Permit any Consul server (non-leader) to respond to this request. This allows for lower latency and higher throughput, but can result in stale data. This option has no effect on non-read operations. The default value is false.
Examples
Set the default
token:
$ consul acl set-agent-token default c4d0f8df-3aba-4ab6-a7a0-35b760dc29a1