mcpField
C
Cloud Audit

Cloud Audit

ローカル
haitmg.pl開発ツール737 週間前に更新

Cloud Audit について

Cloud Audit は、AWS アカウントのリスクを監査するチーム向けのオープンソースで読み取り専用のセキュリティスキャナーです。110 件のチェックを実行し、検出結果を攻撃チェーンとして関連付け、情報漏えい時のコストを見積もります。各検出結果には AWS CLI と Terraform の修正例が付属します。また、乗っ取られた AI エージェントが AWS 内で到達できる範囲を分析する agent-blast 機能も備えています。

主な機能

  1. 0125 の AWS サービスにわたる 110 件の読み取り専用チェック
  2. 0264 種の IAM 権限昇格手法と 31 件の攻撃チェーンルール
  3. 03すべての検出結果に対する AWS CLI と Terraform の修正例
  4. 04Bedrock Agents と AgentCore を対象とした agent-blast 分析
  5. 05IAM ポリシーシミュレーターによる Proof Mode の検証
  6. 06コンソール、JSON、HTML、SARIF、Markdown 形式の出力

活用シーン

  1. 01AWS アカウントの IAM 権限昇格経路と公開範囲の監査
  2. 02プロンプトインジェクションや認証情報の窃取後に AI エージェントが到達できる範囲の評価
  3. 03CI から SARIF 形式の結果を GitHub Code Scanning にアップロード

MCP 対応

Claude Code や Cursor などの MCP クライアントから利用できる、読み取り専用ツール 7 件を備えた MCP サーバーを提供します。get_agent_blast も含まれます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloud-audit": {
"command": "uvx",
"args": [
"cloud-audit"
]
}
}
}
起動コマンドuvx cloud-audit

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypicloud-audit2.0.1

ツール

6

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
min_severitystringいいえ
profilestringいいえ
regionsstringいいえ

詳細

cloud-audit のロゴ

cloud-audit

英語 | 簡体字中国語

乗っ取られた AI エージェントは、AWS アカウント内のどこにアクセスできるのでしょうか?それを証明できますか?

オープンソースの読み取り専用 AWS セキュリティスキャナーです。110 件のチェック、64 種類の IAM 権限昇格手法、31 件の攻撃チェーンルール、あらゆるリソースの影響範囲に対応し、Bedrock Agents と AgentCore 向けの agent-blast も備えています。 プロンプトインジェクションや認証情報の窃取を受けたエージェントがアクセスできる範囲を、IAM ポリシーシミュレーターを証拠として示します。 すべての検出結果にAWS CLI と Terraform による修正方法が付属します。アカウントには何も書き込みません。

PyPI のバージョン Python のバージョン CI ライセンス:MIT Docker ドキュメント

30 秒のデモ - agent-blast - 全項目スキャン - 内容 - 証明モード - インストール - ドキュメント

30 秒で試せます。AWS アカウントは不要です

pip install cloud-audit

cloud-audit agent-blast --demo          # a hijacked Bedrock Agent, two threat models, one screen
cloud-audit demo --save demo.json       # a full sample scan, then explore it offline:
cloud-audit blast-radius --report demo.json --resource arn:aws:iam::123456789012:role/support-bot-ticket-role
cloud-audit simulate     --report demo.json --fix aws-iam-018
cloud-audit exposure     --report demo.json

サンプルアカウントは架空のものです。そこから導き出されるすべての情報(攻撃チェーン、根本原因、侵害コスト、セキュリティグラフ、エージェントの到達範囲)は、実際のスキャンで使用されるエンジンと同じものが生成しています。

認証情報があれば、実際のスキャンもコマンド 1 つで実行でき、読み取り専用です。AWS 管理の SecurityAudit ポリシーで、すべてのチェックを実行できます(権限):

cloud-audit scan                         # default profile and region
cloud-audit scan --verify                # plus IAM policy-simulator proof for escalation paths
cloud-audit agent-blast --verify         # then: what your agents can reach, simulator-confirmed

agent-blast:乗っ取られた AI エージェントがアクセスできる範囲

AWS の AI エージェントは、IAM アイデンティティの集合体です。エージェントが実行されるロール、ツールの背後にある Lambda 関数の実行ロール、ナレッジベース、ゲートウェイ、サンドボックスのロールが含まれます。エージェントが乗っ取られると、攻撃者はそれらのアイデンティティを使って操作します。agent-blast は、2 つの脅威モデルに基づいて、エージェントごとにその影響を明らかにします。

脅威モデル攻撃者が持つものアクセスできる範囲
アイデンティティの乗っ取りエージェントが実行されるロールの認証情報(サンドボックスからの脱出、メタデータサービスの読み取り、セッションの漏えい)ロール全体:権限昇格の手法、AssumeRole による移動、データ
振る舞いの乗っ取りプロンプトだけ(ドキュメント、チケット、ウェブページを介した間接的なプロンプトインジェクション)エージェントのツールが実行できる操作。ツール自体の実行ロールによって制限されます

サンプルエージェントの実際の出力(cloud-audit agent-blast --demo -a support-bot):

support-bot (bedrock_agent, eu-central-1)
├── A hijacked tool (tool: create-ticket) can escalate to account admin via PassRole+Lambda
├── status: PREPARED
├── Identity takeover (attacker holds the role's credentials)
│   └── support-bot-agent-role arn:aws:iam::123456789012:role/support-bot-agent-role
│       └── no escalation path; 3 reach(es) from policy grants, 1 on named resources (see Reach)
│           (risk 0/100, 1 nodes)
├── Behaviour takeover (prompt injection: the agent's tools, their roles)
│   ├── search-docs action_group_lambda -> support-bot-search-role
│   │   ├── 3 OpenAPI path(s) in apiSchema; state ENABLED
│   │   └── no escalation path; 4 reach(es) from policy grants, 4 on named resources (see Reach)
│   ├── create-ticket action_group_lambda -> support-bot-ticket-role
│   │   ├── 2 function(s) in functionSchema; state ENABLED
│   │   ├── reaches Account Takeover in 1 hop(s) via PassRole+Lambda (risk 72/100)
│   │   └── escalation: PassRole+Lambda
│   └── product-docs knowledge_base -> support-bot-kb-role
│       ├── 1 S3 data source(s)
│       └── no escalation path; 2 reach(es) from policy grants, 2 on named resources (see Reach)
├── Reach (13 action/resource pairs)
│   ├── tool: search-docs secretsmanager:GetSecretValue on
│   │   arn:aws:secretsmanager:eu-central-1:123456789012:secret:prod/db-credentials-Ab12Cd
│   │   unverified read secret values
│   ├── tool: create-ticket sts:AssumeRole on arn:aws:iam::123456789012:role/ops-admin unverified
│   │   assume IAM roles
│   ├── tool: create-ticket lambda:InvokeFunction on * unverified invoke Lambda functions
│   ├── tool: search-docs s3:PutObject on arn:aws:s3:::company-backups-2024/* unverified write S3
│   │   objects
│   ├── support-bot-agent-role s3:GetObject on arn:aws:s3:::kb-product-docs/* unverified read the
│   │   agent's knowledge base
│   ├── tool: search-docs s3:GetObject on arn:aws:s3:::company-backups-2024/* unverified read S3
│   │   objects
│   ...
├── Tags
│   ├── OWASP Agentic: ASI02 Tool Misuse and Exploitation, ASI03 Identity and Privilege Abuse,
│   │   ASI05 Unexpected Code Execution
│   └── MITRE ATLAS: AML.T0034 Cost Harvesting, AML.T0040 AI Model Inference API Access, AML.T0053
│       AI Agent Tool Invocation, AML.T0086 Exfiltration via AI Agent Tool Invocation
└── Simulated, not executed: identity policies, the attached permissions boundary and SCPs are
    evaluated by the IAM policy simulator; resource-based policies of the targets, RCPs and VPC
    endpoint policies are not. Tool reach is an upper bound set by the tool's role; what the tool
    code does with its inputs is narrower.

出力が示す内容:support bot 自体に危険はありませんが、create-ticket を呼び出すように仕向けるドキュメントによって、管理者ロールを新しい Lambda に渡せるロールでコードが実行されます。製品ドキュメントを読むためのsearch-docsツールは、本番データベースのシークレットを読み取り、バックアップバケットに書き込むこともできます。各行にはアイデンティティ、アクション、リソースが示されるため、必要なのは議論ではなくポリシーステートメントの修正です。

同じエンジンで AgentCore にも対応します。サンプルゲートウェイ(--demo -a tools-gw)では、エージェントをまたぐ内容が概要として示されます。

tools-gw (agentcore_gateway, eu-central-1)
├── tool: crm-sync can write into agent 'support-bot' knowledge base (RAG poisoning): arn:aws:s3:::kb-product-docs/*
├── inbound authorizer: NONE; policy engine: none
...
│   ├── tool: crm-sync s3:PutObject on arn:aws:s3:::kb-product-docs/* unverified write into agent
│   │   'support-bot' knowledge base (RAG poisoning)
...
├── Coverage notes
│   └── tool 'erp-mcp' (gateway_target_mcp_server): backend identity unknown, not assessed - remote
│       MCP server; credential provider: OAUTH

agent-blast が読み取る情報(すべて list/get、料金はかかりません):

  • Bedrock Agents:エージェントのリソースロール、DRAFT バージョンにあるすべてのアクショングループ(Lambda とその実行ロールまで解決)、S3 データソースバケットまで解決したナレッジベース。
  • AgentCore:ランタイムロールとネットワークモード、オーソライザーを備えたゲートウェイロール、ポリシーエンジン、すべてのターゲット(Lambda、リモート MCP サーバー、API Gateway、OpenAPI、Smithy)とその認証情報プロバイダー、コードインタープリターとブラウザーの実行ロール。
  • これらのアイデンティティに該当する IAM ポリシー(インライン、アタッチ済み、グループ)。アクション、リソース、効果、Condition の有無を含め、生の状態を保持します。条件にはフラグを付けますが、推測はしません。判定はシミュレーターが行います。

その後、アイデンティティごとに、64 種類の権限昇格手法、信頼グラフを介した AssumeRole による移動、具体的なリソースに照合されたすべてのデータ、シークレット、ラテラル、コード実行、モデル呼び出しの許可を調べます。ナレッジベースのバケットは、s3:* が * に対して設定されている場合でも、常に具体的なターゲットとして扱われます。また、そのバケットへの書き込みアクセスは RAG ポイズニングとして報告されます。スキャナーが読み取れなかったもの(アクセス拒否されたリージョン、IAM アイデンティティのないツールなど)は、黙って問題なしとせず、カバレッジに関する注記として示されます。

--verify は、攻撃者が実際に持つコンテキスト(セッションに MFA がない、TLS で通信している)を使って、具体的なすべてのペアについて iam:SimulatePrincipalPolicy を実行し、各アクセス可能性に PROVEN、DENIED(拒否したポリシーレイヤー:SCP、権限境界を含む)、または not asserted のマークを付けます。出力形式:tree、json、markdown。MCP サーバーは、同じレポートを get_agent_blast として公開します。

全体スキャン

cloud-audit scan は、25 の AWS サービスにわたって読み取り専用のチェックを 110 件実行し、検出結果を攻撃チェーンとして関連付け、チェーンをどれだけ断ち切れるかに基づいて修正を優先順位付けし、リスクの金額を算出します。これはサンプルアカウント(cloud-audit demo)を、実際のスキャンと同じコードで出力し、長さを調整したものです。

┌─────── Health Score ───────┐
│ 15 / 100                   │
└────────────────────────────┘
  Provider             AWS
  Account              123456789012
  Regions              eu-central-1
  Resources scanned    80
  Checks passed        14
  Checks failed        6
  Attack chains        3
  Risk exposure        $572K - $12.5M  (IBM/Verizon data)
┌───────────────────────── Attack Chains (3 detected) ─────────────────────────┐
│   CRITICAL      PassRole Escalation to Admin (support-bot-ticket-role)       │
│                 Principal 'support-bot-ticket-role' has iam:PassRole and     │
│                 can create resources with privileged roles via:              │
│                 PassRole+Lambda. The attacker passes an admin role to a      │
│                 service, then uses that service to execute code with admin   │
│                 privileges.                                                  │
│                 Fix: Scope iam:PassRole for 'support-bot-ticket-role' to     │
│                 specific role ARNs                                           │
│                 Risk: $250K - $5.0M                                          │
│                                                                              │
│   CRITICAL      Internet-Exposed Admin Instance                              │
│                 i-0abc123def456789, sg-0a1b2c3d4e5f67890                     │
│                 Instance i-0abc123def456789 is reachable from the internet   │
│                 via open security group and has admin IAM role               │
│                 'prod-admin-role'. An attacker can reach the instance,       │
│                 access IMDS credentials, and gain full admin access to the   │
│                 AWS account.                                                 │
│                 Fix: Restrict security group sg-0a1b2c3d4e5f67890 to         │
│                 specific IPs (effort: LOW).                                  │
│                 Risk: $62K - $625K                                           │
│                                                                              │
│   CRITICAL      CI/CD to Admin Takeover                                      │
│                 Role 'github-deploy-role' trusts an OIDC provider without    │
│                 restricting the 'sub' claim AND has admin permissions. Any   │
│                 repository on the CI/CD platform can assume this role and    │
│                 gain full AWS admin access.                                  │
│                 Fix: Add 'sub' condition to the trust policy (effort:        │
│                 LOW).                                                        │
│                 Risk: $125K - $1.2M                                          │
└──────────────────────────────────────────────────────────────────────────────┘
┌────────────── Remediation Plan (fix 3 things, break 3 chains) ───────────────┐
│    #  Fix                             Effort     Chains   Findings  Risk Red │
│    1  Restrict security groups        LOW             1          1  $62.5K - │
│    2  Add OIDC 'sub' condition to     LOW             1          1  $125K -  │
│       trust policies                                                         │
│    3  Remove IAM privilege            MEDIUM          1          1  $250K -  │
│       escalation paths                                                       │
└──────────────────────────────────────────────────────────────────────────────┘
┌─────────────────── Quick Wins (break CRITICAL chains now) ───────────────────┐
│ 1. aws ec2 revoke-security-group-ingress --group-id sg-0a1b2c3d4e5f67890     │
│ --protocol tcp --port 22 --cidr 0.0.0.0/0                                    │
│    Breaks: AC-01 (Internet-Exposed Admin Instance)                           │
│                                                                              │
│ 2. aws iam update-assume-role-policy --role-name github-deploy-role          │
│ --policy-document file://trust-with-sub.json                                 │
│    Breaks: AC-07 (CI/CD to Admin Takeover)                                   │
└──────────────────────────────────────────────────────────────────────────────┘

何かに手を加える前に修正をプレビューできます。simulate は、チェックによって修正される検出結果を取り除き、スコア、チェーン、リスクの金額をオフラインで再計算します。

$ cloud-audit simulate --report demo.json --fix aws-iam-018

Simulation: Apply Remove IAM privilege escalation paths

┌────────────────────────────── Impact Analysis ───────────────────────────────┐
│   Metric                        Before                After          Delta   │
│   Health Score                  15/100               35/100            +20   │
│   Attack Chains                      3                    2             -1   │
│   Findings                           6                    5             -1   │
│   Risk Exposure         $572K - $12.5M      $187.5K - $1.9M           -85%   │
└──────────────────────────────────────────────────────────────────────────────┘

Chains broken (1):
  CRITICAL  PassRole Escalation to Admin (support-bot-ticket-role)  -> GONE

Chains remaining (2):
  CRITICAL  Internet-Exposed Admin Instance
  CRITICAL  CI/CD to Admin Takeover

Next recommended fix: Restrict security groups -> breaks 1 more chain(s)

任意のリソースからたどって、侵害された場合に何に影響が及ぶかを確認できます。

$ cloud-audit blast-radius --report demo.json --resource arn:aws:iam::123456789012:role/support-bot-ticket-role

┌────────────────────────────────────── Blast Radius ──────────────────────────────────────┐
│ Compromise of role/support-bot-ticket-role leads to Account Takeover via 2 hop(s).       │
│ Resource: arn:aws:iam::123456789012:role/support-bot-ticket-role                         │
│ Reachable: 3 | Paths to impact: 1 | Risk score: 72/100                                   │
└──────────────────────────────────────────────────────────────────────────────────────────┘

role/support-bot-ticket-role - IAM Role (assumed compromised)
├── Account Takeover - Full AWS admin (via grants admin, type=exploit) <high-value>
└── arn:aws:s3:::company-backups-2024 - S3 bucket (reachable via admin) (via s3:GetObject +
    ListBucket, type=data) <high-value>

Available fixes (from scan findings):
  - aws-iam-018 Role 'support-bot-ticket-role' can escalate via PassRole+Lambda (breaks chain, effort=MEDIUM)
  - aws-s3-001 Bucket 'company-backups-2024' has Block Public Access disabled (breaks chain, effort=LOW)

--format json の出力は、オープンソースのブラウザー可視化ツール blast-audit.haitmg.pl にそのまま取り込めます。--format mermaid は、Wiki ページ用の図を出力します。exposure は、インターネットからの到達可能性と権限昇格に基づいて、セキュリティグラフのすべてのノードをランク付けします。

$ cloud-audit exposure --report demo.json -n 6
   Score    Type              Label                       Why
      60    iam_role          prod-admin-role             internet-reachable
      41    internet          Internet                    internet-reachable
      41    ec2               i-0abc123def456789          internet-reachable
      41    security_group    sg-0a1b2c3d4e5f67890        internet-reachable
      20    iam_role          support-bot-ticket-role     escalation
      20    iam_role          support-bot-search-role     linked to others

blast-audit 可視化ツール — 経営幹部向けブリーフィング表示
可視化ツールは、blast-radius --format json のエクスポートデータを使って、すべてブラウザー内で動作します。

## 内容
機能規模コマンド
AWS CLI と Terraform による修正をそれぞれ備えた設定チェック110 件のチェック、25 のサービス:IAM、S3、EC2、VPC、RDS、KMS、CloudTrail、CloudWatch、GuardDuty、Config、Lambda、ECS、EFS、SSM、Secrets Manager、DynamoDB、Backup、Inspector、Security Hub、WAF、Bedrock、SageMaker、Bedrock AgentCore、Data Perimeter、アカウントscan、list-checks
IAM 権限昇格9 カテゴリーにわたる 64 の手法:IAM の自己変更、認証情報へのアクセス、サービスへの PassRole、Lambda コードの変更、信頼ポリシーの悪用、権限境界のバイパス、リソースポリシーの悪用、コンピューティングリソースの乗っ取り、横方向の AssumeRole(信頼グラフ上の BFS)scan(aws-iam-018)
攻撃チェーン31 のルールで検出結果と実際の関係(EC2 からロール、Lambda からロール、OIDC からポリシー)を関連付け、MITRE ATT&CK の参照情報と優先度の高い修正を含む経路を特定しますscan
根本原因とすぐにできる改善検出結果を、それらを解消する修正ごとにグループ化し、断ち切れるチェーンの数で順位付けしますscan
What-Ifオフラインで、任意のチェックセットに対するスコア、チェーン、露出度の変更前後を確認できますsimulate --fix
影響範囲EC2 インスタンス、IAM ロールまたはユーザー、Lambda、S3 バケット、シークレットから前方向に BFS を実行します。ビジュアライザー用の JSON コントラクトを提供しますblast-radius
露出度の順位付けセキュリティグラフのすべてのノードを、インターネット到達可能性と権限昇格の観点でスコアリングしますexposure
AI エージェントBedrock Agents と AgentCore のランタイム、ゲートウェイ、コードインタープリター、ブラウザーを、それぞれの IAM ID とツールとともに一覧表示します。2 つの脅威モデルによる到達可能性、OWASP Agentic と MITRE ATLAS のタグ、シミュレーターによる証明を含みますagent-blast
Proof Mode権限昇格経路では iam:SimulatePrincipalPolicy を広範に実行し、具体的な(プリンシパル、アクション、リソース)の組み合わせでは実行します(agent-blast)scan --verify、agent-blast --verify
脅威フィード実際に発生している悪用を検出する 10 個の検出器。それぞれ、記録された 2025~2026 年のインシデントパターンに紐付けられ、バージョン管理されたルールパックとして提供されますthreat-feed
データ境界リソースポリシーに対する 5 つのチェック。条件値を評価し、混乱した代理人と組織間の露出を検出しますscan(aws-dp-*)
AgentCore の設定6 つのチェック:コードインタープリターとランタイムのネットワークモード、MMDSv2、メモリの KMS、ゲートウェイ認証者、ゲートウェイポリシーエンジンscan(aws-agc-*)
侵害コスト検出結果とチェーンごとの米ドルでの範囲を示し、各数値の公開ソースを提示しますscan
コンプライアンス6 つのフレームワークに対応し、管理策ごとの証拠を提示します:CIS AWS v3.0、SOC 2 Type II、ISO 27001:2022、HIPAA、NIS2、BSI C5:2020scan --compliance、list-frameworks
ドリフトと傾向終了コード付きで 2 つのスキャンを比較し、スパークライン付きでセキュリティ状態の履歴を表示しますdiff、trend
カバレッジのギャップスキャナーが読み取りを拒否された項目は合格ではなく、「未評価」として報告されますすべてのコマンド
出力コンソール、JSON、HTML レポート、SARIF(GitHub Code Scanning)、Markdownscan --format
MCP サーバーClaude Code、Cursor、およびあらゆる MCP クライアント向けの 7 つの読み取り専用ツール。get_agent_blast を含みますcloud-audit-mcp

cloud-audit threat-feed --list が出力する 10 個の脅威フィード検出器(ルールパック 2026-Q2):

パターン重大度検出対象
TF-001MEDIUM最近検証された SES ID(フィッシング準備の前兆)
TF-002HIGHパブリックな Lambda Function URL(AuthType=NONE)
TF-003CRITICALAWS にアタッチされた認証情報隔離ポリシー
TF-004CRITICALCloudTrail で観測された、漏洩した認証情報をスキャンするユーザーエージェント
TF-005HIGHクリプトマイニング型のコンピューティングアクセス権を持つ、最近作成された IAM ロール
TF-006HIGHIMDSv1 / MMDSv1 を使用する EC2 または AgentCore(SSRF による認証情報窃取の攻撃経路)
TF-007MEDIUMwhoAMI 混同攻撃のリスクがある CI/CD ロール
TF-008HIGHCloudTrail 改ざんの前兆(ロギングの停止または配信の失敗)
TF-009HIGH外部 CA を持つ IAM Roles Anywhere の信頼アンカー
TF-010HIGH管理者以外のプリンシパルにアタッチされた AmazonDataZoneFullAccess

Proof Mode:推測ではなくシミュレーション

IAM ポリシーの静的解析では、過剰に検出されることがあります。Proof Mode は、AWS 独自の認可エンジンである iam:SimulatePrincipalPolicy に照会します。これは読み取り専用で、呼び出しごとの料金はかかりません。

  • scan --verify は、検出されたすべての権限昇格経路をチェックします。verified: true は、シミュレーターが必要なすべてのアクションを許可したことを意味します。false は、いずれかを拒否したことを意味します(その経路は誤検知である可能性が非常に高いです)。null は判定されていないことを意味し、その理由は verification_detail に記載されます。
  • agent-blast --verify は、具体的な(プリンシパル、アクション、リソース)の到達可能性をすべてチェックし、認証情報を盗まれた、または引き継いだ攻撃者が持つコンテキストを与え、拒否したレイヤーを示します。

2026-07-30 時点でシミュレーターが評価するもの:アイデンティティポリシー、アタッチされた権限境界、条件キーを含む組織の SCP、そして指定したコンテキストキー。評価しないもの:リソースコントロールポリシー、VPC エンドポイントポリシー、ロールチェーン、IAM ロールのリソースベースポリシーです。cloud-audit は、検証済みの各行でその旨を示します。true は権限が存在することを証明しますが、エンドツーエンドの攻撃を証明するものではありません。実行される処理はありません。

レポート

cloud-audit scan --format html     -o report.html     # client-ready
cloud-audit scan --format sarif    -o results.sarif   # GitHub Code Scanning
cloud-audit scan --format json     -o report.json     # machine-readable, feeds every offline command
cloud-audit scan --format markdown -o report.md       # PR comments
cloud-audit scan --compliance cis_aws_v3 --format html -o cis.html
cloud-audit agent-blast --format markdown -o agents.md

CI/CD

- run: pip install cloud-audit
- run: cloud-audit scan --format sarif --output results.sarif
- uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: results.sarif

--quiet は終了コードのみを返します:0 は問題なし、1 は検出あり、2 はエラーです。重大度でゲートするには --min-severity high を指定します。cloud-audit diff old.json new.json --quiet は新たな検出があると 1 で終了するため、毎日のスキャンで ClickOps による設定のずれを検出できます。このリポジトリは複合 GitHub Action(gebalamariusz/cloud-audit@v0)でもあります。すぐに使えるワークフロー:基本スキャン、毎日の差分、デプロイ後。

インストール

pip install cloud-audit                               # pip (recommended)
pipx install cloud-audit                              # isolated
uvx --from cloud-audit cloud-audit scan               # no install
docker run ghcr.io/gebalamariusz/cloud-audit scan     # Docker (also on Docker Hub: haitmg/cloud-audit)

認証情報を使った Docker:

docker run -v ~/.aws:/home/cloudaudit/.aws:ro ghcr.io/gebalamariusz/cloud-audit scan

Python 3.10~3.13。依存関係:boto3、typer、rich、pydantic、jinja2、pyyaml、mcp。

AWS の権限

読み取り専用です。AWS 管理ポリシーの SecurityAudit をアタッチしてください。すべてのチェック、IAM 権限昇格の分析、エージェントのインベントリ、Proof Mode に対応します:

aws iam attach-role-policy --role-name auditor \
  --policy-arn arn:aws:iam::aws:policy/SecurityAudit

cloud-audit がインフラストラクチャを変更することはありません。simulate、blast-radius、exposure、diff、 trend、agent-blast は保存済みのスキャンをローカルで処理し、AWS への呼び出しは行いません。--verify を指定すると、シミュレーターへの呼び出しのみが追加されます。サービスが存在しないリージョンはスキップされ、スキャナーが読み取りを拒否されたリージョンはカバレッジの不足箇所として一覧表示されます。

MCP サーバー

AI アシスタント向けの読み取り専用ツールを 7 つ提供します:scan_aws、get_findings、get_attack_chains、 get_remediation、get_health_score、list_checks、get_agent_blast。

claude mcp add cloud-audit -- uvx --from cloud-audit cloud-audit-mcp

次に、次のように尋ねてください:「AWS アカウントをスキャンして、Bedrock エージェントが乗っ取られた場合に何にアクセスできるか教えてください」。

一般的なフラグと設定
cloud-audit scan -R                                      # show remediation inline
cloud-audit scan --profile prod --regions eu-central-1   # profile / region
cloud-audit scan --regions all                           # all enabled regions
cloud-audit scan --role-arn arn:aws:iam::...:role/audit  # cross-account
cloud-audit scan --export-fixes fixes.sh                 # every CLI fix as a script
cloud-audit scan --categories security,cost              # skip reliability/performance checks
cloud-audit agent-blast -a support-bot --profile prod --verify

デフォルト設定は .cloud-audit.yml(リージョン、min_severity、exclude_checks、期限付きの suppressions)に記述します。環境変数(CLOUD_AUDIT_REGIONS、CLOUD_AUDIT_MIN_SEVERITY など)がファイルの設定を上書きし、CLI フラグがすべてを上書きします。設定ガイドを参照してください。

ドキュメント

詳細なドキュメントは haitmg.pl/cloud-audit にあります: はじめに、 agent-blast、 攻撃チェーン、 IAM 権限昇格、 影響範囲、 Proof Mode、 脅威フィード、 データ境界、 AgentCore、 コンプライアンス、および チェック項目の完全なリファレンス。

商用サポート

cloud-audit は無料で、今後も無料です。検出結果について専門家の対応をご希望の場合、作者が プロフェッショナルサービスを提供しています。

  • スキャナー出力のレビュー(無料):cloud-audit、Prowler、または Security Hub の出力をお送りいただくと、本当に重要な点と、最初に修正すべき点を簡潔にまとめたレビューをお届けします
  • AWS セキュリティ監査:優先順位付きのレポートと、すぐに適用できる修正を含むアカウント全体の監査
  • AI エージェントのアクセスレビュー:Bedrock および AgentCore のエージェントがアクセスできる範囲を確認し、範囲を制限するためのポリシー変更をご提案します
  • 修正サポート:ワークロードに対して検証済みの Terraform および IAM の変更
  • AWS 上の Palo Alto VM-Series:アーキテクチャおよびセキュリティのレビュー(GWLB/TGW、HA、ルーティング)

詳細:haitmg.pl/cloud-audit-support または [email protected] までメールでお問い合わせください。

開発

git clone https://github.com/gebalamariusz/cloud-audit.git
cd cloud-audit
pip install -e ".[dev]"
pytest -q && ruff check src/ tests/ && mypy src/

チェックを追加する方法については、CONTRIBUTING.md をご覧ください。リリース情報は CHANGELOG.md に記載されています。

ライセンス

MIT - Mariusz Gebala / HAIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。