- 概要
- 要件
- インストール前
- インストール
- インストール後
- 移行とアップグレード
- 監視とアラート機能
- クラスターの管理
- 製品固有の設定
- トラブルシューティング

OpenShift の Automation Suite のインストール ガイド
このセクションでは、Automation Suite の外部シークレット演算子と secretstore の構成に関連する問題を解決するためのトラブルシューティング手順について説明します。
クラスターと外部シークレット プロバイダー間の同期または認証の問題を特定して解決するには、このセクションで説明されている手順に従います。
まず、External Secrets Operator ポッドが正しく実行されていることを確認します。
ポッドが [実行中 ] ステートでない場合、または再起動が繰り返される場合は、認証、権限、または設定ミスに関連するエラーがないかログを確認します。
外部シークレット ポッドのステータスをチェックしてログを表示するには、次のコマンドを実行します。
kubectl get pods -A | grep external-secrets
kubectl logs -f <pod-name> -n <namespace>kubectl get pods -A | grep external-secrets
kubectl logs -f <pod-name> -n <namespace>
kubectl logs -f external-secrets-7d8c9b5f9f-abc12 -n external-secretskubectl logs -f external-secrets-7d8c9b5f9f-abc12 -n external-secrets
ポッドが正しく実行されている場合は、SecretStore リソースと ExternalSecret リソースが適切に構成され、同期されていることを確認します。
これらのリソースは、外部シークレットを取得および保存する方法を定義するため、設定に誤りがあると同期が正常に完了しなくなる可能性があります。
-
ExternalSecret リソースを確認する
まず、クラスター内の ExternalSecret オブジェクトを確認します。これは、リソースが SecretStore に正しくリンクされていること、および同期ステータスが有効であることの確認に役立ちます。
-
ExternalSecret リソースを表示および検査するには、次のコマンドを実行します。
kubectl get externalsecrets -A kubectl describe externalsecret <externalsecret-name> -n <namespace>kubectl get externalsecrets -A kubectl describe externalsecret <externalsecret-name> -n <namespace> - たとえば、
uipath名前空間の特定の ExternalSecret を確認するには、以下の手順を実行します。kubectl describe externalsecret azure-secret-store -n uipathkubectl describe externalsecret azure-secret-store -n uipath
-
-
SecretStore リソースを確認する
関連する SecretStore 構成を調べます。このリソースは、シークレット プロバイダー (Azure Key Vault など) の接続の詳細を定義します。ここでエラーが発生すると、シークレットの同期がブロックされる可能性があります。
- SecretStore 定義を確認するには、次のコマンドを使用します。
kubectl get secretstores -A kubectl describe secretstore <secretstore-name> -n <namespace>kubectl get secretstores -A kubectl describe secretstore <secretstore-name> -n <namespace> - たとえば、
uipath名前空間の SecretStore 設定を調べるには、次のようにします。kubectl describe secretstore azure-secretstore -n uipathkubectl describe secretstore azure-secretstore -n uipath
- SecretStore 定義を確認するには、次のコマンドを使用します。
-
外部シークレットに関連するイベントを確認する
External Secrets Operator に関連する Kubernetes イベントを確認します。これらのイベントにより、同期の失敗、アクセス許可の問題、またはプロバイダーの構成ミスが明らかになる可能性があります。
- 関連するイベントを表示するには、次のコマンドを実行します。イベント出力を確認するときは、次の点を確認します。
kubectl get events -A | grep external-secretskubectl get events -A | grep external-secrets- [ステータス] セクションのエラー メッセージ
Ready: Trueかどうかを示す条件- [イベント] セクションの警告または同期の失敗
- 関連するイベントを表示するには、次のコマンドを実行します。
シークレット プロバイダーとして Azure Key Vault を使用している場合は、資格情報と設定が有効かつ最新であることを確認してください。
資格情報が正しくないか、権限がないことは、同期エラーの一般的な原因です。
- 認証資格情報
clientId、clientSecret、tenantIdの値が正しいことを確認します。- サービス プリンシパルに Key Vault に対する必要なアクセス許可があることを確認します。
- Key Vault のアクセス ポリシー
- シークレットの
Get権限とList権限を確認します。 - Key Vault のファイアウォールの設定で、クラスターからのアクセスが許可されていることを確認します。
- シークレットの
- ワークロード ID の構成 (該当する場合)
- フェデレーション資格情報が正しく設定されていることを確認します。
- 関連付けられているサービス アカウントに必要なアノテーションがあることを確認します。
- Key Vault URI
-
SecretStore 設定の
vaultUrlが正しいことを確認します。形式の例:
https://<key-vault-name>.vault.azure.net/https://<key-vault-name>.vault.azure.net/
-
デプロイでサービス プリンシパルを使用している場合は、Azure Key Vault からシークレットを取得するためのアクセス権があることを確認します。
サービス プリンシパルがアクセスできるシークレットを一覧表示するには、次のコマンドを実行します。
az keyvault secret list --vault-name <key-vault-name>az keyvault secret list --vault-name <key-vault-name>
次の一般的な問題と対応するエラー メッセージを確認して、問題の診断に役立ててください。
| 問題 | 考えられる原因 | 例 / エラー出力 |
|---|---|---|
| クラスターでシークレットが見つからない | Kubernetes シークレットが見つからない | Warning InvalidProviderConfig 3s (x4 over 8s) secret-store cannot get Kubernetes secret "azure-service-principal-secret" from
namespace "uipath": secrets "azure-service-principal-secret" not found |
| 資格情報が無効です。 | クライアント ID、クライアント シークレット、またはテナント ID が正しくない | error processing spec.data[0] (key: external-object-storage-account-key-10176524), err: azure.BearerAuthorizer#WithAuthorization:
Failed to refresh the Token for request ... StatusCode=400 |
| Key Vault オブジェクトが見つからない | キーが Azure Key Vault に存在しない | external-secrets error processing spec.data[0] (key: external-object-storage-account-key), err: Secret does not exist |
kubectl describe externalsecret <name> -n <namespace>
kubectl describe secretstore <name> -n <namespace>kubectl describe externalsecret <name> -n <namespace>
kubectl describe secretstore <name> -n <namespace>