この記事の要点
- 権限はツール名ではなく、対象と操作を組み合わせたアクション単位で定義する
- 恒久的な認証情報を避け、実行ごとに短時間・限定範囲の権限を渡す
- 未使用の権限と拒否された操作を定期的に確認し、許可範囲を縮小する
「ツールを使える」は権限として広すぎる
AIエージェントにメール、ストレージ、顧客管理などのツールを接続するとき、ツール全体を一つの権限として扱うと、閲覧だけの処理にも更新や削除の能力が含まれます。正常時には使わない権限でも、入力の誤解や外部コンテンツの影響を受けた場面では実行経路になり得ます。
最小権限設計では、エージェントが担当する一つのワークフローから必要な操作を逆算します。便利そうな機能を先に許可するのではなく、完了条件に直接必要なアクションだけを残します。
対象と操作を分けて権限表を作る
同じ「ファイル操作」でも、指定フォルダの一覧取得と全社共有フォルダへの書き込みでは影響が異なります。対象、操作、実行条件、上限を一行ずつ整理すると、過剰な許可と承認が必要な境界を発見できます。
- 対象:利用できるアカウント、フォルダ、テーブル、宛先を限定した
- 操作:閲覧、生成、更新、送信、削除を別々の権限にした
- 条件:実行できる環境、時間帯、ワークフローを指定した
- 上限:1回あたりの件数、金額、データ量、呼び出し回数を設定した
- 禁止:担当業務に不要な管理者操作と権限変更を明示的に拒否した
読み取りと外部への作用を同列にしない
情報の取得、下書きの生成、外部システムの更新は、同じ流れに見えてもリスクが異なります。取得した情報を根拠に下書きを作るところまでは自動化し、公開、送信、支払い、削除などは別の権限と承認へ分離すると、便利さを保ったまま影響範囲を抑えられます。
更新権限が必要な場合も、新規作成だけを許可して既存データの上書きを禁止するなど、操作の向きを限定できます。APIが細かな制御に対応していない場合は、対象を限定した専用アカウントや中継処理を用意します。
権限は短時間だけ発行し、実行に結び付ける
長期間有効な認証情報をエージェントへ固定すると、予定外の再実行や別ワークフローからも利用される余地が残ります。可能であれば、承認された実行IDと対象範囲を条件に、短時間だけ有効な認証情報を発行します。
- 認証情報に有効期限があり、実行終了後は再利用できない
- 本番用と検証用のアカウントおよびデータを分離した
- 認証情報をプロンプト、画面表示、通常ログへ記録しない
- 付与、利用、失効の各イベントを同じ実行IDで追跡できる
拒否ログを使って権限を育てる
最初から広い権限を与えて利用状況を見るのではなく、小さな許可範囲から開始します。正当な処理が拒否された場合は、その操作だけを追加すべきか、ワークフローを変更すべきかを証跡に基づいて判断します。
反対に、一定期間使われていない権限は削除候補です。業務範囲の変更、外部サービスの仕様変更、事故やヒヤリハットを契機に権限表を見直し、現在の用途を説明できない許可を残さないことが重要です。