- 概要
- 要件
- インストール前
- インストール
- インストール後
- 移行とアップグレード
- 監視とアラート機能
- クラスターの管理
- 製品固有の設定
- トラブルシューティング
- ODF の S3 リクエストに対する 500 エラーとレート制限
- 外部シークレットのトラブルシューティング
- ODF 4.20 の CSI ドライバー トレレーションの設定
- Temporal as a Service のトラブルシューティング
- TLS 証明書の検証が有効化されていると、AI Center と Document Understanding ポッドの起動に失敗する
- デスクトップ版の Studio では Integration Service のコネクタとアクティビティを読み込めない
- TLS 証明書の検証エラー
- 手動による ArgoCD ネットワーク ポリシーの軽減策 (GHSA-47m3-95c7-g2g8)
- uipathctl で作成されたワークロードのリソース要求と制限を設定する
HashiCorp Vault をシークレット ストアとして設定する
Kubernetes または AppRole の認証方法を使用して、HashiCorp Vault をシークレット ストアとして設定します。
HashiCorp Vault をシークレット ストアとして設定するには、以下のいずれかの認証方法を使用します。
- Kubernetes 認証
- AppRole 認証
HashiCorp Vault には、シークレットを格納するための KV (Key-Value) シークレット エンジンが用意されています。
デフォルトでは、すべての機密データは input.jsonで定義されます。このデータは、次の 2 つの部分に分けることができます。
input.json- 構成データのみが含まれます。- HashiCorp Vault - 資格情報を安全に保存します。
証明書のパスや証明書関連の資格情報を secretstore の一部として保存することはできません。
シークレット ストアを設定する前に、 input.json で参照されるすべての資格情報が HashiCorp Vault にシークレットとして存在している必要があります。参照されている資格情報がない場合、インストールは失敗します。
Kubernetes 認証を使用する
ESO ポッドは、Kubernetes サービス アカウント トークンを使用して HashiCorp Vault に対して認証を行います。Vault は Kubernetes API サーバに対してトークンを認証し、適切なポリシーを使用して Vault トークンを発行します。
前提条件
- Kubernetes 認証方法が有効化されている HashiCorp Vault
- ESO サービスアカウントを許可するように設定された Vault ロール。既定では、サービス アカウント名は [
external-secrets] です。 - KubernetesクラスタからVaultサーバへのネットワーク接続
- (オプション)カスタムの Kubernetes ServiceAccount (ESO のデフォルト サービス アカウントを使用しない場合)
Configuring input.json
Kubernetes 認証を使用して HashiCorp Vault をシークレット ストアとして設定するには、以下のセクションを追加します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"
}
}
]
}
}
カスタムの ServiceAccount を使用するには、次のように 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 を構成した場合、ServiceAccount は顧客が事前に作成する必要があります。uipathctl はその存在を検証しますが、作成はしません。
AppRole 認証を使用する
AppRole 認証は Vault の AppRole 認証方法を使用し、ESO は Kubernetes シークレットに保存されたロール ID とシークレット ID で認証します。この方法は自動システムに適しており、Vault で Kubernetes 認証を有効化する必要はありません。
前提条件
- AppRole 認証方法が有効化された HashiCorp Vault
- AppRole Role ロール ID とシークレット ID の生成
- AppRole の資格情報で事前に作成された Kubernetes シークレット
Configuring input.json
AppRole Auth を使用して HashiCorp Vault をシークレット ストアとして設定するには、以下の手順を実行します。
-
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- Vault の AppRole ロール IDsecret-id- Vault からの 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" } } ] } }
設定フィールド
次の表で、利用可能な設定フィールドについて説明します。
| フィールド | Required | 既定 (Default) | 説明 |
|---|---|---|---|
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 ServiceAccountを認証します。カスタムの ServiceAccount が指定されている場合は、クラスター内で事前に作成する必要があります。 |
TLS CA 証明書の処理
VaultサーバがプライベートCA証明書でHTTPSを使用する場合は、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 Vault に格納されている資格情報を参照するには、次の形式の 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 Vault シークレットを参照する方法を示しています。
admin_password: vault/hc-vault/admin-password-10832372?key=value
admin_password: vault/hc-vault/admin-password-10832372?key=value