Documentation

创建一个令牌

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

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

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

我们推荐以下方式来管理您的令牌:

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

在InfluxDB UI中创建一个令牌

要在InfluxDB UI中创建一个InfluxDB API令牌,请导航到API Tokens管理页面。在左侧导航菜单中,选择Load Data > API Tokens

创建一个全访问令牌

  1. API Tokens management page,点击 生成 API 令牌 按钮。
  2. 选择 所有访问API令牌

创建自定义令牌

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

克隆一个令牌

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

  1. API令牌管理页面,找到您想要克隆的令牌,然后点击位于令牌描述最右侧的图标。
  2. 选择 Clone.
  3. 当 InfluxDB 用户界面显示创建的令牌时,点击 复制到剪贴板。这是您唯一可以访问和复制 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创建令牌

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

POST http://localhost:8086/api/v2/authorizations

在您的请求中包含以下内容:

  • 请求头
    • 授权: Token API_TOKEN (具有 write: authorizations 权限的 API 令牌)
    • 内容类型: application/json
  • 请求主体: JSON 对象,具有以下属性:
    • 状态: 令牌状态(活动或非活动)
    • 描述: 令牌描述
    • 组织ID: 组织 ID
    • 权限: JSON 对象数组,每个对象具有以下属性:
      • 操作: 授权操作(读取或写入)
      • 资源: JSON 对象,具有以下属性
        • 组织ID: 组织 ID
        • 类型: 资源类型
        • 名称: (可选) 用于限定权限的资源名称
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 3 开源版本现已公开Alpha测试

InfluxDB 3 Open Source is now available for alpha testing, licensed under MIT or Apache 2 licensing.

我们将发布两个产品作为测试版的一部分。

InfluxDB 3 核心,是我们新的开源产品。 它是一个用于时间序列和事件数据的实时数据引擎。 InfluxDB 3 企业版是建立在核心基础之上的商业版本,增加了历史查询能力、读取副本、高可用性、可扩展性和细粒度安全性。

有关如何开始的更多信息,请查看:

InfluxDB 云端无服务器