「IAM Access Analyzer を活用して最小権限を目指そう」というタイトルで Security-JAWS に登壇しました

Security-JAWS 【第21回】 勉強会 で発表しました。ご清聴いただきありがとうございました。

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンバンハ、千葉(幸)です。

2021/05/19に開催された Security-JAWS 【第21回】 勉強会 に登壇しました。

登壇内容のサマリと、当日資料の共有を行います。

自己紹介

好きな AWS のアクションは sts:AssumeRoleです。

IAM の最小権限とは

どこに記載がある?

IAM のセキュリティのベストプラクティス

IAM でのセキュリティのベストプラクティス - AWS Identity and Access Management

  • アクセスレベルのグループ化の把握
  • ポリシーの検証
  • アクセスアクティビティに基づいてポリシーを生成する
  • 最終アクセス情報の利用
  • AWS CloudTrail でのアカウントイベントの確認

太字になっている部分を今回の登壇の後半で取り上げます。

AWS Well-Architected フレームワーク セキュリティの柱

Permissions Management - Security Pillar

accessanalyzer

accessanalyzer2

最小権限が守られていないとどうなる?

  • 操作ミスによる意図しない変更が行われる
  • 不正アクセスによる被害が拡大する
  • 内部犯行による被害が拡大する

こういった事象を防ぐために、「権限は狭く始めて必要に応じて追加」が理想です。あくまで理想なので、「ゆるく始めて徐々に絞る」というのもよくあるアプローチです。

どこで最小権限を実現するか

ポリシーの種類

IAM でのポリシーとアクセス許可 - AWS Identity and Access Management

ポリシータイプは以下の6つがあります。

  • アイデンティティベースポリシー
  • リソースベースポリシー
  • アクセス許可の境界(Permissions boundary)
  • Organizations SCP(サービスコントロールポリシー)
  • アクセスコントロールリスト(ACL)
  • セッションポリシー

ACL ってポリシーなの?とつねづね思っています。

JSON ポリシーの要素

IAM JSON ポリシーの要素のリファレンス - AWS Identity and Access Management

最小権限を目指す上で意識すべき要素として以下があります。

  • Principal(誰が)
  • Action(何を)
  • Resouce(何に対して)
  • Conditon(どんな場合に)

どこで最小権限を実現するか

アイデンティティベースポリシーで Action を制限するだけが最小権限の実装ではありません。様々なタイプのポリシーで様々な要素を使用して制限を行います。

IAM Access Analyzer とは

IAM Access Analyzer とは何か

かつては「リソースベースポリシーの Principal を見てくれるもの」でしたが、2021 年に入ってから様子の違う機能が追加されました。

AccessAnalyzer-1425814

AccessAnalyzer-1425848

ざっくり整理

  • リソースベースポリシーに対する分析にはリージョナルリソースである「アナライザー」の作成が必要
  • 「ポリシーの検証」にはリソースもロールも要らない
  • 「ポリシーの生成」にはロールだけ要る

AccessAnalyzer-1425887

IAM アクセスアドバイザーと何が違うか

比較した表が以下です。

Advisor

アドバイザーは、以下を実現する機能の名称です。

  • アイデンティティベースポリシーを基準とした「アクセス可能なサービス」の表示
  • CloudTrail をベースとした「アクセス履歴」の表示

最小権限を目指すための機能

ポリシーの検証

  • IAM Access Analyzer による機能
  • マネジメントコンソールではアイデンティティベースポリシーのみ対応
  • 以下のカテゴリでチェック
    • セキュリティ
    • エラー
    • 警告
    • 提案

「最小権限を目指す」という観点ではそこまで強いものではありません。詳細は以下を確認してください。

ポリシーの生成

思わず冗長構成でブログを書くほどの激アツアップデートです。

joutyoukousei

注意点はいくつかあります。

aanotice

aanotice-1426318

aanotice-1426336

詳細は以下を確認してください。

最終アクセス情報の利用

  • IAM アクセスアドバイザーによる機能
  • 以下の AWS サービスに対してはアクションレベルで確認可能
    • Amazon S3
    • Amazon EC2
    • AWS IAM
    • AWS Lambda

IAM Access Analyzer によるポリシーの生成と似ていますが、できることが少なく、そのぶんお手軽に使えます。

AWS CLI を用いると楽しいです。以下をあわせてご参照ください。

まとめ

  • 「最小権限」はいろんなポリシーのいろんな要素を使って実装する
  • IAM Access Analyzer(とアドバイザー)はその一部をチューニングするのに便利
  • 「これさえやっておけばOK」はないので、継続して頭を悩ませましょう

「銀の弾丸」というワードを使わずに済ませようと思っていましたが、思わず口からこぼれ出ていました。銀の弾丸はありません。

資料

終わりに

タイムテーブルを見たときに、先行発表者である大竹さんと内容が被っているのでは……、と生きた心地がしませんでした。

うまい具合に振っていただいたので、無事 致命傷で済みました。ありがとうございました。

当日のイベント全体に対するレポートは以下に記載されています。あわせてご参照ください。

以上、千葉(幸)がお送りしました。