クライアントサイドモニタリングで IAM ポリシーを作成する iamlive

2 min read読了の目安(約2100字

iamlive はクライアント側での AWS API 呼び出しを監視して、 IAM ポリシーを作成してくれるツール

https://github.com/iann0036/iamlive

https://raw.githubusercontent.com/iann0036/iamlive/assets/iamlive.gif

https://github.com/iann0036/iamlive の README から引用

セットアップ

cd /tmp
curl --location https://github.com/iann0036/iamlive/releases/download/v0.10/iamlive-v0.10-darwin-amd64.tar.gz --remote-name
tar xzvf iamlive-v0.10-darwin-amd64.tar.gz 
./iamlive --set-ini
# iamlive を起動しているのとは別のターミナルから AWS CLI で `aws sts get-caller-identity` などを実行し、 IAM ポリシーが表示されれば OK
  • 初回に iamlive を起動する際に 悪質なソフトウェアかどうかをAppleでは確認できないため、このソフトウェアは開けません。 とエラーが発生した
  • 適宜 PATH の通ったディレクトリに iamlive をコピーするなりする

使い方

  • iamlive --set-ini で iamlive を起動しつつ、 AWS CLI 等で AWS API を呼び出せば OK

iamlive のオプション

  • --set-ini: .aws/config ファイルにクライアントサイドモニタリング設定を追記して、コマンド終了時に追記した情報を削除する
    • default: false
  • --profile: --set-ini オプションを使用する際に、任意の profile を指定したい場合に使う
    • default: default
  • --fails-only: 失敗した AWS API 呼び出しのみがポリシーに追加される
    • default: false

iamlive の面白い所

  • AWS CLI を使って必要となるポリシーを洗い出せる
    • 基本的には AWS CLI の 1つ のコマンドが 1つ の AWS API に対応しているものの、1つ の API には複数の IAM Action を許可する必要がある場合もあったりする
  • .aws/config を使用するツールがどんな AWS API を呼び出しているのかサクッと確認できる
  • SDK にも対応しているようなので、既存アプリに割り当てているポリシーの見直しや棚卸しにも使えそう

注意点

この記事を試した環境

% sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.7
BuildVersion:   19H114
% aws --version
aws-cli/2.1.6 Python/3.7.4 Darwin/19.6.0 exe/x86_64 prompt/off