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
Copyright © 2024 Elves Core (Pvt)Ltd. All Rights Reserved.