##はじめに
来る4月7日、IAM Access Analyzerを使って「アクセスポリシーに基づいた最小権限のIAMポリシー」が作成できるようになりました。
前提として、AWS含むクラウドは可能な限り各ユーザーの権限を絞り、それ以外の余計なことができないように設定することがベストプラクティスとされています。
しかし、このために権限を絞るのは正直面倒です。
「ユーザーやらロールやらが増えすぎて、どれが何を使っているのか洗い出すのも大変」
「AmazonS3FullAccess(S3に関することが全部できる権限)から手作業で権限を絞っていったら、EC2からS3に定期的にログを送信するジョブが動かなくなった」(実話)
「AWSだって『職務機能のAWS管理ポリシー』なんかを用意してくれているんだから大体これで良くない?」
と、(特に個人的にAWSを利用している場合は)IAM管理は重要ながらも杜撰になりがちです。
ここで今回のアップデートが効いてきます。
##何が嬉しいのか
・とにかく手順が簡単
①[IAM]>[IAMロール]を選択する
②IAMロールの一覧より、権限を絞りたいロールを選択
③[CloudTrail イベントに基づいてポリシーを生成]>[ポリシーの作成]を選択
④CloudTrailイベントの分析期間と、分析する証跡(リージョン)を選択(+必要があれば証跡に作成するためのIAMロールを作成)
やらなければならない作業はたったこれだけです。
利用履歴の細かな確認も、JSONによる権限記載も不要です。AWSが全部自動でやってくれます。
・日本語化済みかつ日本のリージョンに対応済み
個人的なAWSあるあるとして
「便利な機能だけど日本語化されていなくて微妙に面倒」
「便利な機能だけど東京リージョンに追加されていない」
というものがあるのですが、今回はきちんと日本語化+東京・大阪リージョン対応です。
地味ですが嬉しいポイントです。
・期間指定
CloudTrailの期間指定は、日数で遡るものと日付での期間指定を行うものの二種類存在します。
つまり、「一時的に●●を使っていたけれど、もう使わない。でもCloudTrailの証跡には残ってしまっているな……」という場合にも対応しています。
・無料
こんな便利な機能ですが、無料で使用できます。
CloudFormationといい、便利機能が無料なのはありがたいものです。
##注意すべきポイント
・CloudTrailが有効化されていないと使用できない
個人使用の場合はここでつまずく人も多そうなポイントです。
仕様として、AWSがS3に保存されたCloudTrailログを読み取って「何を使っているのか」を把握するため、CloudTrailが有効化されていない=ログが保存されていない場合は使えません。
後からオンにしたとしても、ログがたまるまではAccess Analyzerが履歴を拾ってIAMポリシーに落とし込む作業が行えません。
(オンにしたその日にIAMロール作成、としようとすると上記手順の③で「証跡の詳細の取得中にエラーが発生しました」と表示されます)
そもそも大前提として有効化するのがベストプラクティスなのですが、デフォルトでは無効のためログを保存できていない人もいるのではないでしょうか。
この機会に有効化しておきましょう。
・CloudTrailの証跡範囲は最大90日間
大元のCloudTrailの仕様上仕方のない事なのですが、90日より前に使用した証跡は辿れません。
(証跡の範囲指定は90日前までの間で日付を指定するものです)
以前一度使ったきりのサービスを再度使用する場合は注意が必要そうです。
・その他細かい部分
生成されるのはあくまでポリシーのテンプレートであり、そのまま使えない部分もあります。
具体的には、一部のサービスはアクションレベルのポリシー作成に対応していないため、その部分は手作業で設定する必要があります。
また、ポリシー生成には時間が掛かります。CloudTrailの範囲を絞るなど工夫が必要になります。
その他、詳細については公式ドキュメントや公式ブログもご参照ください(現状、英語のみなのが残念ですが)。
##終わりに
AWS利用において、ルートアカウントを使い続けていませんか?
IAMユーザーを使用している場合でも、余計なポリシーまで付与してしまっていませんか?
CloudTrailの証跡を保存せずに、履歴を見るだけで満足してしまっていませんか?
「IAM Access Analyzer」の新機能が誕生した今こそ、AWSをセキュアに利用するためにアカウントを見直すチャンスかもしれません。
弊社ウェブサイトではAWSを含むさまざまな技術記事を公開しています。ぜひご覧ください。