ホーム>source

ユーザーがawsサービス全体で実行できるすべてのアクションをプログラムで取得したい。 私はsimulate_principal_policyをいじろうとしましたが、このメソッドはすべてのアクションのリストを期待しているようで、ハードコードされたリストを維持したくありません。

また、たとえばiam:*で呼び出して、一般的な 'implicitDeny'応答を取得しようとしたため、ユーザーにはすべてのアクションが許可されていないことがわかりますが、より高い粒度のアクションが必要です。

アクションリストを動的に取得する方法についてのアイデアはありますか? ありがとう!

あなたの答え
  • 解決した方法 # 1

    まず、ある考えられるすべてのアクションをプログラムで取得する方法はありません (アクションの使用が許可されているかどうかに関係なく)。

    セキュリティをチェックする前に、可能なアクションのリストを作成する必要があります。例として、 boto3  SDK for Pythonには、コマンドをAWSに送信する前に検証するために使用するコマンドの内部リストが含まれています。

    特定のアクションを取得したら、Policy Simulator APIにアクセスして、特定のユーザーが特定のAPI呼び出しを許可されるかどうかを検証できます。これは、さまざまな Allow を解析しようとするよりもはるかに簡単です。  および Deny  特定のユーザーに関連付けられた権限。

    ただし、コールはに基づいて拒否されるかもしれません呼び出しの特定のパラメーター。たとえば、ユーザーには特定のタグを持つAmazon EC2インスタンスを終了するアクセス許可がありますが、終了することはできませんすべて インスタンス。これを正しくテストするには、 InstanceId  シミュレーションに提供する必要があります。

    また、アクセス許可はIPアドレスや時刻によっても制限される場合があります。したがって、ユーザーはアクションを呼び出す許可を持っていますが、アクションを実行する場所とタイミングはアクションを許可するかどうかに影響します。

    結論: 簡単ではありません! AWSは、呼び出し時にアクセス許可を検証します。使用ポリシーシミュレーター 同様の検証結果を取得します。

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ reactjs - Axiosインターセプター:「then」メソッドに返されないエラー