スケジュール済みジョブと統合には、ビルトインのアドミンまたはゲストユーザーの代わりに専用のサービスアカウントを使用しますIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 多くの ServiceNow インスタンスは、スケジュール済みジョブの実行ユーザーとして、またインバウンドまたはアウトバウンドの統合の認証情報として、ビルトインの admin アカウントに依存しています。これによりオペレーショナルリスクが発生し、最小特権の原則に従わない。 自動化に共有ビルトインアカウントを使用すると、そのアカウントに影響を与える問題 (パスワードリセット、ログイン試行の失敗によるロックアウト、ロールの変更、非アクティブ化など) が発生すると、それに依存するすべてのスケジュール済みジョブと統合が同時に中断されます。 Symptoms<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } 自動化に共有ビルトインアカウントを使用している組織では、一般的に次のことが確認されます。 複数のスケジュール済みジョブが同時に失敗し、「[Job Name] not executed. User admin is locked out 」などのメッセージが表示されます。admin アカウントでのパスワードローテーション後に統合が予期せず中断する。すべてのアクティビティが同じ共有ユーザーに起因するため、どの統合、スクリプト、またはジョブが特定のアクションを実行したかを監査することが困難です。読み取りアクセスまたは特定の機能ドメインのみを必要とするジョブが、完全なアドミニストレーター権限で実行される、過剰な権限の自動化。ワークロードとそれを実行する ID の間に明確な所有権マッピングがない。 Facts<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } サービスアカウントは、自動化、スケジュール済みジョブ、または統合を実行するために特別に作成された、人間以外の専用ユーザーです。最小特権の原則とは、デフォルトでは admin ロールではなく、その機能を実行するために必要な最小限のロールのみをアカウントに付与することを意味します。ServiceNow のスケジュール済みジョブは、[実行方法] フィールドで指定されたユーザーの下で実行されます。そのユーザーが非アクティブであるか、ロックアウトされているか、必要なロールがない場合、ジョブは実行されません。Web サービスアクセスのみフラグは、ユーザーを API ベースのアクセスに制限し、インタラクティブな UI ログインを防止します。これは、統合でのみ使用されるアカウントに推奨される設定です。ユーザーレコードで [ID タイプ] = [マシン] を設定すると、Web サービスへのアクセスのみフラグが自動的に有効になり、プラットフォームのレポートとダッシュボードでアカウントが人間以外の ID として明確に識別されます。ユーザーに直接ではなく、グループを通じてロールをアサインすることで、ロール管理の監査と長期にわたる保守が容易になります。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } サポートされているすべての ServiceNow リリース。 Cause<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } これは欠陥ではなく、構成と設計パターンの推奨事項です。ビルトイン admin アカウントは汎用プラットフォームアカウントであり、本番の自動化や統合の ID として機能することを意図したものではありません。この目的でそれらを使用します。 オペレーショナルリスクを単一の共有認証情報に集中します。完全なアドミニストレーター権限をほとんど必要としないワークロードに過剰な権限を付与します。アクションを特定の統合またはジョブに関連付けることを困難にします。関連のないワークロードを結合して、1 つの問題がすべてに連鎖する可能性があります。 Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } スケジュール済みジョブや統合で使用されるビルトイン admin アカウントを、最小特権の原則に従う専用のサービスアカウントに置き換えます。推奨されるアプローチについては、以下の手順で説明します。 ステップ 1:アドミンとして実行されているインベントリスケジュール済みジョブ [System Definition] > [Scheduled Jobs] に移動します。[実行方法] 列が表示されていない場合はリストビューに追加し、 Run as = System Administrator (または admin をフィルタリングします。各ジョブについて、以下をキャプチャします。 ジョブ名とクラススケジュール/頻度ジョブが読み込むまたは書き込むテーブルと操作ジョブの事業主 (既知の場合) ステップ 2:最小ロール要件の決定 特定されたジョブまたは統合ごとに、スクリプトまたは構成を確認して、必要なテーブルと操作を正確に判断します。これを使用して、ワークロードを実行できる最も狭いロールセットを特定します。たとえば、次のようになります: パフォーマンスアナリティクスのデータ収集ジョブには、通常、 pa_admin ロールまたは pa_data_collectorロールが必要です。カタログ関連の自動化では、 catalog_adminのみが必要な場合があります。レポートジョブには、特定のテーブルに対する report_admin プラス読み取りアクセス権のみが必要な場合があります。 1 つのサービスアカウントでジョブの論理グループを処理できるように、同じロール要件を共有する関連ワークロードをグループ化します。 ステップ 3:専用のサービスアカウントを作成する 論理グループごとに、次の構成で新しいユーザーを作成します。 ユーザー ID: 目的を識別する明確な命名規則 (たとえば、 svc_appsec_collector、 svc_daily_data_mgmt、 svc_integration_ など) を使用します。アクティブ:true。パスワード:組織の標準に従った強力で一意のパスワード。ドキュメントではなくシークレットマネージャーに保存します。Web サービスへのアクセスのみ:API または統合アクセス専用に使用されるアカウントに対して有効にします。内部スケジュール済みジョブの実行ユーザーとして使用されるアカウントの場合、一部のプラットフォームジョブではこのフラグのチェックを外す必要がある場合があるため、最初にテストします。ロール:ステップ 2 で特定された最小限のロールのみをアサインします。 admin ロールを直接割り当てないでください。監査とメンテナンスを簡素化するために、可能な場合は、ユーザーに直接ではなく、グループを通じてロールをアサインします。ID タイプ:[マシン] に設定すると、[Web サービスへのアクセスのみ] フラグが自動的に有効になり、アカウントが人間以外として明確にマークされます。 ステップ 4:スケジュール済みジョブと統合を更新する 各スケジュール済みジョブの [実行方法] フィールドを更新して、 System Administratorではなく新しいサービスアカウントを指すようにします。統合の場合は、関連する接続および資格情報エイリアスまたは統合構成に保存されている認証情報を更新します。 ステップ 5:テストと検証 [実行方法] フィールドを更新した後、各ジョブを手動でトリガーし、正常に実行されていることを確認します。ジョブの実行履歴とシステムログでアクセスエラーを確認します。十分な権限がないためにジョブが失敗した場合は、不足している特定のロールのみをサービスアカウントに付与し、再テストします。admin ロールにフォールバックしたくなることは避けてください。 ステップ 6:継続的なガバナンスの文書化と監視 サービスアカウント、その目的、所有者、およびアサインされたロールの登録簿を管理します。組織のセキュリティポリシーに従って、定義されたスケジュールでサービスアカウントのパスワードをローテーションします。サービスアカウントのアクティビティを定期的に確認し、使用されなくなったアカウントを削除または無効化します。サービスアカウントがロックされたり非アクティブになったりした場合に、すぐに修復を開始できるように、運用チームにアラートを送信する通知を作成することを検討してください。 Related Links<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } KB1933421 - サービスアカウント管理のベストプラクティス: https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB1933421KB0813159 — 厳格な REST API セキュリティを強制する方法: https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0813159KB0793963 - 受信要求の REST API 認証要件: https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0793963KB2252196 - 「Web サービスへのアクセスのみ」フラグが有効になっていない統合アカウント: https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB2252196KB0792532 — Web サービスへのアクセスのみのユーザーの動作: https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0792532KB2420837 - [Web サービスへのアクセスのみ] フィールドは読み取り専用です ([ID タイプ] フィールド): https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB2420837コミュニティ - ユーザーアカウントですか、それともサービスアカウントですか?Web サービスタスクに使用するもの: https://www.servicenow.com/community/in-other-news/user-account-or-service-account-what-to-use-for-web-service/ba-p/2286977コミュニティ — 「スケジュール済みジョブ: https://www.servicenow.com/community/developer-forum/best-practices-for-creating-a-system-user-for-quot-run-as-quot/t-p/3301401」で実行方法のシステムユーザーを作成するためのベストプラクティスコミュニティ:インスタンスにアクセスするユーザーのタイプを認識します ([ID タイプ] フィールド): https://www.servicenow.com/community/in-other-news/recognising-the-types-of-users-that-access-your-instance/ba-p/3399656