はじめに
こんにちは、技術1課の三木宏昭です。
在宅勤務で快適ワークな毎日ですが、続けてると四季の変化に対して鈍感になるな、ということに気付きました。
日常生活の中に散歩を入れるなど、上手く改善していきたい今日この頃です。
ところで、皆さん。
IAM User/IAM Roleの権限について、適切に設計・運用していますか?
権限設計は作成も見直しも難しく、構築時は「使えればよい」「何を使うのか分からない」といった点から寛容な付与になりがちです。
また、運用時は「何を使っているか分からない」「権限を削除した際に事故が起きたら困る」といった点から改善に対して消極的になりがちで、結果的に構築時の寛容な権限が残りがちです。
こうした状況を解決できる、便利な機能が実装されました!
IAM Access Analyzerによるポリシーの自動生成
活動履歴に基づいたIAM Policyの自動生成機能が利用できるようになりました!
この機能を利用する事で、IAM User/Roleに対して寛容に設定されている権限を、適切な(必要最小限の)権限に設定しなおすことが出来ます。
何が嬉しいか
これまではあらかじめ用意されているManaged Policyを利用しない場合、自分でポリシーを作成する必要がありました。
しかし、ポリシー作成はAWSの経験・知識がある程度必要でした。「自分が行いたい操作をするのに、どういった権限を付与する必要があるのか」というのを考え、ポリシーに落とし込む所に技術が必要なためです。
結果として、「大きな権限を持つManaged Policy(xxxFullAccessとか)をとりあえず付与しよう」という、最小権限の原則から外れてしまうケースが散見されています。
以前から、アクセスアドバイザーという機能を利用することで、「どのサービスに対するアクセスがあるか/ないか」を確認することは出来たのですが、結局ポリシーを書くのに技術が必要な部分は変わりませんでした。

この為、「IAM User/IAM Roleに対して、「実際に何の操作が行われているのか」「どの権限は不要な権限なのか」というのを分析し、必要最小限のポリシーを作成する」というこの最後の部分が、とても有用なものだと私は考えています。
仕組み
CloudTrail(AWS上のAPI操作のログを取得するサービス)を分析することで、各サービスにアクセスしているかどうかを確認します。
分析完了後、その結果に基づいて必要最小限なポリシーをAWSにて記載してくれる仕組みです。
また、ポリシーレビュー時に編集することも出来る為、作成されたポリシーに権限を追加したり削除したりすることも出来ます。
想定される利用ケース
- IAM User/Roleに付与した権限を、最小権限の原則に従って運用したい場合(定期的に棚卸をしたい場合)
- 過大な権限がついている事は判明しているものの、どうやって改善したらよいか分からない場合
実際の操作
ポリシーの生成
IAM User/IAM Roleの画面から分析したいUser/Roleを開き、「ポリシーの生成」を押下します。
次に、分析期間と分析対象を選択します。
対象となるCloudTrailを選択してください。また、期間の最長は過去90日分です。

ポリシーが生成されるまで、少し待ちます。(私の環境では5分ほどかかりました)
ポリシーの確認
作成が完了したら、「生成されたポリシーを表示」を押下します。
すると、「生成されたポリシー」と「アクションを追加」の2項目が表示されます。


「生成されたポリシー」は、CloudTrailを分析した結果、利用が確認されたサービス・アクションが記載されたものです。(利用実績がある操作の一覧)
ここに記載されているものは、新規作成するポリシーに付与される事になります。
「アクションを追加」は、CloudTrailを分析した結果、利用が確認されていないサービス・アクションのうち、今後利用予定があるものを追加する項目になります。
例えば「直近90日ではS3のListBucket操作を行わなかったけど、今後利用予定がある」といった場合には以下のような操作を行うことで、後工程のポリシー生成に反映されます。



確認および追加操作が完了したら、右下にある「次へ」を押下します
アクセス権限のカスタマイズ
前工程での「生成されたポリシー」に表示されていた項目と、「アクションの追加」で追加したサービス・アクションの項目がポリシーとなって表示されます。
この工程で自由に追加・編集・削除が行えるので、「生成されたポリシーには含まれてるけど、今後この操作は行わない」といった場合には削除する事が可能です。
また、下に出ている「エラー」の部分を選択すると、エラー内容が表示されます。
ARNは自動で入力されないので、この一覧を参考に手入力する必要があります。
ポリシーを生成
最後に、名前と説明の入力・タグ付けを行います。(説明入力とタグ付けは任意操作)
また、作成したポリシーを分析対象としたIAM User/Roleにアタッチするかも選択できます。
おわりに
いかがだったでしょうか。
皆様のお役に立てれば幸いです。
三木 宏昭 (執筆記事の一覧)
クラウドインテグレーション部 技術1課
紅茶と親子丼とAWSが好き
2021年の目標:毎日リングフィットアドベンチャーのコントローラーを持つ
2021 APN ALL AWS Certifications Engineers