dshimizu/blog/alpha

とりとめのないITブログ

IAM ユーザー・グループ・ロール・ポリシーからどの AWS リソースへアクセスしているのか確認する時のコマンドメモ

元ネタは、結構前に流れてきたこちらのツイート。

参考にしていたけどたまにしかやらずに忘れるのでメモとして残しておく。

やり方

AWS IAM のGetServiceLastAccessedDetail API を使う。

AWS CLI だと、まず、以下のような感じで引数に確認したい IAM の ARN を指定して実行する。以下では Role としている。

$ aws iam generate-service-last-accessed-details --arn arn:aws:iam::123456789012:role/foo

Job idが返ってくるので、この値を利用して再度 GetServiceLastAccessedDetail を実行する。今度はJob idを引数にして実行する。

$ aws iam get-service-last-accessed-details --job-id ********-xxxx-****-xxxx-************

これで対象 IAM が過去にアクセスした AWS リソースの履歴一覧が表示される。

元ツイートだとjqコマンドを使っていい感じに表示する方法も紹介されてた。

$ aws iam get-service-last-accessed-details --job-id ********-xxxx-****-xxxx-************ | jq '.ServicesLastAccessed[] | select( .TotalAuthenticatedEntities > 0) | .ServiceName'

なんかワンライナーとかで良い感じにしたいけど何も考えていない。

参考>