AI エージェントにセキュリティのためのアクセス制御を実装する
アクセス制御リスト (ACL) とユーザー ID を使用して、AI エージェントとエージェントワークフローのセキュリティ制御を有効にします。
AI エージェントのセキュリティの概要
ServiceNow AI Platform上のエージェント AI のアクセス制御は、アクセス制御リスト (ACL) とユーザー ID という 2 つの主要コンポーネントで構成されています。全体的なセキュリティと動作は、これらのコンポーネントがエージェントワークフロー、AI エージェント、およびツールレベルでどのように相互作用するかによって決まります。
ACL は、エージェントコンポーネントを検出して呼び出すことができるユーザーを決定します。ACL は、エージェントワークフロー、AI エージェント、および一部の AI エージェントツール ( Now Assist カスタムスキルなど) ごとに個別に設定する必要があります。
ユーザー ID は、エージェントコンポーネントが実行できるロール、したがってアクセスできるデータを決定します。
エージェントシステムのセキュリティを設計するときは、各レベルが連携して動作するように考慮する必要があります。エージェントワークフローを正常に実行するには、ダウンストリームのすべてのコンポーネントの ACL に合格する必要があります。ダウンストリーム コンポーネントが AI ユーザーとして実行される場合など、昇格された権限を持つ可能性があるユーザー ID の切り替えを考慮する必要があります。
アクセス制御リスト
Now Assist AI エージェントのアクセス制御リストは、エージェントワークフローまたは AI エージェントを検出して呼び出すことができるユーザーを決定するために設定されています。
での ACL の構成 AI エージェントスタジオ
AI エージェントおよびエージェントワークフローの AI エージェントスタジオ で構成された ACL は、 Allow-If ロールベースです。
Allow-Ifロジックは、ACL のいずれかの条件が満たされた場合にデータまたはリソースへのアクセスを許可します。もう 1 つのタイプの ACL は Deny-Unlessです。Deny-Unless ACL は、通常は誰かにアクセス権を付与する Allow-If ACL などの他の条件がある場合でも、条件が満たされない限り、データまたはリソースへのアクセスをブロックします。
AI エージェントスタジオ で作成された ACL には、次の 3 つのオプションがあります。
- Any authenticated user:ロールに関係なく、インスタンスで認証されたすべてのユーザーにアクセス権を付与します
- Users with specified roles:デフォルトの ACL であり、アクセスを許可するロールを選択する必要があります
- Public:サインインしていないゲストを含むすべてのユーザーにアクセス権を付与します
AI エージェントスタジオ で構成されたすべての ACL が作成され、セキュリティ ACL テーブル [sys_security_acl] に保存されます。
各 AI エージェントとエージェントワークフローには、独自の ACL が必要です。各 ACL は 1 つの AI エージェントまたはエージェントワークフローにのみ適用できますが、AI エージェントまたはエージェントのワークフローに対して複数の ACL を作成できます。ACL がないと、AI エージェントまたはエージェントのワークフローを作成したり、既存の AI エージェントまたはエージェントのワークフローに変更を保存したりすることはできません。AI エージェントのAI エージェントスタジオでAllow-Ifおよびロールベースの ACL を構成するには、AI エージェントを作成する ガイド付きセットアップを参照してください。エージェントワークフローの Allow-If およびロールベースの ACL を構成するには、 エージェント型ワークフローを作成する ガイド付きセットアップを参照してください。
gen_ai_agent *ACL と gen_ai_workflow *ACL は、デフォルトで出荷される 2 つの ACL です。従来の AI エージェントまたはエージェントワークフローに ACL が構成されていない場合、これら 2 つの ACL で AI エージェントまたはエージェントワークフローを実行できます。これらの ACL は、既存の AI エージェント、または ACL がまだ構成されていないエージェントワークフローにのみ使用されます。
エージェント AI の高度な ACL 構成
Deny-Unless ACL およびセキュリティ属性などのより複雑なセキュリティ構成は、UI16 の ACL テーブル [sys_security_acl] とフォームにアクセスすることで使用できます。AI エージェントスタジオ では利用できません。
ACL レコードを作成することで、AI エージェントまたはエージェントワークフローに複数の ACL を構成できますが、 AI エージェントスタジオ では構成できません。追加の ACL を設定した場合、それらの ACL がガイド付きセットアップに表示されない場合があります。AI エージェントまたはエージェントワークフローの完全なセキュリティ構成については、ACL テーブルを確認してください。
AI エージェントがツールとして使用する Now Assist スキルとフローには、追加のセキュリティ構成が必要です。スキルレベルの ACL は、 Now Assist スキルキットで構成できます。詳細については 、「スキルのアクセス制御リストの構成 」を参照してください。フローレベルのセキュリティは、ACL テーブルで ACL を使用して直接構成できます。これらの ACL は、直接呼び出されたときにチェックされます。
スキルレベルの ACL は、ツールが有効になっている AI エージェントが呼び出されたときにもチェックされます。AI エージェントがフローをツールとして使用しようとすると、フローがチェックされます。
ユーザー ID
アクセス制御リスト (ACL) を構成したら、AI エージェントまたはエージェントワークフローの実行に使用するユーザー ID ( Run as とも呼ばれます) を設定する必要があります。AI エージェントまたはエージェントワークフローの実行に使用されるユーザー ID によって、その権限とアクセスできるデータが決まります。
- 動的ユーザー:AI エージェントまたはエージェントワークフローの実行を呼び出すログインユーザー。動的ユーザーはデフォルトのユーザー ID であり、AI ユーザーを正当化する特定のニーズがない限り、動的ユーザーを使用する必要があります。
- AI ユーザー:AI エージェントまたはエージェントワークフローの実行を実行する専用のユーザー ID で、実行が誰にどのように呼び出されても変更されないロールがアサインされています。元の呼び出し元ユーザーの権限を超える権限を必要とするエージェントワークフローまたは AI エージェントは、AI ユーザーを必要とするケースの例です。
AI ユーザーは AI エージェントスタジオ で選択できますが、AI ユーザーを選択するには、ユーザー [sys_user] テーブルに既に作成されている必要があります。AI ユーザーとして選択するには、ユーザーに AI Agent ID タイプが必要です。デフォルトでは、sn_aia.admin ロールを持つユーザーには AI ユーザーを作成するためのアクセス権がありません。ユーザーテーブルに新しいユーザーを作成する手順については、 ユーザーの作成 を参照してください。
ユーザー ID は、エージェントワークフローと AI エージェントレベルで構成されます。
AI エージェントスクリプトツールのセキュリティ
AI エージェントにスクリプトツールを追加するときは、デフォルトで GlideRecord の代わりに GlideRecordSecure を使用し、addEncodedQuery() の代わりに addUserEncodedQuery() を使用する必要があります。安全性の低いオプションを使用するスクリプトについては、ガイド付きセットアップに警告が表示されます。