文档化档

创建令牌

使用InfluxDB用户界面(UI)、influx命令行界面(CLI)或InfluxDB API创建API令牌。

为了遵循安全的API令牌生成和检索的最佳实践,InfluxDB强制对API令牌实施访问限制。

  • 令牌对创建令牌的用户可见。
  • InfluxDB只允许在创建令牌后立即访问API令牌值。
  • 创建后无法更改API令牌的访问(读/写)权限。
  • 当创建令牌的用户被删除时,令牌将停止工作。

我们建议以下管理令牌的方法

  • 创建一个通用用户以创建和管理写入数据令牌。
  • 将令牌存储在安全的密码管理器中以供将来访问。

在InfluxDB UI中创建令牌

要在InfluxDB UI中创建InfluxDB API令牌,导航到API令牌管理页面。在左侧导航菜单中,选择加载数据 > API令牌

创建全访问令牌

  1. API令牌管理页面,点击位于令牌描述右侧的 生成API令牌按钮。
  2. 选择全访问API令牌

创建自定义令牌

  1. API令牌管理页面,点击位于令牌描述右侧的 生成API令牌按钮。
  2. 选择自定义API令牌
  3. 当出现“生成个人API令牌”窗口时,输入描述。如果您不为令牌提供描述,InfluxDB将根据您分配的权限生成描述。例如,如果您为名为“_monitoring”的桶选择“”,为名为“_tasks”的桶选择“”,InfluxDB将生成描述“桶 _monitoring 桶 _tasks”。
  4. 选择“”和“”列中的复选框以分配令牌的访问权限。您可以启用对所有桶、单个桶、Telegraf配置和其他InfluxDB资源的访问。默认情况下,新令牌没有访问权限。
  5. 完成时,点击生成
  6. 当InfluxDB显示令牌值时,点击复制到剪贴板。这是您从InfluxDB访问和复制令牌值的唯一机会。
  7. (可选)将API令牌值存储在安全的密码管理器中。

克隆令牌

要创建与现有令牌具有相同授权的令牌,请克隆现有令牌。

  1. API令牌管理页面,找到您要克隆的令牌,并点击位于令牌描述右侧的图标。
  2. 选择克隆
  3. 当InfluxDB UI显示创建的令牌时,点击复制到剪贴板。这是您唯一一次从InfluxDB访问和复制令牌值的机会。
  4. (可选)将API令牌值存储在安全的密码管理器中。

使用influx CLI创建令牌

使用influx auth create 命令来创建令牌。在命令中包含标志以授予令牌特定权限。查看可用的标志。只有具有write: authorizations权限的令牌才能创建令牌。

与命令一起提供以下标志

  • --token:具有创建新令牌权限的API令牌
  • --org:组织名称
  • 权限标志
influx auth create \
  --token 
API_TOKEN
\
--org
ORG_NAME
\
--read-buckets \ --write-buckets \ --read-dbrps \ --write-dbrps

示例

创建全访问令牌

创建一个全权限令牌以授予组织中的所有资源权限。

influx auth create \
  --token 
API_TOKEN
\
--org
ORG_NAME
\
--all-access

创建具有特定权限的令牌

创建具有指定读取权限的令牌
influx auth create \
  --token 
API_TOKEN
\
--org
ORG_NAME
\
--read-bucket
BUCKET_ID
\
--read-bucket
BUCKET_ID
\
--read-dashboards \ --read-tasks \ --read-telegrafs \ --read-user
创建一个范围在用户上且具有指定读取和写入权限的令牌
influx auth create \
  --token 
API_TOKEN
\
--org
ORG_NAME
\
--user
USERNAME
\
--read-authorizations \ --write-authorizations \ --read-buckets \ --write-buckets \ --read-dashboards \ --write-dashboards \ --read-tasks \ --write-tasks \ --read-telegrafs \ --write-telegrafs \ --read-users \ --write-users

有关其他可用标志的信息,请参阅influx auth create 文档

使用InfluxDB API创建令牌

使用InfluxDB API的/api/v2/authorizations端点来创建令牌。

POST https://127.0.0.1:8086/api/v2/authorizations

在请求中包含以下内容

  • 头部
    • AuthorizationToken API_TOKEN(具有write: authorizations权限的API令牌)
    • Content-typeapplication/json
  • 请求正文:具有以下属性的JSON对象
    • status:令牌状态(活动或非活动)
    • description:令牌描述
    • orgID:组织ID
    • permissions:具有以下属性的JSON数组中的对象
      • action:授权动作(读取或写入)
      • resource:具有以下属性的JSON对象
        • orgID:组织ID
        • type:资源类型
        • name(可选)将权限范围到资源名称
curl --request POST \
  https://cloud2.influxdata.com/api/v2/authorizations \
  --header "Authorization: Token 
API_TOKEN
"
\
--header 'Content-type: application/json' \ --data '{ "status": "active", "description": "
AUTHORIZATION_DESCRIPTION
",
"orgID": "
ORG_ID
",
"permissions": [ { "action": "read", "resource": { "orgID": "
ORG_ID
",
"type": "authorizations" } }, { "action": "read", "resource": { "orgID": "
ORG_ID
",
"type": "buckets" } }, { "action": "write", "resource": { "orgID": "
ORG_ID
",
"type": "buckets", "name": "iot-center" } } ] }'

创建一个范围在用户上的令牌

要将令牌范围到除令牌创建者以外的其他用户,请将请求正文中的userID属性传递。

######################################################
# The example below uses common command-line tools 
# `curl`, `jq` with the InfluxDB API to do the following:
# 1. Create a user.
# 2. Find the new or existing user by name.
# 3. If the user exists:
#   a. Build an authorization object with the user ID.
#   b. Create the new authorization.
#   c. Return the new token.
######################################################

function create_token_with_user() {
  curl --request POST \
    "https://cloud2.influxdata.com/api/v2/users/" \
    --header "Authorization: Token 
API_TOKEN
"
\
--header 'Content-type: application/json' \ --data "{\"name\": \"$1\"}" curl --request GET \ "https://cloud2.influxdata.com/api/v2/users?name=$1" \ --header "Authorization: Token
API_TOKEN
"
\
--header 'Content-type: application/json' | \ jq --arg USER $1 '.users[0] // error("User missing") | { "orgID": "
ORG_ID
",
"userID": .id, "description": $USER, "permissions": [ {"action": "read", "resource": {"type": "buckets"}} ] }' | \ curl --request POST \ "https://cloud2.influxdata.com/api/v2/authorizations" \ --header "Authorization: Token
API_TOKEN
"
\
--header 'Content-type: application/json' \ --data @- | \ jq '.token' } create_token_with_user 'iot_user_1'

有关更多选项的详细信息,请参阅POST /api/v2/authorizations 文档


这个页面有帮助吗?

感谢您的反馈!


Flux的未来

Flux将进入维护模式。您可以继续使用它,而无需对您的代码进行任何更改。

阅读更多

InfluxDB v3增强和InfluxDB集群版现已上市

新功能,包括更快的查询性能和管理工具,推进了InfluxDB v3产品线。InfluxDB集群版现已上市。

InfluxDB v3性能和功能

InfluxDB v3产品线在查询性能方面取得了显著提升,并提供了新的管理工具。这些增强包括一个操作仪表板来监控您InfluxDB集群的健康状况,InfluxDB云专享版中的单点登录(SSO)支持,以及新的令牌和数据库管理API。

了解新的v3增强功能


InfluxDB集群版上市

InfluxDB集群版现已上市,为您在自管理堆栈中提供InfluxDB v3的功能。

与我们讨论InfluxDB集群版

InfluxDB 云无服务器