[AWS] IAM Access Analyzerで不要な公開リソースを監視

最近読んだAWSのアップデート情報に[Access Analyzer]なる項目が上がっていたので「これってなんだっけ?」と気になって調べてみました。

どうやらAccess Analyzer自体は去年の12月にはリリースされていた機能のようです。

ざっくり説明を見る限りでは、意図しないリソースの公開をチェックできる機能で、特に追加課金も必要とせずに使えるそうなので挙動を確認してみることにしました。

事前準備


意図しない公開リソースを検知できるサービスなので、S3の公開バケットを用意しました。

また、念のため検証用のAWSアカウントと異なるアカウントからS3バケットが開けることと、PUT権限がないことも確認しておきました。

設定を有効にする


IAMの管理画面から[アクセスレポート]を選択することでアナライザーの設定画面を開くことができます。


ちょっと残念だなと思ったことが、アナライザーの設定はリージョンごとに有効にしなければならないところです。
IAMがグローバルサービスなのでアナライザーも全てのリージョンに対して有効になっていてほしいところでしたが、ユースケースによってはリージョンごとに設定を書き換えたい場合などがあるんでしょうかね。

公開リソースの検出


アナライザーを有効にすると直ちにスキャンが行われます。
今回は事前に用意していたS3バケットが引っかかりましたね。

スキャンは作成時と、24時間ごとに実施されるようです。

ちなみに検出対象のサービスは

IAM Access Analyzer は、新規または更新されたポリシーを継続的に監視し、Amazon S3 バケット、AWS KMS キー、Amazon SQS キュー、AWS IAM ロール、および AWS Lambda 関数のポリシーを使用することで、付与されたアクセス許可を分析します。

とのことで、S3 / SMS / SQS / IAM / Lambdaだけのようですね。

アーカイブ


検出されたサービスが、公開状態でも問題ない場合には[アーカイブ]することができます。


アーカイブは手動で行う方法と、条件にマッチしたリソースを自動的にアーカイブさせる方法があります。

特定のリソースを指定してアーカイブさせる他、サービス単位でアーカイブさせることも可能です。
また、1つのルールに複数の条件を追加することもできます。

おわりに

IAM Access AnalyzerがAWS Organizationsに対応したという記事を受けて、「そもそもAccess Analyzerってなんやねん」と思い調べてみました。

Access Analyzerを使うことで信頼されたプリンシパル以外からアクセスできるリソースをリスト化して監視することができます。
もしもIAMロールの委任設定が正しくない場合には、AWSアカウントを乗っ取られてしまう可能性もあり危険です。

そのような不正アクセスを未然に防ぐためにも、この機能は有効にしておくべきかもしれませんね。
AWS Configでも同様のことが検出できますが、こちらは無料でかつ設定有効にするだけです。

もちろん細かな検出ができるAWS Configも設定することが望ましいと思いますが、簡単にできるセキュリティ対策として覚えておくと良いかもしれませんね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)