ti fs generate-file-system-scoped-token
从所有者令牌生成一个具有受限路径和操作访问权限的范围受限令牌。令牌值只会出现在命令输出中,之后无法再次获取。范围受限令牌只能访问其被允许的路径前缀和操作。
范围受限令牌仅在请求的路径和操作被覆盖时,支持普通文件、上传、Layer 和挂载操作。chmod、Git workspace API、日志(Journal)、Vault、SQL、派生、事件以及令牌管理操作不适用于范围受限令牌。范围受限令牌可以在不改变其作用域的情况下自行刷新。
这些操作的含义如下。一个命令可能需要多个操作,例如对复制源需要 read,对复制目标需要 write。
语法
ti fs generate-file-system-scoped-token
--ttl <duration>
--allow <prefix:ops>
[--file-system-id <string>]
[--fs-token <string>]
[--subject <string>]
[--store-locally]
[--replace]
[--dry-run]
[--help]
[--version]
选项
--ttl <duration>:设置一个有限的正令牌有效期,并解析为整秒。此选项为必需项。--allow <prefix:ops>:允许在一个远程路径前缀下执行操作。对多个前缀可重复使用此选项。操作包括read、list、search、write和delete;其中search需要read。此选项为必需项。--file-system-id <string>:校验嵌入在所有者令牌中的 Filesystem ID。仅当加载本地存储的所有者令牌时,此选项才是必需的。--fs-token <string>:提供所有者 Filesystem 访问令牌。如果省略,命令会使用TI_FS_TOKEN环境变量。如果两者都未提供,命令会使用为所选 Filesystem 本地存储的令牌。--subject <string>:设置一个可选的服务端审计标签,最大长度为 64 字节。它不是唯一选择器。--store-locally:为此配置(Profile)和 Filesystem 存储并选中生成的范围受限令牌。--replace:替换当前已选中的本地令牌。需要与--store-locally一起使用,且不会(权限)回收之前的远程令牌。--dry-run:在不生成令牌的情况下,校验所有者凭证、Region、有效期、作用域以及本地存储前置条件。--help:显示帮助信息。--version:显示版本信息。
有关所有命令共享的选项,请参见全局选项。
示例
为一个 workspace 提供 sandbox 的读写访问权限:
# Inject the owner TI_FS_TOKEN from a secret manager, then create a token limited to /workspace. ti fs generate-file-system-scoped-token \ --subject sandbox-agent \ --ttl 24h \ --allow /workspace:read,list,write将可写的 workspace 数据与只读 artifacts 分离:
# Inject the owner TI_FS_TOKEN from a secret manager. Repeat --allow to assign different operations to independent prefixes. ti fs generate-file-system-scoped-token \ --ttl 8h \ --allow /workspace:read,list,write,delete \ --allow /artifacts:read,list选中生成的范围受限令牌,以供后续本地命令使用:
# Replacing the local selection does not revoke the previous remote owner token. ti fs generate-file-system-scoped-token \ --file-system-id "<file-system-id>" \ --ttl 1h \ --allow /task:read,list,write \ --store-locally \ --replace