説明

IAMCheckerAWSは、AWS Identity and Access Management(IAM)におけるユーザーおよびロールのための権限ポリシーステートメントを収集および理解するプロセスを簡素化するために設計された強力なIAMポリシーステートメントパーサーおよびクエリツールです。もともとはAWSペネトレーションテスターのニーズに応えるために開発されましたが、このシンプルで効率的なツールは、AWSセキュリティ管理を強化したいと考えるすべての人に利用可能です。

攻撃的な使用

IAMCheckerAWSは、AWSアカウント内の潜在的な権限昇格の機会を特定するために非常に役立ちます。他のツールが自動スキャンを実行するのとは異なり、IAMCheckerAWSはより手動で詳細なアプローチを可能にします。ユーザーはさまざまなAWS IAMアクションをクエリし、権限を調査し、ターゲット分析のために適用されるロール、ユーザー、およびリソースを迅速にレビューできます。

ブルーチームの使用

セキュリティチームにとって、IAMCheckerAWSはクエリ結果をCSV形式で出力および保存する機能を提供します。この機能は、AWSアカウント内の主要な権限およびリソースの概要を提供します。たとえば、iam:put*権限を持つユーザーおよびロールを特定する必要がある場合、クエリを実行し、CSVファイルを生成して、これらの権限を持つすべてのユーザーおよびロールと、それらがアクセスできるリソースをレビューできます。

インストール

推奨方法:

pip3 install iamcheckeraws

GitとPoetryを使用する代替方法:

bash

git clone https://github.com/ElvesCore/IAMCheckerAWS.git
cd IAMCheckerAWS
# (optional: poetry env use python3.9)
poetry install
iamcheckeraws --help
iamcheckeraws --collect --profile <your-aws-profile>

GitとPipを使用する代替方法:

bash

git clone https://github.com/ElvesCore/IAMCheckerAWS.git
cd IAMCheckerAWS
pip install .
iamcheckeraws --help
iamcheckeraws --collect --profile <your-aws-profile>

使用法

ヘルプコマンド:

less

usage: iamcheckeraws [-h] [--profile PROFILE] [--account ACCOUNT] [--query QUERY] [--role ROLE] [--user USER]
[--all-or-none] [--collect] [--list] [--csv CSV] [--config CONFIG]
AWSアカウント内のすべてのユーザー/ロールのポリシーを収集し、その後、権限のためにポリシーをクエリします。

オプションの引数:
-h, –help このヘルプメッセージを表示して終了します
–profile PROFILE ユーザー/ロールの収集のために認証に使用するAWSプロファイルの名前。
–account ACCOUNT クエリするアカウント番号。
–query QUERY クエリする権限。例: s3:GetObject または s3:* または s3:GetObject,s3:PutObject
–role ROLE クエリするロールをフィルタリング。
–user USER クエリするユーザーをフィルタリング。
–all-or-none クエリされたすべてのアクションが許可されているかどうかをチェックします(一部ではなく)。
–collect アカウントのユーザーおよびロールポリシーを収集します。
–list クエリ可能なアカウントを一覧表示します。
–csv CSV CSVレポート出力のファイル名。
–config CONFIG プリセットクエリ用のJSON構成ファイル。

ユーザーとロールのすべてのIAM情報を収集する:

css

iamcheckeraws --collect --profile my-aws-profile

収集されたアカウントデータを一覧表示する:

css

iamcheckeraws --list

特定の権限をクエリする:

css

iamcheckeraws --account <account_number> --query iam:create*
iamcheckeraws --account <account_number> --query iam:create*,iam:put*

特定のロールをクエリする:

css

iamcheckeraws --account <account_number> --role some_role --query iam:*

特定のユーザーをクエリする:

css

iamcheckeraws --account <account_number> --user some_user --query iam:*

結果をCSVファイルに出力する:

css

iamcheckeraws --account <account_number> --query iam:* --csv report.csv

プリセット構成を実行する:

css

iamcheckeraws --account <account_number> --config dangerous_iam

すべてまたは一部の結果を表示するクエリを実行する:

css

iamcheckeraws --account <account_number> --query s3:getobject,s3:listbucket --all-or-none

構成

ビルトイン構成オプション:

  • dangerous_iam
  • write_actions
  • privescs

使用例:

css

iamcheckeraws --account <account_number> --config dangerous_iam

カスタム構成の作成:

構成ファイルは、特定の権限を検索するために指定されたJSONファイルです。以下は、CodeBuildの書き込みアクションの例です:

json

[
{
"Description": "これらは、CodeBuildで何らかの書き込み権限を許可する可能性のあるすべてのアクションです。",
"Name": "CodeBuildWriteActions",
"ActionsNeeded": [
"codebuild:Put*",
"codebuild:Create*",
"codebuild:Delete*",
"codebuild:Modify*",
"codebuild:Update*",
"codebuild:Attach*",
"codebuild:Detach*",
"codebuild:Associate*",
"codebuild:Disassociate*",
"codebuild:Add*",
"codebuild:Remove*",
"codebuild:Set*",
"codebuild:Enable*",
"codebuild:Disable*",
"codebuild:Reset*",
"codebuild:Stop*",
"codebuild:Terminate*",
"codebuild:Reboot*",
"codebuild:Start*"
],
"AllOrNone": false
}
]

カスタム構成を実行する:

css

iamcheckeraws --account <account_number> --config write_code_build.json

Download Here