- 概述
- 要求
- 预安装
- 安装
- 安装后
- 迁移和升级
- 监控和警示
- 集群管理
- 特定于产品的配置
- 故障排除
- 由于无法连接到 Azure Government,备份设置不起作用
- 启用自定义节点污点时,UiPath 命名空间中的 Pod 卡住
- 无法使用代理设置启动 Automation Hub 和 Apps
- 由于“验证失败”错误,Velero 备份失败
- 外部密码故障排除
- 时间即服务故障排除
- 无法在启用 TLS 证书验证的情况下启动 AI Center 和 Document Understanding Pod
- TLS 证书验证错误
- Fluentd 不会在 IPv6 环境中导出日志
- Studio 桌面版无法加载 Integration Service 连接器和活动
- 手动 ArgoCD 网络策略缓解措施 (MHSA-47m3-95c7-g2g8)
- 为 uipathctl 创建的工作负载配置资源请求和限制
将 HashiCorp 保险库配置为密码存储
在 EKS/AKS 上将 HashiCorp 保险库配置为 Automation Suite 的密码存储。
您可以使用以下任一身份验证方法将 HashiCorp 保险库配置为密码存储:
- Kubernetes Auth
- 应用角色身份验证
HashiCorp 保险库提供了用于存储密码的 KV(键值)密码引擎。
默认情况下,所有敏感数据都在input.json中定义。您可以将此数据分为两部分:
input.json- 仅包含配置数据。- HashiCorp 保险库 - 安全存储凭据。
无法将证书路径或与证书相关的凭据作为密码存储区的一部分存储。
在配置密码存储之前, input.json中引用的所有凭据必须作为密码存在于 HashiCorp 保险库中。如果缺少任何引用的凭据,安装将失败。
使用 Kubernetes Auth
ESO Pod 使用其 Kubernetes 服务帐户令牌对 HashiCorp Vault 进行身份验证。保险库根据 Kubernetes API 服务器对令牌进行身份验证,并颁发具有适当策略的保险库令牌。
先决条件
- 启用了 Kubernetes 身份验证方法的 HashiCorp 保险库(只读)
- 配置为允许 ESO 服务帐户的保险库角色。默认情况下,服务帐户名称为
external-secrets。 - 从 Kubernetes 集群到保险库服务器的网络连接
- (可选)自定义 Kubernetes 服务帐户(如果未使用 ESO 默认服务帐户)
Configuring input.json
若要使用 Kubernetes Auth 将 HashiCorp 保险库配置为密码存储,请将以下部分添加到input.json :
{
"secret_store": {
"enabled": true,
"provider_configs": [
{
"name": "hc-vault",
"type": "hashicorp",
"auth_type": "kubernetes",
"hashicorp_kv": {
"server": "https://vault.example.com:8200",
"path": "secret",
"version": "v2",
"role": "uipath-role",
"mount_path": "kubernetes"
}
}
]
}
}
{
"secret_store": {
"enabled": true,
"provider_configs": [
{
"name": "hc-vault",
"type": "hashicorp",
"auth_type": "kubernetes",
"hashicorp_kv": {
"server": "https://vault.example.com:8200",
"path": "secret",
"version": "v2",
"role": "uipath-role",
"mount_path": "kubernetes"
}
}
]
}
}
要使用自定义服务帐户,请添加service_account_name字段,如下所示:
{
"secret_store": {
"enabled": true,
"provider_configs": [
{
"name": "hc-vault",
"type": "hashicorp",
"auth_type": "kubernetes",
"service_account_name": "vault-auth-sa",
"hashicorp_kv": {
"server": "http://vault.example.com:8200",
"path": "secret",
"version": "v2",
"role": "uipath-role",
"mount_path": "kubernetes"
}
}
]
}
}
{
"secret_store": {
"enabled": true,
"provider_configs": [
{
"name": "hc-vault",
"type": "hashicorp",
"auth_type": "kubernetes",
"service_account_name": "vault-auth-sa",
"hashicorp_kv": {
"server": "http://vault.example.com:8200",
"path": "secret",
"version": "v2",
"role": "uipath-role",
"mount_path": "kubernetes"
}
}
]
}
}
如果配置了service_account_name ,则服务帐户必须由客户预先创建。uipathctl验证其存在,但不创建它。
使用 AppRole Auth
AppRole 身份验证使用保险库的 AppRole 身份验证方法,其中 ESO 使用 Kubernetes 密码中存储的角色 ID 和密码 ID 进行身份验证。此方法适用于自动化系统,不需要在保险库中启用 Kubernetes 身份验证。
先决条件
- 启用了 AppRole 身份验证方法的 HashiCorp 保险库
- 已生成 AppRole 角色 ID 和密码 ID
- 使用 AppRole 凭据预先创建的 Kubernetes 密码
Configuring input.json
要使用 AppRole Auth 将 HashiCorp 保险库配置为密码存储,请执行以下步骤:
-
创建存储 AppRole 凭据的 Kubernetes 密码:
kubectl create secret generic vault-approle-creds \ --namespace uipath \ --from-literal=role-id=<your-role-id> \ --from-literal=secret-id=<your-secret-id>kubectl create secret generic vault-approle-creds \ --namespace uipath \ --from-literal=role-id=<your-role-id> \ --from-literal=secret-id=<your-secret-id>密码必须包含以下键:
role-id- 保险库中的 AppRole 角色 IDsecret-id- 保险库中的 AppRole 密码 ID
-
将以下部分添加到
input.json:{ "secret_store": { "enabled": true, "provider_configs": [ { "name": "hc-vault", "type": "hashicorp", "auth_type": "approle", "credentials_secret_name": "vault-approle-creds", "hashicorp_kv": { "server": "https://vault.example.com:8200", "path": "secret", "version": "v2", "mount_path": "approle" } } ] } }{ "secret_store": { "enabled": true, "provider_configs": [ { "name": "hc-vault", "type": "hashicorp", "auth_type": "approle", "credentials_secret_name": "vault-approle-creds", "hashicorp_kv": { "server": "https://vault.example.com:8200", "path": "secret", "version": "v2", "mount_path": "approle" } } ] } }
配置字段
下表介绍了可用的配置字段。
| 字段 | 必填 | 默认 | 描述 |
|---|---|---|---|
hashicorp_kv.server | 是 | - | 保险库服务器 URL |
hashicorp_kv.path | 否 | secret | KV 密码引擎装载路径 |
hashicorp_kv.version | 否 | v2 | KV 引擎版本: v1或v2 |
hashicorp_kv.role | 否 | uipath-role | 用于身份验证的保险库角色名称 |
hashicorp_kv.mount_path | 否 | kubernetes 或approle (基于auth_type ) | 身份验证方法装载路径 |
auth_type | 是 | - | 必须为kubernetes或approle |
credentials_secret_name | 是(仅限 AppRole) | - | 包含role-id和secret-id密钥的 Kubernetes 密码 |
service_account_name | 否 | external-secrets | 用于 Kubernetes 身份验证的 Kubernetes 服务帐户如果指定了自定义服务帐户,则必须在集群中预先创建该服务帐户。 |
TLS CA 证书处理
当保险库服务器使用 HTTPS 与私有 CA 证书时,请使用 CA 证书文件路径配置input.json中的additional_ca_certs :
additional_ca_certs: /path/to/client_cert
additional_ca_certs: /path/to/client_cert
在hashicorp_kv块中不需要其他配置。
在 input.json 中引用密码
要引用存储在 HashiCorp 保险库(只读)中的凭据,请在input.json中使用以下格式:
vault/<vault-name>/<secret-path>?key=<key-name>
vault/<vault-name>/<secret-path>?key=<key-name>
- 特定字段:
vault/hc-vault/s3-credentials?key=access_key - 已固定的版本:
vault/hc-vault/platform-sql?version=2
以下示例显示了如何在input.json中引用 HashiCorp 保险库(只读)密码:
admin_password: vault/hc-vault/admin-password-10832372?key=value
admin_password: vault/hc-vault/admin-password-10832372?key=value