概要
- 自己流のIAMロールに割り当てる権限を最適なものにする方法を簡単にまとめる。
ご注意
- 本方法は自己流のやり方を記したものです。ベストプラクティスは他にあります。
AWSの権限に関する考え方
- AWSに限らずかも知れないが、権限は必要最小限のみ与えるのが一般的である。
- 「アクセスできるからこれでいいや」などの考えで安易にFullAccessなどの権限を与えるべきではないという事っぽい。
どうするのか?
最小特権ポリシーを生成して使う
- この記事を書くために情報を調査するまでこんな物があると知らなかった。
- どうやらCloudTrailに溜まっているログに基づいて必要最小限のポリシーを作ってくれるらしい。
一旦大きい権限で動くものを作って徐々に権限を絞る
- ちょっと大雑把なやり方になるが、一旦大きめのFullAccess権限を与えてそこから、アクセスするリソースを絞るなどをしてゆく方法が比較的楽だった。
例:lambda関数から任意のS3バケットにアクセスする。
- S3FullAccess権限をlambda関数に与える。
- lambda関数に任意のS3バケット内リソースを閲覧する処理を記載する。
- 一旦lambda関数を実行して問題なく動作することを確認する。
- lambda関数のロールにつけたS3FullAccess権限を一旦剥奪する。
- 自身でS3FullAccess時にバケットを指定するポリシーを作成する。
- lambda関数のロールに自身で作成したポリシーを追加する。
- lambda関数を実行して正常にバケットを指定しないS3FullAccessの時と動作が変わらないか確認する。