- 概要
- 要件
- インストール前
- インストール
- インストール後
- 移行とアップグレード
- 監視とアラート機能
- クラスターの管理
- 製品固有の設定
- トラブルシューティング
- 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 で作成されたワークロードのリソース要求と制限を設定する
証明書を管理する
OpenShift の Automation Suite で TLS 証明書と ID 証明書を更新およびローテーションします。
インストール プロセスによって、ユーザーに代わって自己署名証明書が生成されます。これらの証明書は 90 日で有効期限が切れます。インストールが完了したら、信頼された証明機関 (CA) によって署名された証明書にすみやかに置換する必要があります。証明書を更新しない場合、インストールは 90 日後に停止します。
uipathctl CLI ツールを使用して、インストール後に証明書を更新できます。詳しくは、 uipathctl のドキュメントをご覧ください。
証明書署名要求 (CSR) と秘密キーを生成する
CSR および秘密キーを生成するには、次のコマンドを実行します。
# copy the machine openssl configuration locally
cp /etc/pki/tls/openssl.cnf ./openssl.tmp.cnf
# Replace the [AUTOMATION_SUITE_FQDN] value. For example, "automationsuite.corp.com"
AS_FQDN=[AUTOMATION_SUITE_FQDN]
cat >> ./openssl.tmp.cnf <<EOF
[SAN]
subjectAltName=DNS:$AS_FQDN,DNS:alm.$AS_FQDN,DNS:monitoring.$AS_FQDN,DNS:registry.$AS_FQDN,DNS:objectstore.$AS_FQDN,DNS:insights.$AS_FQDN,DNS:apps.$AS_FQDN
EOF
# create the certificate request
openssl req -new -sha256 -newkey rsa:2048 -nodes -keyout server.key -subj "/C=xx/ST=xx/O=xx/OU=xx/CN=$AS_FQDN" -reqexts SAN -config openssl.tmp.cnf -out ${AS_FQDN}.csr
# copy the machine openssl configuration locally
cp /etc/pki/tls/openssl.cnf ./openssl.tmp.cnf
# Replace the [AUTOMATION_SUITE_FQDN] value. For example, "automationsuite.corp.com"
AS_FQDN=[AUTOMATION_SUITE_FQDN]
cat >> ./openssl.tmp.cnf <<EOF
[SAN]
subjectAltName=DNS:$AS_FQDN,DNS:alm.$AS_FQDN,DNS:monitoring.$AS_FQDN,DNS:registry.$AS_FQDN,DNS:objectstore.$AS_FQDN,DNS:insights.$AS_FQDN,DNS:apps.$AS_FQDN
EOF
# create the certificate request
openssl req -new -sha256 -newkey rsa:2048 -nodes -keyout server.key -subj "/C=xx/ST=xx/O=xx/OU=xx/CN=$AS_FQDN" -reqexts SAN -config openssl.tmp.cnf -out ${AS_FQDN}.csr
IT チームが、取得した値を使用して署名証明書を生成します。生成された秘密キーはローカルのままです。
TLS 証明書を管理する
TLS 証明書の更新に関する詳細情報を表示するには、次のコマンドを実行します。
uipathctl config update-tls-certificates --help
uipathctl config update-tls-certificates --help
出力:
************************************************************************************
Manage tls certificates
Usage:
uipathctl config tls-certificates [flags]
uipathctl config tls-certificates [command]
Available Commands:
get Get the current tls certificates
update Update tls certificates
Flags:
-h, --help help for tls-certificates
Global Flags:
--context string name of the kubeconfig context to use
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "error")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default 1h0m0s)
************************************************************************************
************************************************************************************
Manage tls certificates
Usage:
uipathctl config tls-certificates [flags]
uipathctl config tls-certificates [command]
Available Commands:
get Get the current tls certificates
update Update tls certificates
Flags:
-h, --help help for tls-certificates
Global Flags:
--context string name of the kubeconfig context to use
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "error")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default 1h0m0s)
************************************************************************************
TLS 証明書を検索する
証明書は Istio レベルでシークレットとして保存されます。証明書は、<istio-system> 名前空間内に istio-ingressgateway-certs という名前で確認できます。
証明書ファイルについては、以下のリストをご覧ください。
- サーバー TLS 証明書は
tls.crtとして保存されます。 - サーバー TLS 秘密キーは
tls.keyとして保存されます。 - CA バンドルは
ca.crtとして保存されます。
次のコマンドを使用して、シークレットを確認できます。
oc -n <istio-system> get secrets istio-ingressgateway-certs -o yaml
oc -n <istio-system> get secrets istio-ingressgateway-certs -o yaml
証明書は <uipath> 名前空間にも保存されます。これは、受信呼び出しを信頼するために証明書情報を必要とするすべての UiPath® 製品に適用されます。詳細については、「 証明書に関連するコンテナー アーキテクチャを理解する」をご覧ください。
TLS 証明書を更新する
サーバー証明書を更新する前に、「 証明書署名要求 (CSR) と秘密キーの生成 」セクションで生成された秘密キーを復号する必要があります。この復号手順をスキップすると、エラーが発生します。
証明書キーを復号するには、次のコマンドを実行します。
# replace /path/to/encrypted/cert/key to absolute file path of key
# replace /path/to/decrypt/cert/key to store decrypt key
# Once prompted, please entry the passphrase or password to decrypt the key
openssl rsa -in /path/to/encrypted/cert/key -out /path/to/decrypt/cert/key
# replace /path/to/encrypted/cert/key to absolute file path of key
# replace /path/to/decrypt/cert/key to store decrypt key
# Once prompted, please entry the passphrase or password to decrypt the key
openssl rsa -in /path/to/encrypted/cert/key -out /path/to/decrypt/cert/key
証明書チェーンの組み立て方法
uipathctl config tls-certificates update コマンドを実行すると、uipathctl は 2 つの別個の入力ファイルから完全な証明書チェーンを組み立てます。
server.crt- PEM 形式の完全なパブリック サーバー証明書チェーン: リーフ サーバー証明書、それに続く中間 CA 証明書、およびそのリーフ証明書の署名パスを形成するルート CA。リーフ証明書の実際の署名チェーンの一部である証明書のみを含めます。兄弟証明書、無関係証明書、重複証明書、または代替 CA 証明書は含めないでください。ca.crt- すべての中間証明書とルート CA を含む、完全な CA チェーンです。ファイルには、TLS サーバー証明書への署名に使用する証明書のみが含まれる必要があります。それ以外のものを含めると失敗につながります。
uipathctl は実行時にこれらのファイルを結合します。
証明書を更新するには、3 つの証明書ファイルのそれぞれに対するパスを指定します。すべての証明書ファイルは PEM 形式である必要があります。
- 証明機関バンドル - TLS サーバー証明書の署名に使用される完全な CA チェーンです。すべての中間証明書とルート CA を含めます。リーフ証明書や、TLS サーバー証明書の署名に使用されていないその他の証明書は含めないでください。それ以外の証明書を含めると、エラーが発生してしまいます。チェーンの証明書の制限は最大 9 個です。
- サーバー証明書 - PEM 形式の完全なパブリック サーバー証明書チェーンです。リーフ サーバー証明書から始まり、中間 CA 証明書とルート CA が続きます。リーフ証明書の実際の署名チェーンを形成する証明書のみを含めます。
- 秘密キー - サーバー証明書の秘密キーです。
uipathctl config tls-certificates update --cert server.crt --cacert ca.crt --key server.key
uipathctl config tls-certificates update --cert server.crt --cacert ca.crt --key server.key
TLS 証明書の検証エラーのトラブルシューティングについては、「 TLS 証明書の検証エラー」をご覧ください。
証明書を自分で管理する場合は、certificates update コマンドで --use-istio-cert フラグを使用する必要があります。このフラグを使用すると、既存のシークレットを uipath 名前空間にコピーできます。--use-istio-cert フラグを使用する場合は、他の証明書フラグを使用しないでください。他のフラグを使用しないと、コマンドは失敗します。
uipathの代わりに他の名前空間を使用する場合は、--namespace <uipath> フラグに渡すことで指定する必要があります。<uipath> は Automation Suite がデプロイされている名前空間を表します。
TLS 証明書にアクセスする
証明書ファイルを出力するには、次のコマンドを実行します。
uipathctl config tls-certificates get
uipathctl config tls-certificates get
追加の CA 証明書を管理する
クラスターに外部ソフトウェアを信頼させるには、追加の信頼された CA 証明書の提供が必要になる場合があります。 たとえば、SQL Server の CA 証明書、SMTP サーバーの CA 証明書、外部の S3 互換 ObjectStore の CA 証明書などがあります。
インストール時に、セキュリティで保護された TLS 通信を必要とする外部ソフトウェアすべてに対して CA 証明書を提供する必要があります。 ただし、TLS 通信を有効化していない場合は、インストール後に設定できます。
追加の CA 証明書の詳細情報を表示するには、次のコマンドを実行します。
uipathctl config additional-ca-certificates --help
uipathctl config additional-ca-certificates --help
出力:
***************************************************************************************
Manage additional ca certificates
Usage:
uipathctl config additional-ca-certificates [flags]
uipathctl config additional-ca-certificates [command]
Available Commands:
get Get the current additional ca certificates
update Update additional ca certificates
Flags:
-h, --help help for additional-ca-certificates
Global Flags:
--context string name of the kubeconfig context to use
-f, --force override all user prompts to true
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "info")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default: 90 minutes) (default 1h30m0s)
--versions string optional path to versions file
Use "uipathctl config additional-ca-certificates [command] --help" for more information about a command.
***************************************************************************************
***************************************************************************************
Manage additional ca certificates
Usage:
uipathctl config additional-ca-certificates [flags]
uipathctl config additional-ca-certificates [command]
Available Commands:
get Get the current additional ca certificates
update Update additional ca certificates
Flags:
-h, --help help for additional-ca-certificates
Global Flags:
--context string name of the kubeconfig context to use
-f, --force override all user prompts to true
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "info")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default: 90 minutes) (default 1h30m0s)
--versions string optional path to versions file
Use "uipathctl config additional-ca-certificates [command] --help" for more information about a command.
***************************************************************************************
以降のセクションでは、uipathctl config additional-ca-certificates コマンドを使用して実行できる操作について説明します。
CA 証明書を更新する
CA 証明書を更新するには、次の手順を実行します。
input.jsonファイルを更新して、additional_ca_certsを含むファイルを指すようにします。詳しくは、「 証明書の設定」をご覧ください。- マニフェストを適用します。
このコマンドは、次のようなエラーで失敗する可能性があります。
uipathctl manifest apply input.json --versions versions.jsonuipathctl manifest apply input.json --versions versions.json障害に関係なく、手順 3 に進み、デプロイを再起動して環境を安定させます。Error: [failed to wait for application argocd/<app-name1>: timed out waiting for the condition, failed to wait for application argocd/<app-name2>: timed out waiting for the condition]]Error: [failed to wait for application argocd/<app-name1>: timed out waiting for the condition, failed to wait for application argocd/<app-name2>: timed out waiting for the condition]] uipath名前空間のすべてのデプロイとステートフル セットを手動で再起動します。kubectl rollout restart deployment -n <uipath> kubectl rollout restart sts -n <uipath>kubectl rollout restart deployment -n <uipath> kubectl rollout restart sts -n <uipath>
古い証明書を追加するには、「CA 証明書にアクセスする」セクションの get コマンドを使用し、[additional_ca_certs] フィールドに指定する必要がある CA 証明書 .pem ファイルに追加する必要があります。
CA 証明書バンドル ファイルは有効な .pem 形式である必要があり、複数の証明書を含めることができます。
CA 証明書にアクセスする
設定済みの CA 証明書をダウンロードするには、次のコマンドを実行します。
uipathctl config additional-ca-certificates get --namespace <uipath>
uipathctl config additional-ca-certificates get --namespace <uipath>
ID トークン署名証明書を管理する
Automation Suite では、ID トークン署名証明書のローテーションを管理する方法として、自動と手動の 2 つの方法が用意されています。
追加の ID トークン署名証明書の詳細情報を表示するには、次のコマンドを実行します。
uipathctl config token-signing-certificates --help
uipathctl config token-signing-certificates --help
出力:
************************************************************************************
Manage token signing certificates
Usage:
uipathctl config token-signing-certificates [flags]
uipathctl config token-signing-certificates [command]
Available Commands:
automatic-key-management Manage key management
get Get the current token signing certificate
rotate Rotate token signing certificates
update Update future token signing certificate
Flags:
-h, --help help for token-signing-certificates
Global Flags:
--context string name of the kubeconfig context to use
-f, --force override all user prompts to true
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "info")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default: 90 minutes) (default 1h30m0s)
--versions string optional path to versions file
Use "uipathctl config token-signing-certificates [command] --help" for more information about a command.
************************************************************************************
************************************************************************************
Manage token signing certificates
Usage:
uipathctl config token-signing-certificates [flags]
uipathctl config token-signing-certificates [command]
Available Commands:
automatic-key-management Manage key management
get Get the current token signing certificate
rotate Rotate token signing certificates
update Update future token signing certificate
Flags:
-h, --help help for token-signing-certificates
Global Flags:
--context string name of the kubeconfig context to use
-f, --force override all user prompts to true
--kubeconfig string kubectl configuration file (default: ~/.kube/config)
--log-format string log format. one of [text,json] (default "text")
--log-level string set log level. one of [trace,debug,info,error] (default "info")
-q, --quiet suppress all output except for errors and warnings
--timeout duration timeout of the command (default: 90 minutes) (default 1h30m0s)
--versions string optional path to versions file
Use "uipathctl config token-signing-certificates [command] --help" for more information about a command.
************************************************************************************
証明書への署名には、キーの最大長 4096 ビットを使用できます。 ベスト プラクティスとして、少なくとも 512 ビット (64 バイト) のキー長を使用することを強くお勧めします。
次のセクションでは、uipathctl config token-signing-certificates コマンドを使用して実行できる操作について詳しく説明します。
証明書の自動ローテーション
証明書の自動ローテーションとは、署名キーのライフサイクルを Automation Suite が管理することを意味します。 これには、90 日ごとのキーのローテーション、ローテーションの 14 日前に新しいキーのアナウンス、ローテーション後の 14 日間古いキーを保持し、14 日間の期間が終了したら削除することが含まれます。
古いバージョンから 2.2510 にアップグレードする場合、証明書の自動ローテーションは既定で無効化されています。キーの自動管理を有効化するには、次のコマンドを実行します。
uipathctl config token-signing-certificates automatic-key-management enable --namespace <uipath>
uipathctl config token-signing-certificates automatic-key-management enable --namespace <uipath>
証明書の自動ローテーションを有効化すると、最大 1 時間のダウンタイムが発生する可能性があります。
Automation Suite のクリーン インストールでは、証明書の自動ローテーションが既定で有効化されています。キーの自動管理を無効化するには、次のコマンドを実行します。
uipathctl config token-signing-certificates automatic-key-management disable --namespace <uipath>
uipathctl config token-signing-certificates automatic-key-management disable --namespace <uipath>
自動管理機能が無効になっている場合は、署名証明書を手動で更新およびローテーションする必要があります。キーの手動管理について詳しくは、「証明書を手動で更新およびローテーションする」をご覧ください。
証明書の手動更新
次のコマンドでは、既存のトークン署名証明書は置換されません。
提供する証明書が .pem 形式であることを確認してください。次の例に示すように、 server.crt ファイルにはチェーン全体が含まれている必要があります。
-----server cert-----
-----root ca chain-----
-----server cert-----
-----root ca chain-----
新しい証明書をアップロードしてトークンに署名するには、次のコマンドを実行します。
uipathctl config token-signing-certificates update --namespace <uipath> --cert server.crt --key server.key
uipathctl config token-signing-certificates update --namespace <uipath> --cert server.crt --key server.key
証明書を手動でローテーションする
古い証明書をローテーションしたり、新しい証明書に置換したりするには、次のコマンドを実行します。
uipathctl config token-signing-certificates rotate --namespace <uipath>
uipathctl config token-signing-certificates rotate --namespace <uipath>
ローテーション後、次のコマンドを実行して、デプロイとステートフル セットを再起動します。
kubectl -n <uipath> rollout restart deploy
kubectl -n <uipath> rollout restart sts
kubectl -n <uipath> rollout restart deploy
kubectl -n <uipath> rollout restart sts
証明書にアクセスする
現在のトークン署名証明書をダウンロードするには、次のコマンドを実行します。
uipathctl config token-signing-certificates get --namespace <uipath>
uipathctl config token-signing-certificates get --namespace <uipath>
証明書の更新とローテーションの間には、約 24 - 48 時間のリード タイムが必要です。
このリード タイムは、キャッシュされている、古い証明書によって署名されたトークンの認証を引き続きサポートするために必要となります。
キャッシュ トークンの有効期限の満了を待たずに証明書をローテーションすると、ダウンタイムが発生する場合があります。この場合、すべてのロボットの再起動が必要になる可能性もあります。