Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
policy_sentry — リソースARNとアクセスレベルに基づいて最小権限のAWS IAMポリシーを生成し、クラウドインフラストラクチャのセキュアなポリシー作成を自動化します。 | Kitploit
ツール/GitHubGitHub/salesforce/policy_sentry
クラウドインフラストラクチャセキュリティ構成監査クラウドセキュリティDevSecOpsアイデンティティ&アクセス管理 (IAM)
GitHubsalesforce/policy_sentry

policy_sentry

リソースARNとアクセスレベルに基づいて最小権限のAWS IAMポリシーを生成し、クラウドインフラストラクチャのセキュアなポリシー作成を自動化します。

リポジトリを見る
2.2k157121ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

Policy Sentry

IAM最小権限ポリシージェネレーター。

continuous-integration Documentation Status Join the chat at https://gitter.im/salesforce/policy_sentry Twitter PyPI Python Version Downloads

  • チュートリアル
    • インストール
      • パッケージマネージャー
      • シェル補完
    • ステップ1:テンプレートの作成
    • ステップ2:ARNのコピー&ペースト
    • ステップ3:write-policyコマンド
  • チートシート
    • ポリシー作成チートシート
    • IAMデータベースクエリチートシート
    • ローカル初期化(オプション)
  • その他の使い方
    • コマンド
    • Pythonライブラリの使い方
    • Docker
    • Terraform
  • 参考資料

ドキュメント

チュートリアルと完全なドキュメントについては、ReadTheDocs上のプロジェクトをご覧ください。

Policy Sentryに関するSalesforce Engineering Blogの記事もご確認ください。

概要

セキュリティを考慮したIAMポリシーを手作業で作成するのは、非常に退屈で非効率です。多くのInfrastructure as Code開発者は、次のような経験をしたことがあるでしょう。

  • ユーザーやロールに業務を遂行するために必要な最小限の権限を付与しようと決意し、[AWSサービスのアクション、リソース、条件キー][1]に関するAWS IAMドキュメントをくまなく調べるのに多大な時間を費やす。
  • チームリーダーは製品品質のためにIAMポリシーにセキュリティを組み込むよう奨励するが、プロジェクトの期限に追われて挫折してしまう。
  • チームにIAMポリシーを作成してくれるセキュリティ担当者がおらず、実行したAWS APIコールを自動的に検出してリソースARN制約付きでポリシーを生成してくれる自動化ツールもない。
  • そのような自動化を夢見た後、最小権限のIAMポリシーを慈善事業のように手書きすることが、期限までにコードを完成させる能力を危うくすることに気づく。
  • マネージドポリシー(なぜ使わないのか?)を使用するか、APIコール名を大まかに見てワイルドカードを使って進める。

このようなプロセスは、セキュリティにとってもInfrastructure as Code開発者にとっても理想的ではありません。IAMポリシーを安全に作成することを容易にし、最小権限IAMポリシー作成の複雑さを抽象化する必要があります。そのためにこのツールを作りました。

Policy Sentryを使用すると、ユーザーは数秒で最小権限のIAMポリシーを作成できます。従来のように手作業でIAMポリシーを作成するのではなく、アクセスレベルとリソースに基づいてスコープが絞られたポリシーが生成されます。侵害が発生した場合、認証情報の被害範囲を制限し、IAMプリンシパルが必要なものにのみアクセスできるようにします。

このツール以前は、リソースARN制約付きのIAMポリシーを作成するのに数時間かかることがありましたが、今では数秒で完了します。 開発者はアクセスが必要なリソースを決定するだけでよく、Policy SentryがIAMポリシーの複雑さを抽象化して開発プロセスから取り除きます。

リソース制約とアクセスレベルに基づくセキュアなポリシーの作成

Policy Sentryのフラッグシップ機能は、リソースARNとアクセスレベルに基づいてIAMポリシーを作成できることです。CRUD機能は、IAC開発者がAWS IAMの複雑さを理解する必要はないという意見に基づいています。複雑さを抽象化すべきです。実際、開発者は次のように言えるべきです。

  • "arn:aws:s3:::example-org-sbx-vmimport への読み取り/書き込み/一覧アクセスが必要"
  • "arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret への権限管理アクセスが必要"
  • "arn:aws:ssm:us-east-1:123456789012:parameter/test へのタグ付けアクセスが必要"

...そして、自動化がそれらのアクセスレベルに対応するポリシーを作成するべきです。

どうやってこれを実現するのでしょうか?Policy Sentryは、AWSの[アクション、リソース、条件キー][1]に関するドキュメントを活用して、アクション、アクセスレベル、リソースタイプを検索し、ARNとアクセスレベルに基づいてポリシーを生成します。以下の表のスニペットを考えてみてください。

アクション アクセスレベル リソースタイプ
ssm:GetParameter 読み取り parameter
ssm:DescribeParameters 一覧 parameter
ssm:PutParameter 書き込み parameter
secretsmanager:PutResourcePolicy 権限管理 secret
secretsmanager:TagResource タグ付け secret

Policy Sentryは、これらすべてのドキュメントを単一のデータベースに集約し、そのデータベースを使用してアクション、リソース、アクセスレベルに基づいてポリシーを生成します。

チュートリアル

インストール

パッケージマネージャー

  • Homebrew
brew tap salesforce/policy_sentry https://github.com/salesforce/policy_sentry
brew install policy_sentry
  • Pip
pip3 install --user policy_sentry

シェル補完

Bash補完を有効にするには、.bashrcに以下を追加します:

eval "$(_POLICY_SENTRY_COMPLETE=bash_source policy_sentry)"

ZSH補完を有効にするには、.zshrcに以下を追加します:

eval "$(_POLICY_SENTRY_COMPLETE=zsh_source policy_sentry)"

ステップ1:テンプレートの作成

  • リソースとアクセスレベルに基づいてポリシーを生成するには、まず次のコマンドでテンプレートを作成し、ARNを入力できるようにします:
policy_sentry create-template --output-file crud.yml --template-type crud
  • 次のようなファイルが生成されます:
mode: crud
name: ''
# リソースARNを指定
read:
- ''
write:
- ''
list:
- ''
tagging:
- ''
permissions-management:
- ''
# リソース制約をサポートしないアクション
wildcard-only:
  single-actions: # 単独のアクション
  - ''
  # サービス全体 - 's3'や'ec2'など
  service-read:
  - ''
  service-write:
  - ''
  service-list:
  - ''
  service-tagging:
  - ''
  service-permissions-management:
  - ''
# ここにアクションをリストすると、リソース制約の要件をスキップします。
skip-resource-constraints:
- ''
# ここに指定したアクションを出力から除外します。kms:Delete*のようなワイルドカードを受け付けます。
exclude-actions:
- ''
# このポリシーにAssumeRoleアクションを含める場合
sts:
  assume-role:
    - ''
  assume-role-with-saml:
    - ''
  assume-role-with-web-identity:
    - ''

ステップ2:ARNのコピー&ペースト

  • ポリシーに含めたいARNをコピー&ペーストします。使用しない行は削除するか、そのまま残しても構いません。
mode: crud
read:
- 'arn:aws:ssm:us-east-1:123456789012:parameter/myparameter'
write:
- 'arn:aws:ssm:us-east-1:123456789012:parameter/myparameter'
list:
- 'arn:aws:ssm:us-east-1:123456789012:parameter/myparameter'
tagging:
- 'arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret'
permissions-management:
- 'arn:aws:secretsmanager:us-east-1:123456789012:secret:mysecret'

ステップ3:write-policyコマンド

  • 次に、このコマンドを実行します:
policy_sentry write-policy --input-file crud.yml
  • 次の結果が生成されます:
ツールをダウンロード