ユーザーがawsサービス全体で実行できるすべてのアクションをプログラムで取得したい。 私はsimulate_principal_policyをいじろうとしましたが、このメソッドはすべてのアクションのリストを期待しているようで、ハードコードされたリストを維持したくありません。
また、たとえばiam:*で呼び出して、一般的な 'implicitDeny'応答を取得しようとしたため、ユーザーにはすべてのアクションが許可されていないことがわかりますが、より高い粒度のアクションが必要です。
アクションリストを動的に取得する方法についてのアイデアはありますか? ありがとう!
- 解決した方法 # 1
関連記事
- objective c - XPCサービスでSwiftクラスをどのように利用可能にしますか?
- VS Codeクイックフィックスは常に「利用可能なコードアクションはありません」
- windows - サービスが失敗したときに実行される回復アクションを設定する
- failovercluster - “メッセージキューサービスは使用できません”Windowsフェールオーバークラスター
- python - 修正方法“GeocoderUnavailable:Service not available”Nonimatimが起動しているときのエラー
- nginx - Systemd:DNSが利用可能になった後にのみサービスを開始する
- linux - SCardEstablishContext:サービスは利用できません
- Ubuntu 1804 LTS—印刷サービスは利用できません
- Windows 8“タスクスケジューラサービスは利用できません”
まず、ある考えられるすべてのアクションをプログラムで取得する方法はありません (アクションの使用が許可されているかどうかに関係なく)。
セキュリティをチェックする前に、可能なアクションのリストを作成する必要があります。例として、
boto3
SDK for Pythonには、コマンドをAWSに送信する前に検証するために使用するコマンドの内部リストが含まれています。特定のアクションを取得したら、Policy Simulator APIにアクセスして、特定のユーザーが特定のAPI呼び出しを許可されるかどうかを検証できます。これは、さまざまな
Allow
を解析しようとするよりもはるかに簡単です。 およびDeny
特定のユーザーに関連付けられた権限。ただし、コールはに基づいて拒否されるかもしれません呼び出しの特定のパラメーター。たとえば、ユーザーには特定のタグを持つAmazon EC2インスタンスを終了するアクセス許可がありますが、終了することはできませんすべて インスタンス。これを正しくテストするには、
InstanceId
シミュレーションに提供する必要があります。また、アクセス許可はIPアドレスや時刻によっても制限される場合があります。したがって、ユーザーはアクションを呼び出す許可を持っていますが、アクションを実行する場所とタイミングはアクションを許可するかどうかに影響します。
結論: 簡単ではありません! AWSは、呼び出し時にアクセス許可を検証します。使用ポリシーシミュレーター 同様の検証結果を取得します。