|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
服务词元
概述
使用服务词元可以在没有关联用户帐户的情况下对 SUSE Observability 进行身份验证。这在您希望从无头服务(如 CI 服务器)使用 SUSE Observability 时非常有用。在这种情况下,您通常不希望在身份提供者中配置用户帐户。
管理服务词元
可以通过 sts CLI 管理服务词元。有以下命令可用:
> sts service-token --help
Manage service tokens.
Usage:
sts service-token [command]
Available Commands:
create Create a service token
delete Delete a service token
list List service tokens
Use "sts service-token [command] --help" for more information about a command.
在安装 SUSE® Observability 时,也可以 设置启动服务词元。
创建服务词元
|
Open Telemetry 和 Kubernetes StackPacks 允许您创建一个主题和服务词元,并设置所有所需的权限。 |
要为 SUSE® Observability 创建服务词元,您可以使用 sts CLI。
sts service-token create
|
请注意,服务词元只会显示一次。无法再次查看该词元。 |
此命令接受以下命令行参数:
| 标志 | 说明 |
|---|---|
|
服务词元的名称 |
|
服务词元的到期日期,格式为 yyyy-MM-dd。到期是可选的。 |
|
要分配给服务词元的角色的逗号分隔列表 |
例如,下面的命令将创建一个名称为 my-service-token 且角色为 stackstate-k8s-troubleshooter 的服务词元:
> sts service-token create --name my-service-token --roles stackstate-k8s-troubleshooter
✅ Service token created: svctok-aaaaa-bbbb-ccccc-ddddd
设置启动服务词元
在安装 SUSE® Observability 时,可以使用(临时)服务词元启动它。这允许在不先与SUSE® Observability交互并从UI获取API词元的情况下使用CLI。为了设置此项,请将以下代码片段添加到SUSE® Observability配置文件中:
要配置SUSE® Observability以在Kubernetes上创建引导服务词元,需要将以下值添加到文件`authentication.yaml`中。例如:
stackstate:
authentication:
serviceToken:
bootstrap:
token: <token>
roles:
- stackstate-admin
ttl: 24h
按照以下步骤配置SUSE® Observability以创建引导服务词元:
-
在
authentication.yaml中 - 添加启动词元:-
token - 在SUSE® Observability的(初始)启动时创建的词元。
-
roles - 分配给启动词元的角色数组。
-
ttl - 可选。服务词元的生存时间,以持续时间字符串表示。
-
-
将文件`authentication.yaml`与`values.yaml`一起存储,来自SUSE® Observability的安装说明。
-
运行Helm升级以应用更改。
helm upgrade \ --install \ --namespace suse-observability \ --values values.yaml \ --values authentication.yaml \ suse-observability \ suse-observability/suse-observability
|
从外部密钥设置引导服务词元。
除了通过 Helm 值指定启动词元外,您还可以从在 Helm 图表外部创建和管理的密文中读取启动词元(外部密文)。要使用来自外部的启动词元,请遵循这些步骤并添加以下数据:
kind: Secret
metadata:
name: "<custom-secret-name>"
type: Opaque
data:
bootstrap_token: <base64 of token>
此词元可以添加到密文中,与已存在的数据一起。
使用服务词元
您使用服务词元在使用 SUSE Observability API 时进行身份验证: * 使用 CLI 时 * 直接使用 HTTP API 时 * 在摄取遥测数据时
SUSE Observability sts CLI
服务词元用于与 sts CLI 进行身份验证。有关更多信息,请参见 CLI 文档。
SUSE Observability API
要使用服务词元直接与 SUSE Observability API 通信,请以以下方式之一将其添加到请求的头部:
-
在
Authorization头部:> curl -X GET -H "Authorization: ApiKey <TOKEN>" http://localhost:8080/api/server/status -
在
X-API-Key头部:> curl -X GET -H "X-API-Key: <TOKEN>" http://localhost:8080/api/server/status
遥测数据摄取
要为遥测数据摄取创建服务词元,您需要首先创建一个角色:
> sts rbac create-subject --subject my-agent
✅ Created subject 'my-agent'
> sts rbac grant --subject my-agent --permission update-metrics
✅ Granted permission 'update-metrics' on 'system' to subject 'my-agent'
PERMISSION | RESOURCE
update-metrics | system
如果您想使用服务词元摄取 Kubernetes RBAC 数据,您还需要授予 update-scoped-permissions:
> sts rbac grant --subject my-agent --permission update-scoped-permissions --resource my-cluster
✅ Granted permission 'update-scoped-permissions' on 'my-cluster' to subject 'my-agent'
PERMISSION | RESOURCE
update-metrics | system
update-scoped-permissions | my-cluster
这将创建一个名为 my-agent 的新角色,并授予其 update-metrics 权限。然后,您可以为此角色创建一个服务词元:
> sts service-token create --name my-agent --roles my-agent
✅ Service token created: svctok-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
新创建的服务词元可以作为身份验证遥测数据请求时的 API 密钥使用:
-
SUSE® Observability 代理(包括 RBAC 代理)