Amazon Web Services ブログ
AI を活用したコンプライアンスエビデンス収集システムの構築
本ブログは 2026 年 3 月 31 日に公開された AWS Blog “Building an AI powered system for compliance evidence collection” を翻訳したものです。
コンプライアンス監査では包括的なエビデンスの記録が必要で、複数のシステムにわたる数百枚のスクリーンショットが求められることも珍しくありません。コンプライアンスチームは、GitHub のリポジトリ、AWS コンソール、組織内のアプリケーションを手作業で操作し、各ステップでスクリーンショットを取得するために何時間も費やしているのではないでしょうか。こうした手作業は時間がかかるうえにミスが起こりやすく、監査サイクルごとに同じ手順を一貫して再現することも困難です。この記事では、Amazon Bedrock とブラウザ自動化を使用して監査ワークフローを自動化した方法を紹介します。
あわせて、同様のシステムをお客様の組織で構築する方法も解説します。コンプライアンスワークフローの自動化に役立つアーキテクチャ上の判断、実装の詳細、デプロイプロセスについて理解できます。今回は、Amazon Bedrock と Amazon Nova 2 Lite モデルを使用して、このエビデンス収集プロセスを自動化するブラウザ拡張機能を構築しました。この拡張機能は、事前定義されたコンプライアンスワークフローを実行し、タイムスタンプ付きのスクリーンショットを自動的に取得して、整理されたエビデンスを Amazon Simple Storage Service (Amazon S3) に保存します。また、自然言語処理 (NLP) を使用してコンプライアンス文書を分析し、新しいワークフローを生成することもできます。
このソリューションのアーキテクチャ設計、インテリジェントオートメーションを実現するための Amazon Nova 2 Lite の統合、最新のウェブアプリケーション特有の複雑さに対応するブラウザ自動化ツールの実装について説明します。技術的な実装の詳細、デプロイプロセス、実際の使用パターンも取り上げます。
ソリューションの概要
ブラウザ自動化と AI を組み合わせる方式を採用した主な理由は、API アクセスなしであらゆるウェブアプリケーションで動作すること、監査人が必要とする視覚的なエビデンスを取得できること、インテリジェントオートメーションによって UI の変更に適応できることの 3 点です。
このソリューションでは、Chrome および Firefox 向けのブラウザ拡張機能をメインのインターフェイスとして使用し、Evidence Collector、AI を活用したワークフローデザイナー、レポート配信という 3 つの主要機能を提供します。Evidence Collector は事前定義されたワークフローを実行し、ウェブアプリケーションを操作しながらタイムスタンプ付きのスクリーンショットを取得して Amazon S3 バケットに保存します。AI を活用したワークフローデザイナーは、Amazon Nova 2 Lite モデルを使用して Amazon Bedrock と通信します。コンプライアンスのテキスト文書をアップロードすると、Amazon Nova 2 Lite がその内容を分析し、拡張機能で実行できるワークフロー JSON を生成します。レポート配信では、ワークフローの完了後に Amazon Simple Email Service (Amazon SES) がコンプライアンスレポートを生成し、指定されたメールアドレスに送信します。
インフラストラクチャ面では、2 つの AWS Lambda 関数がソリューションを支えています。1 つはデプロイ時に初期システムプロンプトを S3 バケットにアップロードし、もう 1 つはバケットのクリーンアップを担当します。認証と認可には Amazon Cognito を使用し、拡張機能のユーザーサインインを管理します。Cognito は AWS Security Token Service (AWS STS) および AWS Identity and Access Management (IAM) と連携し、Amazon Bedrock、Amazon S3、Amazon SES にアクセスするための、スコープを限定した最小権限の認証情報を拡張機能に提供します。エビデンスは保存時に暗号化され、日付とワークフローごとに整理されるほか、包括的な監査ログも記録されます。
アーキテクチャ
システムの機能を把握したところで、その構成を見ていきましょう。ブラウザ拡張機能は、4 つのレイヤーで構成されるモジュール型アーキテクチャを採用しています。
A. UI レイヤー
メインのインターフェイスとなるサイドパネルは、3 つのコンポーネントで構成されます。チャットインターフェイスでは、コンプライアンスに関する質問や 1 回限りの自動化のために、Amazon Nova 2 Lite と自然言語でやり取りできます。ワークフロー管理パネルでは、利用可能なワークフローの一覧表示、実行ステータスの確認、ワークフローの編集を行えます。認証 UI では、Amazon Cognito を使用したログインと設定の管理を行います。次の画像は、UI とその機能を示しています。
B. AI エージェントレイヤー
Amazon Nova 2 Lite は、3 つの動作モードを備えたインテリジェンスレイヤーとして機能します。
- チャットモード: 例えば、アドホックな質問を投げかけると、コンプライアンスに関する質問に回答したり、自然言語の指示に基づいてブラウザ自動化ツールを実行したりします。ワークフロー全体を作成せずに、エビデンスをすばやく収集したい場合に特に便利です。
- デザイナーモード (新しいワークフローの作成に使用): アップロードされた
.txt文書を分析してワークフローのステップを抽出し、自動化スクリプトを生成します。手元のコンプライアンス文書から、繰り返し実行できるワークフローを作成したい場合に使用します。
- レポート生成モード (ワークフローの完了後に使用): ワークフローの完了後に、取得したスクリーンショットを分析し、エビデンスの概要、所見、コンプライアンス状況の評価を含む包括的なコンプライアンスレポートを生成します。完成したレポートは、Amazon SES によって指定のメールアドレスに送信されます。
C. ワークフローエンジン
ワークフロー実行エンジンは、JSON で定義されたワークフローを 1 ステップずつ処理します。JSON は、手順を順序立てて定義するためのテキスト形式です。ただし、現時点では技術的な詳細を気にする必要はありません。AI がこれらを自動的に生成する方法を後ほど説明します。エンジンは、ページへの移動、ページ読み込みの待機、コンテキスト付きのスクリーンショットの取得を処理し、認証などの手動操作が必要な場面ではユーザー確認ステップを管理します。また、ステップが失敗した場合に Amazon Nova 2 Lite を使用して代替案を提案する、インテリジェントなエラー回復機能も備えています。
ワークフローデザイナーは、Amazon Nova 2 Lite を使用してコンプライアンス文書を分析し、収集が必要なエビデンス項目を抽出して、ワークフロー JSON を生成します。保存前のワークフローのテスト、既存のワークフローの編集、Amazon S3 でのワークフローのバージョン管理も行えます。
D. ストレージとサービス
Amazon S3 では、次の例のような構造化されたフォルダ階層でエビデンスを保存し、スクリーンショット、コンプライアンス文書、AI プロンプト、ワークフローとそのバックアップ、チャットログ、生成されたレポートを整理します。
evidence-collector-bucket-{AccountId}-{Region}/
|
|--- evidence/
|--- README.txt → エビデンスフォルダの構成と整理方法の説明
|--- YYYY/MM/DD/
|--- screenshot-*.png → コンプライアンスのエビデンスとして、ワークフローの実行中に取得したスクリーンショット
|
|--- workflow-documents/
|--- README.txt → ワークフロー文書フォルダの用途の説明
|--- {timestamp}-{filename}.txt → ユーザーがアップロードし、ワークフローを生成するために AI が分析するコンプライアンス文書
|
|--- config/
|--- prompts/
| |--- compliance-assistant-prompt.txt → AI アシスタントのコンプライアンス知識と回答の指針を定義
| |--- workflow-designer-prompt.txt → コンプライアンス文書からワークフローを生成する方法を AI に指示
| |--- report-analysis-prompt.txt → レポート作成のためにワークフローの実行結果を分析する方法を AI に指示
| |
| |--- workflows/
|--- README.txt → ワークフローフォルダとバックアップ方針の説明
|--- user-workflows.json → ユーザーが利用できる、現在有効なワークフロー
|--- backups/
|--- user-workflows-{timestamp}.json → ワークフローを更新するたびに事前に作成される、タイムスタンプ付きのバックアップ
|
|--- chat-logs/
|--- README.txt → チャットログフォルダの用途の説明
|--- chat-log-{timestamp}.json → 監査証跡として残す、ユーザーと AI の会話ログ
|
|--- reports/
|--- README.txt → レポートフォルダの構成と整理方法の説明
|--- YYYY/MM/DD/
|--- report-{workflow-name}-{timestamp}.html → ワークフローの実行内容を記録した、生成済みの HTML エビデンスレポート
AI を活用したワークフローデザイナー
次の画像は、フロントエンドでの処理の流れと、やり取りする AWS サービスを示しています。
ワークフローデザイナーは、コンプライアンス文書からワークフローを迅速かつ正確に作成するという重要な課題を解決します。コンプライアンス要件を記載したテキストファイルをアップロードすると、Amazon Nova 2 Lite がその内容を分析し、実行可能なワークフローを生成します。
このプロセスは 3 つのステップで構成されます。(1) 文書のアップロード – コンプライアンス要件を記載したテキストファイルをアップロードします。(2) AI による分析 – Amazon Nova 2 Lite が収集すべきエビデンス項目を抽出し、チェック対象のシステムを特定して、自動化できる箇所を判断します。(3) ワークフローの生成 – AI が、ページへの移動ステップ、スクリーンショットの取得ポイント、必要に応じたユーザー確認ステップを含む完全なワークフロー JSON を生成します。
例えば、「To take the evidence we need to take some screenshots from GitHub.com. After logging in, go to repo “https://github.com/aws-samples”. Verify branch protection is enabled on main branch with required reviews. Take a screenshot after logging in and then again after verification steps.」(エビデンスを取得するために、GitHub.com でいくつかのスクリーンショットを撮る必要があります。ログイン後、リポジトリ「https://github.com/aws-samples」に移動します。main ブランチで、必須レビュー付きのブランチ保護が有効になっていることを確認します。ログイン後と確認手順の後に、それぞれスクリーンショットを撮ります。) という文書の場合、Nova 2 Lite はこの文書を分析して次のワークフローを生成します。
{
"workflows": [
{
"name": "GitHub Branch Protection Verification",
"description": "Verify branch protection is enabled on the main branch with required reviews",
"steps": [
{
"action": "navigate",
"url": "https://github.com",
"description": "Navigate to GitHub homepage"
},
{
"action": "wait_for_user",
"description": "Please log in with your GitHub credentials, then click Continue"
},
{
"action": "screenshot",
"description": "Capture the page after login for evidence"
},
{
"action": "navigate",
"url": "https://github.com/YOUR_REPO",
"description": "Navigate to the repository where you want to verify branch protection"
},
{
"action": "click",
"element": "Settings",
"description": "Click on the Settings tab"
},
{
"action": "click",
"element": "Branches",
"description": "Click on the Branches option under Settings"
},
{
"action": "screenshot",
"description": "Capture the branch protection settings page for evidence"
}
]
}
]
}
ワークフローデザイナーにはテストモードがあり、生成されたワークフローをその場で実行して、正しく動作するかどうかを確認できます。ステップの調整が必要な場合は、編集モードで JSON を変更できます。編集モードでは、シンタックスハイライトと検証機能を利用できます。
前提条件
開始する前に、次の要件を満たしていることを確認してください。
- 適切な権限を持つ有効な AWS アカウント
- Amazon Bedrock、S3、SES、Cognito、IAM へのアクセス
- 認証情報が設定済みの AWS Command Line Interface (AWS CLI) (v2.x)
- Chrome (バージョン 88 以降) または Firefox (バージョン 147.0.2 以降) ブラウザ
訳注: この拡張機能はサイドパネルの API (chrome.sidePanel) を使うため、実際には Chrome 114 以降が必要です。参照: chrome.sidePanel | API | Chrome for Developers
デプロイとセットアップ
GitHub リポジトリをクローンし、使用するブラウザに対応するプロジェクトディレクトリに移動します。メインディレクトリには、chrome-extension フォルダと firefox-extension フォルダがあります。
Chrome、Firefox、またはその両方に対応した AWS インフラストラクチャ一式をデプロイできる、統合 AWS CloudFormation テンプレートを用意しています。AdminEmail には、Amazon SES が生成されたレポートの送信に使用するメールアドレスを、UserEmail には、Amazon Cognito の一時パスワードとコンプライアンスレポートの両方を受け取るメールアドレスを指定する必要があります。
サポートするブラウザ拡張機能は、BrowserType パラメータで選択できます。
Chrome– Chrome 拡張機能のみに対応する設定Firefox– Firefox 拡張機能のみに対応する設定Both– Chrome と Firefox の両方の拡張機能に対応する設定 (デフォルト)
aws cloudformation create-stack \
--stack-name evidence-collector \
--template-body file://deployment/evidence-collector-cfn.yaml \
--parameters \
ParameterKey=BrowserType,ParameterValue=Both \
ParameterKey=AdminEmail,ParameterValue=admin@example.com \
ParameterKey=UserEmail,ParameterValue=user@example.com \
ParameterKey=BucketName,ParameterValue=my-evidence-bucket \
--capabilities CAPABILITY_IAM \
--region us-east-1
このテンプレートでは、次のリソースが作成されます。
- 強力なパスワードポリシーを備えた Amazon Cognito ユーザープール
- ロールベースの権限で AWS サービスにアクセスするための Amazon Cognito アイデンティティプール
- 暗号化、バージョニング、パブリックアクセスのブロックを設定した S3 バケット
- Amazon Bedrock、S3、SES へのアクセス用の最小権限ポリシーを持つ IAM ロール
- 初期システムプロンプトを S3 にアップロードする AWS Lambda 関数
- 一時パスワードを記載した招待メールが送信される初期ユーザー
訳注: スタックの作成時に、AdminEmail のアドレスへ Amazon SES の確認メールが届きます。メール内のリンクを選択して検証を完了しないと、レポートを送信できません。また、アカウントが SES のサンドボックス内にある場合は、UserEmail のアドレスも検証済みである必要があります (スタックの作成時に UserEmail を AdminEmail と同じアドレスにしておけば、この追加の検証は不要です)。参照: Request production access (Moving out of the Amazon SES sandbox)
デプロイが完了すると、CloudFormation の出力に、ブラウザ拡張機能の設定に必要な値が表示されます。
EvidenceBucketNameIdentityPoolIdRegionUserPoolClientIdUserPoolId
これらの値は、初回セットアップ時に一度だけブラウザ拡張機能に入力します。CloudFormation の出力画面は、次の画像のようになります。
ブラウザ拡張機能の設定
Chrome の場合
先ほどクローンした GitHub リポジトリのルートで次のコマンドを実行し、Chrome 拡張機能フォルダへの移動、依存関係のインストール、ビルドを行います。
cd chrome-extensionnpm installnpm run build
これにより、dist フォルダが chrome-extension フォルダ内に作成されます。以降の手順は Chrome ブラウザで行います。
- Chrome ブラウザを開きます。
- アドレスバーに
chrome://extensionsと入力して移動します。 - 右上隅のトグルで [デベロッパーモード] を有効にします。
- [パッケージ化されていない拡張機能を読み込む] ボタンを選択します。
chrome-extension/distフォルダに移動して選択します。
拡張機能をインストールしたら、次の画像のように CloudFormation テンプレートの出力値を入力して、拡張機能を設定します。
Firefox の場合
先ほどクローンした GitHub リポジトリのルートで次のコマンドを実行し、Firefox 拡張機能フォルダへの移動、依存関係のインストール、ビルドを行います。
cd firefox-extensionnpm installnpm run build
これにより、dist フォルダが firefox-extension フォルダ内に作成されます。以降の手順は Firefox ブラウザで行います。
- Firefox ブラウザを開きます。
- アドレスバーに
about:debuggingと入力して移動します。 - 左側のメニューで [この Firefox] を選択します。
- [一時的なアドオンを読み込む] ボタンを選択します。
firefox-extension/distフォルダに移動します。manifest.jsonファイルを選択します。
これで拡張機能が一時的にインストールされ、Firefox を再起動するまで有効になります。拡張機能は [一時的な拡張機能] の見出しの下に表示されます。インストール後、次の画像のように CloudFormation テンプレートの出力値を入力して、拡張機能を設定します。
設定を入力したら保存し、メールで届いたユーザー名と一時パスワードでログインします。初回ログイン時には、パスワードの変更を求められます。
ソリューションのデモ
一般的な監査ワークフローの流れを見ていきましょう。この例では、ブラウザに Chrome を使用し、サンプルとして提供されている AWS IAM Access Review ワークフローを実行します。
- 拡張機能のサイドパネルを開いて [Evidence Collector] を選択し、歯車アイコンを選択して利用可能なワークフローを表示します。AWS IAM Access Review の目のアイコンを選択すると、ワークフローのステップを確認できます。準備ができたら、再生ボタンを選択してワークフローを開始します。
- 実行開始: ワークフローはまず AWS IAM コンソールページに移動します。
- 認証: ワークフローは「Please log in to AWS Console」(AWS コンソールにログインしてください) というメッセージと [Continue Workflow] ボタンを表示して一時停止します。この例では既にログイン済みのため、そのまま [Continue Workflow] を選択します。
- エビデンスの自動収集: ワークフローの指示に従って、特定の領域のスクリーンショットが自動的に取得されます。
- エビデンスの整理: 拡張機能はスクリーンショットをタイムスタンプ付きで S3 にアップロードし、
/evidence/xxxx/xx/xx/aws-iam-access-review/に整理します。各ファイル名には、タイムスタンプ、ドメイン、説明が含まれます。 - ワークフローの完了: ワークフローが完了すると、チャットに [Generate Evidence Report] ボタンが表示されます。このボタンを選択すると、スクリーンショット、タイムスタンプ、ワークフローの詳細を含む HTML レポートが作成され、メールで送信されます。
毎回同じエビデンスが同じ命名規則と構成で収集されるため、一貫したプロセスで作業できます。次の動画は、ワークフローの実行の様子を示しています。
次の動画は、生成されてユーザーに送信されるメールを示しています。
ワークフローの自動実行
アーキテクチャを把握したところで、ワークフローが実際にどのように実行されるかを見ていきましょう。次の例は IAM 監査ワークフローです。
{
"workflows": [
{
"description": "Review AWS IAM users and roles for compliance",
"name": "AWS IAM Access Review",
"steps": [
{
"action": "navigate",
"description": "Navigate to AWS IAM console",
"url": "https://console.aws.amazon.com/iam/home#/users"
},
{
"action": "wait_for_user",
"description": "Please log into AWS Console, then select Continue"
},
{
"action": "navigate",
"description": "Navigate to IAM Users page",
"url": "https://console.aws.amazon.com/iam/home#/users"
},
{
"action": "screenshot",
"description": "Capture IAM Users page for evidence"
},
{
"action": "navigate",
"description": "Navigate to IAM Roles page",
"url": "https://console.aws.amazon.com/iam/home#/roles"
},
{
"action": "screenshot",
"description": "Capture IAM Roles page for evidence"
}
]
}
]
}
ワークフローエンジンは各ステップを順番に実行し、ページの読み込みを待機しながら非同期処理を扱います。スクリーンショットのステップでは、キャプチャ前にページが完全にレンダリングされたことを確認し、タイムスタンプをオーバーレイとして追加したうえで、整理された命名規則に従って Amazon S3 にアップロードします。
ユーザー確認ステップ (wait_for_user) では実行が一時停止し、チャットインターフェイスに [Continue] ボタンが表示されます。これは、認証のように自動化が不可能な場面や望ましくない場面に対応するための仕組みです。操作の完了を確認すると、ワークフローが再開されます。
クリーンアップ
CloudFormation スタックを削除します。
スタックを削除すると、Amazon Cognito ユーザープール、アイデンティティプール、IAM ロール、Lambda 関数、S3 バケットが削除されます。
まとめ
この記事では、コンプライアンスのエビデンス収集を自動化する AI を活用したシステムの構築方法を紹介しました。Amazon Bedrock の Amazon Nova 2 Lite とブラウザ拡張機能を組み合わせて、最新のウェブアプリケーションで動作し、変化する要件にも適応できるソリューションを作成する方法を説明しました。このソリューションは、ページ読み込みと同期したワークフローの実行、コンプライアンス文書からのワークフロー生成、監査ログ付きのエビデンス保存を実現します。CloudFormation を使用すれば、インフラストラクチャ一式を数分でセットアップできます。まずは CloudFormation スタックをデプロイし、AWS 認証情報でブラウザ拡張機能を設定して、サンプルワークフローのいずれかを実行してみてください。その後、ワークフローデザイナーを使用して、お客様のコンプライアンス要件に合わせたカスタムワークフローを作成してみてください。
著者について
本ブログは Security Solutions Architect の 中島 章博 が翻訳しました。











