AWS Security Hub の新機能「AIインベントリ」でAI資産を自動検出してみた
はじめに
2026年7月14日、AWS Security Hub に AIインベントリ機能が追加されました。
AI ワークロードの利用が組織全体に広がると、どこでどの AI サービスやモデルが使われているかの把握が難しくなります。
AIインベントリは、このAI資産の可視化を担う機能です。Security Hub Essentials に含まれており、Security Hub v2 が有効な環境であれば追加設定なし・追加コストなしで利用できます。AI 資産は次の3つの検出方法で自動的にカタログ化されます。
| 検出方法 | 情報源 | 対象AI資産の例 |
|---|---|---|
| マネージド型 | AWS Config | Bedrock, Bedrock AgentCore, SageMaker |
| セルフホスト型 | Inspector SBOM | EC2/コンテナ上のAIフレームワーク |
| 外部AI依存 | GuardDuty DNS | 外部AI API(OpenAI等)への通信 |
本記事では、実際の環境で「追加設定不要で何が見えるのか」を検証します。マネージド型の検出結果を中心に確認し、CLI/API でのアクセス方法もあわせて整理しました。
検証内容
検証環境
- Security Hub v2 有効(有効化日:2026-07-07。なお Security Hub v1 は 2023-01-12 から有効)
- AWS Config 有効(recording: true)
- Amazon Bedrock 利用中(SageMaker Unified Studio 経由)
- Amazon Inspector: ECR スキャンのみ有効(EC2 スキャンは無効)
- Amazon GuardDuty 有効(DNS ログ有効、AI Protection は無効)
リージョンは ap-northeast-1 です。本記事はすべて CLI/API の出力をもとに構成しており、コンソールのスクリーンショットは掲載しません。以降のコマンドは同一リージョンに対して実行しています。
AIインベントリの全体像
まず、Security Hub v2 がリソースをどのカテゴリに分類しているかを get-resources-statistics-v2 で確認しました。
aws securityhub get-resources-statistics-v2 \
--group-by-rules '[{"GroupByField": "ResourceCategory"}]' \
--region ap-northeast-1
結果はこのようになりました。
| カテゴリ | リソース数 |
|---|---|
| Identity, Network, Compute, Storage 等 | (省略) |
| AI/ML | 11 |
AI/ML というカテゴリに11件のリソースが自動分類されていました。このカテゴリは、コンソールの Resources 画面で ResourceCategory=AI/ML のフィルタを適用することでも確認できます。
マネージド型AIサービスの検出
AI/ML カテゴリの11件が、どのリソースタイプで構成されているかを確認しました。
aws securityhub get-resources-statistics-v2 \
--group-by-rules '[{
"Filters": {
"CompositeFilters": [{
"StringFilters": [{
"FieldName": "ResourceCategory",
"Filter": {"Comparison": "EQUALS", "Value": "AI/ML"}
}]
}]
},
"GroupByField": "ResourceType"
}]' \
--region ap-northeast-1
2つのリソースタイプで構成されていました。
| リソースタイプ | 件数 |
|---|---|
| AWS::Bedrock::ApplicationInferenceProfile | 10 |
| AWS::OpenSearchServerless::SecurityPolicy | 1 |
10件を占める AWS::Bedrock::ApplicationInferenceProfile は、SageMaker Unified Studio が自動作成した推論プロファイルでした。各プロファイルの使用モデルは次のとおりです。10件中4件は cross-region プロファイルで、マルチリージョン推論の構成も可視化されています。
| # | 使用モデル |
|---|---|
| 1 | anthropic.claude-sonnet-4-20250514-v1:0(cross-region x8) |
| 2 | amazon.titan-text-express-v1 |
| 3 | amazon.titan-embed-text-v2:0 |
| 4 | amazon.titan-embed-text-v1 |
| 5 | amazon.rerank-v1:0 |
| 6 | amazon.nova-reel-v1:0 |
| 7 | amazon.nova-pro-v1:0(cross-region x6) |
| 8 | amazon.nova-micro-v1:0(cross-region x6) |
| 9 | amazon.nova-lite-v1:0(cross-region x6) |
| 10 | amazon.nova-canvas-v1:0 |
残り1件は AWS::OpenSearchServerless::SecurityPolicy でした。Bedrock IDE が利用する OpenSearch Serverless のセキュリティポリシーです。今回の環境では、直接的な推論・学習リソースだけでなく、AI ワークロードに関連するインフラのセキュリティポリシーも AI/ML カテゴリに含まれていました。
これらのマネージド型リソースは AWS Config 経由で自動的に検出されます。実際、AI/ML リソース数の推移を追うと、Security Hub v2 を有効化した翌日にリソースがバックフィルされていました。トレンドは get-resources-trends-v2 で取得しました。
aws securityhub get-resources-trends-v2 \
--start-time "2026-07-07T00:00:00Z" \
--end-time "2026-07-14T23:59:59Z" \
--filters '{
"CompositeFilters": [{
"StringFilters": [{
"FieldName": "resource_category",
"Filter": {"Comparison": "EQUALS", "Value": "AI/ML"}
}]
}]
}' \
--region ap-northeast-1
| 日付 | AI/MLリソース数 |
|---|---|
| 2026-07-07 | 0 |
| 2026-07-08 | 11 |
| 2026-07-09〜14 | 11(安定) |
有効化当日(7/7)は0件でしたが、翌日(7/8)に11件が一括で登録され、以降は安定していました。本環境では、Security Hub v2 有効化時点で Config に記録されていたリソースが翌日に自動でカタログ化される挙動を確認できました。
各リソースには get-resources-v2 を通じて以下の情報が含まれます。
| フィールド | 内容 |
|---|---|
| ResourceId | ARN |
| ResourceCategory | AI/ML |
| ResourceType | AWS::Bedrock::ApplicationInferenceProfile 等 |
| ResourceName | リソース名 |
| ResourceCreationTimeDt | リソース作成日時 |
| ResourceDetailCaptureTimeDt | Config取得日時 |
| FindingsSummary | 関連するFindings(現在は空配列) |
| ResourceTags | タグ情報 |
| ResourceConfig | AWS Config構成情報 |
セルフホスト型AIワークロードの検出
セルフホスト型は、EC2インスタンスやコンテナイメージ上のAIフレームワークを検出する仕組みです。Amazon Inspector が生成するSBOM(ソフトウェア部品表)を情報源としています。
今回の環境では、この方法での検出はありませんでした。ECR スキャン対象のイメージに AI フレームワークは含まれていませんでした。また、EC2 スキャンは無効のため、EC2 上のワークロードは検証対象外です。
外部AI依存関係の検出
外部AI依存は、Amazon GuardDuty の DNS テレメトリを情報源として、OpenAI などの外部 AI API への通信を検出する仕組みです。
今回の環境では、この方法での検出もありませんでした。GuardDuty の DNS ログは有効ですが、EC2 から外部 AI API への通信自体が発生していなかったためです。なお、GuardDuty AI Protection(AI ワークロードへの脅威検出機能)は本環境では無効であり、次回記事で検証予定です。
AI Security Best Practices 標準
AIインベントリとあわせて、AI Security Best Practices という新しいセキュリティ標準が追加されています。
{
"StandardsArn": "arn:aws:securityhub:::standards/ai-security-best-practices/v/1.0.0",
"Name": "AI Security Best Practices v1.0.0",
"EnabledByDefault": false
}
この標準は31件のコントロール(Bedrock 8件、SageMaker 23件)で構成されます。EnabledByDefault が false であるため、利用するには明示的な有効化が必要です。
重要度HIGHのコントロールとしては、Bedrock 側に BedrockAgentCore.1(AgentCore ランタイムをVPCネットワークモードで構成する)があります。このコントロールは FSBP(AWS Foundational Security Best Practices)にも含まれており、AI Security Best Practices を有効化しなくても FSBP 経由で評価されます。SageMaker 側では SageMaker.1(ノートブックのインターネットダイレクトアクセスを無効化する)などが該当します。
Bedrock関連コントロール(8件)
| ID | タイトル | 重要度 |
|---|---|---|
| Bedrock.1 | データソースのKMS暗号化 | MEDIUM |
| BedrockAgentCore.1 | ランタイムのVPCネットワークモード | HIGH |
| BedrockAgentCore.2 | ゲートウェイのインバウンド認証 | HIGH |
| BedrockAgentCore.3 | メモリのKMS暗号化 | MEDIUM |
| BedrockAgentCore.4 | ゲートウェイのKMS暗号化 | MEDIUM |
| BedrockAgentCore.5 | カスタムブラウザのネットワークモード | HIGH |
| BedrockAgentCore.6 | カスタムブラウザのセッション記録 | MEDIUM |
| BedrockAgentCore.7 | コードインタプリタのVPC設定 | HIGH |
SageMaker関連コントロール(23件)
| ID | タイトル | 重要度 |
|---|---|---|
| SageMaker.1 | ノートブックのインターネットアクセス | HIGH |
| SageMaker.2 | ノートブックのカスタムVPC | HIGH |
| SageMaker.3 | ノートブックのrootアクセス | HIGH |
| SageMaker.4 | エンドポイントの初期インスタンス数 | MEDIUM |
| SageMaker.5 | モデルのネットワーク分離 | MEDIUM |
| SageMaker.8 | ノートブックのサポートプラットフォーム | MEDIUM |
| SageMaker.9 | データ品質ジョブのコンテナ間暗号化 | MEDIUM |
| SageMaker.10 | 説明可能性ジョブのコンテナ間暗号化 | MEDIUM |
| SageMaker.11 | データ品質ジョブのネットワーク分離 | MEDIUM |
| SageMaker.12 | モデルバイアスジョブのネットワーク分離 | MEDIUM |
| SageMaker.13 | モデル品質ジョブのコンテナ間暗号化 | MEDIUM |
| SageMaker.14 | モニタリングスケジュールのネットワーク分離 | MEDIUM |
| SageMaker.15 | モデルバイアスジョブのコンテナ間暗号化 | MEDIUM |
| SageMaker.16 | モデルのVPCプライベートレジストリ | MEDIUM |
| SageMaker.17 | Feature Groupオフラインストアの暗号化 | MEDIUM |
| SageMaker.18 | Feature Groupオンラインストアの暗号化 | MEDIUM |
| SageMaker.19 | マルチコンテナパイプラインのVPCレジストリ | MEDIUM |
| SageMaker.20 | 説明可能性ジョブのネットワーク分離 | HIGH |
| SageMaker.21 | ノートブックのKMS暗号化 | MEDIUM |
| SageMaker.22 | モニタリングのコンテナ間暗号化 | MEDIUM |
| SageMaker.23 | 推論実験のストレージ暗号化 | MEDIUM |
| SageMaker.24 | 推論実験のデータ暗号化 | MEDIUM |
| SageMaker.25 | モデル品質ジョブのネットワーク分離 | HIGH |
CLI/APIでのアクセス
検証を通じて、Security Hub の CLI/API にはAIインベントリ専用の操作は見当たりませんでした。get-resources-v2 に ResourceCategory=AI/ML フィルタを組み合わせてアクセスします。
aws securityhub get-resources-v2 \
--filters '{
"CompositeFilters": [{
"StringFilters": [{
"FieldName": "ResourceCategory",
"Filter": {"Comparison": "EQUALS", "Value": "AI/ML"}
}]
}]
}' \
--region ap-northeast-1
Finding関連付け
各リソースの FindingsSummary フィールドには関連する Findings が紐付き、AI 資産の棚卸しとセキュリティ評価を同じ Security Hub 上で確認できます。
今回の環境では、すべての AI/ML リソースの FindingsSummary が空配列でした。AIインベントリに登録されたリソースに Finding が紐付く状況は確認できませんでした。AI Security Best Practices 標準を有効化していないことに加え、ApplicationInferenceProfile を対象とするコントロール自体が現時点で確認できないことが背景として考えられます。
なお、Bedrock 関連の Finding は1件存在していました。BedrockAgentCore.1(FSBP と AI Security Best Practices の両標準に含まれるコントロール)の Finding で、対象リソースは AWS::BedrockAgentCore::Runtime でした。ただしこのリソースタイプはAIインベントリには登録されていません。
3つの検出方法について、前提条件と今回の環境での結果を整理しました。
| 検出方法 | 情報源 | 前提条件 | この環境での結果 |
|---|---|---|---|
| マネージド型 | AWS Config | Config有効 + AI/MLサービス利用中 | ✅ 11件検出 |
| セルフホスト型 | Inspector SBOM | Inspector EC2/ECR スキャン有効 + AIフレームワーク存在 | ⚠️ 該当なし(ECR対象内検出なし、EC2は未検証) |
| 外部AI依存 | GuardDuty DNS | GuardDuty有効 + EC2から外部AI APIへの通信が存在 | ⚠️ 該当なし(該当通信なし) |
まとめ
AWS Security Hub の AI インベントリを検証し、Security Hub v2 が有効な環境では、追加設定・追加コストなしで AI 資産がカタログ化されることを確認しました。本環境では、AWS Config 経由で Bedrock の推論プロファイルなど11件が有効化翌日に登録されました。ECR スキャン対象のイメージから AI フレームワークは検出されず、EC2 は未検証でした。また、外部 AI API への該当通信がなかったため、外部 AI 依存も検出されませんでした。次回は GuardDuty AI Protection による AI ワークロードの脅威検出を検証します。








