👋
クライアントサイドモニタリングで IAM ポリシーを作成する iamlive
iamlive はクライアント側での AWS API 呼び出しを監視して、 IAM ポリシーを作成してくれるツール
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では確認できないため、このソフトウェアは開けません。
とエラーが発生した- 一度 Finder の開くから起動すれば OK
- https://support.apple.com/ja-jp/guide/mac-help/mh40616/mac
- 適宜 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 を許可する必要がある場合もあったりする
- README の gif であれば
aws connect list-instances
を実行しているが、これはconnect:ListInstances
に加えてds:DescribeDirectories
アクションが必要 - IAM ドキュメントには Dependent actions として記載されてはいる
- README の gif であれば
- 基本的には AWS CLI の 1つ のコマンドが 1つ の AWS API に対応しているものの、1つ の API には複数の IAM Action を許可する必要がある場合もあったりする
-
.aws/config
を使用するツールがどんな AWS API を呼び出しているのかサクッと確認できる - SDK にも対応しているようなので、既存アプリに割り当てているポリシーの見直しや棚卸しにも使えそう
注意点
- 現状、特定 Resource や Condition を指定するポリシー生成はサポートしていないので、それらを使ったポリシーを作りたい場合、別途自前で調整する必要がある
この記事を試した環境
% 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
- iamlive: v0.10
Discussion