2017-02-22 11 views
4

AWSアクセスキーとAWS秘密キーの入力が与えられた場合、AWS SDKを使用してアカウントで実行できるアクセス許可の種類を調べるにはどうすればよいですか?AWSアクセス/秘密鍵ペアが与えられた場合、どのようにIAMアクセス権を取得しますか?

顧客のためにXYZを行いたいので、XYZをプログラムで実行するためにアクセスキーと秘密鍵を顧客に渡す必要があります。しかし、これらのアクションを実行する前に、S3オブジェクトを作成したり、EC2インスタンスを起動することができるなど、特定の権限にアクセスできることを確認したいと考えています。

こうすれば、アクセスキーと秘密鍵に代わって何かをする権限があるかどうかを検証できます。

答えて

1

SimulatePrincipalPolicy APIを使用して、IAMエンティティにアタッチされた一連のIAMポリシーがAPIアクションとAWSリソースのリストとどのように連携してポリシーの有効なアクセス権が決定されるかをシミュレートできます。

エンティティは、IAMユーザ、グループ、またはロールのいずれでもかまいません。ユーザーを指定すると、シミュレーションには、ユーザーが所属するグループに付加されているすべてのポリシーも含まれます。

あなたはPolicySourceArn入力パラメータ(オプションCallerArn入力パラメータを使用する必要はありません)のように、そのユーザーのARNと「SimulatePrincipalPolicy」APIを提供する必要があります。アクセスキーIDと秘密のアクセスキーをお持ちの場合は、GetUser API を、そのユーザー資格情報を使用して、つまりUserName入力パラメーターを指定せずに呼び出すことで、ユーザーのARNを取得できます。ユーザー名が含まれていない場合、GetUser APIは、デフォルトでユーザーが要求します。

+0

私はCallerArnを持っていたが、これはアクセスキーと秘密鍵しか持っていないとうまくいく。したがって、「アクセスや秘密鍵を知っているだけでユーザーのARNを検索するにはどうすればよいですか? –

+0

私はユーザーのARNを取得する方法を含む私の答えを更新しました。 ** CallerArn **パラメータを使用する必要はありません。 ** PolicySourceArn **だけが必要です。 –

+0

上記の私の答えを確認してください[http://stackoverflow.com/a/42402517/649408] - また、私の他の回答を確認してくださいARNを取得する[http://stackoverflow.com/a/31837458/649408] –

1

私は目的のためにAWS CLIを使用してCLI用--dry-実行フラグを使用するコマンドを作成することをお勧め。私は、タグレベル/リソースレベルの制限はもちろんのこと、どのくらいのAWS CLIオペレーションが--dry-runオペレーションをサポートしているか不明です。

--dry-runフラグは、実際にリクエストを実行せずにAPIを実行する権限があるかどうかを確認しようとします。

enter image description here

enter image description here

AWSは、60の以上のサービスを提供していますし、一人でEC2は、[今日のよう〕227のAPIコマンドを持っているように私もテスト(回帰)の難しさを参照してください。おそらくこれはあなたのsed、awkは、grepのは、シェルスクリプトを構築するために、[およびGitHubの中でそれを公開]

SDKには、同様にこれをサポートしない使用する場所であるかもしれない - それはCLIのアプローチよりも簡単かもしれません

関連する問題