Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IAMAccessAnalyzer_Security-JAWS

Koheiawa
November 15, 2023

 IAMAccessAnalyzer_Security-JAWS

Koheiawa

November 15, 2023
Tweet

More Decks by Koheiawa

Other Decks in Technology

Transcript

  1. IAM Access Analyzer を利用した
    最小権限への旅

    View full-size slide

  2. 粟ケ窪 康平
    2020年に某大手証券グループのシンクタンクに新卒入社。
    配属から1年はオンプレネットワークの設計をやっていたが、
    ひょんなことから社内初のAWS全冠になってしまいネットワーク
    から引退。
    現在は某金融機関様向けのAWSセキュリティ設計に従事。
    CISSP(Associate)/SC/NW/CCNA
    あわ が くぼ

    View full-size slide

  3. おことわり
    本資料の内容や見解は所属の組織を代表するものではございません

    View full-size slide

  4. 本日話さないこと
    最小権限とは何かという哲学的な問い
    IAMポリシー/ロールの基本

    View full-size slide

  5. IAM Access Analyzer とは
    IAM Access Analyzer を利用した最小権限への旅

    View full-size slide

  6. リソースポリシーを分析して証明可能なセキュリティを提供することで、最小特権のアク
    セス権限を簡単に実装できるようにするとともに、
    意図しないパブリックアクセスまたはクロスアカウントアクセスを特定するためのサービス
    IAM Access Analyzer を利用した最小権限への旅
    IAM Access Analyzer とは

    View full-size slide

  7. IAM Access Analyzer は特に機能拡張が激しいサービスのひとつ
    IAM Access Analyzer を利用した最小権限への旅
    2019 2021 2023
    2020 2022
    IAM Access Analyzer の進化
    ➢ re:Inventで発表
    ➢ Access Analyzer for Amazon S3
    ➢ Security Hub と統合
    ➢ S3アクセスポイントポリシーの公開アクセス許可の検
    出をサポート
    ➢ IAM Access Analyzer が既存の調査結果のアー
    カイブルールをサポート
    ➢ Secrets Manager への意図しないアクセスの検出
    をサポート
    ➢ アクセス権限変更前のパブリックアクセスとクロスアカウ
    ントアクセスを検証可能に
    ➢ 100を超えるサービスでポリシーチェックのサポート
    ➢ アクセスアクティビティに基づくポリシー生成をサポート
    ➢ オーサリング中のポリシーチェックをサポート
    ➢ ポリシー生成対象サービスの強化、クオータ引き上げ
    ➢ ポリシー検証がロール信頼ポリシーまで拡張
    ➢ 140を超えるサービスでアクティビティに基づくポリシー
    生成が可能に
    ➢ SNSなど6つのサービスが公開アクセス検出の対象に
    追加
    ➢ 200を超えるサービスでアクティビティに基づく
    ポリシー生成が可能に

    View full-size slide

  8. IAM Access Analyzer を利用した最小権限への旅
    権限の設定
    権限の確認
    権限の修正
    IAM Access Analyzer でできること
    IAM Access Analyzer は
    権限管理ライフサイクルのあらゆるステージを支える各種機能を提供

    View full-size slide

  9. IAM Access Analyzer を利用した最小権限への旅
    権限の設定
    権限の確認
    権限の修正
    IAM Access Analyzer でできること
    IAM Access Analyzer は
    権限管理ライフサイクルのあらゆるステージを支える各種機能を提供
    ステージカットで機能をご紹介します

    View full-size slide

  10. IAM Access Analyzer を利用した最小権限への旅
    権限の確認
    権限の修正
    IAM Access Analyzer でできること
    IAM Access Analyzer は
    権限管理ライフサイクルのあらゆるステージを支える各種機能を提供
    権限の設定
    権限を 正しく 設定するための機能

    View full-size slide

  11. IAM Access Analyzer policy validation
    IAMをポリシーの文法およびベストプラクティスに照らして検証
    権限の設定
    IAM Access Analyzer を利用した最小権限への旅
    文法的な誤りを指摘
    過度に広いアクセス権限を指摘
    ベストプラクティスに沿っていないポリシーを指摘
    改善のための推奨事項
    Security
    Errors
    Warnings
    Suggestions

    View full-size slide

  12. IAM Access Analyzer を利用した最小権限への旅
    権限の修正
    IAM Access Analyzer でできること
    IAM Access Analyzer は
    権限管理ライフサイクルのあらゆるステージを支える各種機能を提供
    権限の設定
    権限の確認
    過剰な権限 が設定されていないか確認するための機能

    View full-size slide

  13. IAM Access Analyzer external access findings
    外部エンティティと共有されている組織とアカウントのリソースを識別
    権限の確認
    IAM Access Analyzer を利用した最小権限への旅
    外部公開している(されている)
    S3バケットを一覧表示した例

    View full-size slide

  14. IAM Access Analyzer を利用した最小権限への旅
    IAM Access Analyzer でできること
    IAM Access Analyzer は
    権限管理ライフサイクルのあらゆるステージを支える各種機能を提供
    権限の設定
    権限の確認
    権限の修正
    過剰な権限を削除し 洗練 させるための機能

    View full-size slide

  15. IAM Last accessed information(1/2)
    最後にアクセスされた情報をもとに不要なアクセス許可の特定を支援
    IAM Access Analyzer を利用した最小権限への旅
    最大400日間の
    アクセス情報を追跡
    権限の修正

    View full-size slide

  16. IAM Last accessed information(1/2)
    最後にアクセスされた情報をもとに不要なアクセス許可の特定を支援
    IAM Access Analyzer を利用した最小権限への旅
    最大400日間の
    アクセス情報を追跡
    追跡期間中は
    アクセスされていない
    権限の修正

    View full-size slide

  17. IAM Last accessed information(1/2)
    最後にアクセスされた情報をもとに不要なアクセス許可の特定を支援
    IAM Access Analyzer を利用した最小権限への旅
    最大400日間の
    アクセス情報を追跡
    追跡期間中は
    アクセスされていない
    不要なサービス許可
    権限の修正

    View full-size slide

  18. IAM Last accessed information(2/2)
    サービスのリンクを押すとアクションレベルまで確認可能
    IAM Access Analyzer を利用した最小権限への旅
    S3のアクションレベルの
    アクセス情報の例
    フィルタを使うと
    不要アクションの見通しがよくなる
    権限の修正

    View full-size slide

  19. IAM Access Analyzer policy generation
    CloudTrailログを分析し、ポリシー生成を支援
    IAM Access Analyzer を利用した最小権限への旅
    期間を選択(最長90日)
    リージョンを選択
    サービスロールを設定
    権限の修正

    View full-size slide

  20. IAM Access Analyzer を利用した最小権限への旅
    権限の設定
    権限の確認
    権限の修正
    IAM Access Analyzer でできること
    IAM Access Analyzer は
    権限管理ライフサイクルのあらゆるステージを支える各種機能を提供
    再掲
    ✓ IAM Access Analyzer policy validation
    ✓ IAM Access Analyzer external access findings
    ✓ IAM Last Accessed information
    ✓ IAM Access Analyzer policy generation

    View full-size slide

  21. IAM Access Analyzer を利用した最小権限への旅
    権限の設定
    権限の確認
    権限の修正
    IAM Access Analyzer でできること
    IAM Access Analyzer は
    権限管理ライフサイクルのあらゆるステージを支える各種機能を提供
    再掲
    ✓ IAM Access Analyzer policy validation
    ✓ IAM Access Analyzer external access findings
    ✓ IAM Last Accessed information
    ✓ IAM Access Analyzer policy generation
    銀の弾丸というわけにはいかなかった

    View full-size slide

  22. IAM Access Analyzer の悩み
    大きく2点悩ましいところがあった
    IAM Access Analyzer を利用した最小権限への旅
    公開アクセスの検知結果が多すぎて
    どこから手を付ければいいかわからない
    コードで展開するIAMリソースの
    事前検証ができない
    個人的に

    View full-size slide

  23. IAM Access Analyzer の悩み
    大きく2点悩ましいところがあった
    IAM Access Analyzer を利用した最小権限への旅
    コードで展開するIAMリソースの
    事前検証ができない
    個人的に
    公開アクセスの検知結果が多すぎて
    どこから手を付ければいいかわからない

    View full-size slide

  24. IAM Access Analyzer 検出結果におけるノイズ
    環境の規模が大きいほど多数のノイズが含まれる
    IAM Access Analyzer を利用した最小権限への旅
    このS3バケットは
    公開されていていいのか?
    謎のエラー
    フェデレーションユーザー
    の検出結果がいっぱい

    View full-size slide

  25. IAM Access Analyzer 検出結果におけるノイズの軽減
    AWSから検出結果に優先順位をつけるための以下の指針が示されている
    IAM Access Analyzer を利用した最小権限への旅
    1. パブリックアクセスに関する調査結果を確認する
    2. 権限エラーを削除してフィルタリングする
    3. 既知の ID プロバイダーのフィルター
    4. 信頼できるクロスアカウントアクセスの検出結果をフィルタリングする

    View full-size slide

  26. 1. パブリックアクセスに関する調査結果を確認する
    IAM Access Analyzer を利用した最小権限への旅
    IAM Access Analyzer は以下のようなリソースの外部公開を検知する
    ✓ 「Principal:*」権限があるS3バケットポリシー
    ✓ リソース許可フラグが設定されたEBSスナップショット

    View full-size slide

  27. IAM Access Analyzer を利用した最小権限への旅
    IAM Access Analyzer は以下のようなリソースの外部公開を検知する
    ✓ 「Principal:*」権限があるS3バケットポリシー
    ✓ リソース許可フラグが設定されたEBSスナップショット
    公開が意図したものであるならばアーカイブする
    1. パブリックアクセスに関する調査結果を確認する

    View full-size slide

  28. IAM Access Analyzer を利用した最小権限への旅
    IAM Access Analyzer は以下のようなリソースの外部公開を検知する
    ✓ 「Principal:*」権限があるS3バケットポリシー
    ✓ リソース許可フラグが設定されたEBSスナップショット
    意図した公開の場合
    リソース名等を条件
    にしてアーカイブ
    1. パブリックアクセスに関する調査結果を確認する

    View full-size slide

  29. IAM Access Analyzer を利用した最小権限への旅
    IAM Access Analyzer は以下のようなリソースの外部公開を検知する
    ✓ 「Principal:*」権限があるS3バケットポリシー
    ✓ リソース許可フラグが設定されたEBSスナップショット
    意図した公開の場合
    公開を意図していないなら是正する
    リソース名等を条件
    にしてアーカイブ
    1. パブリックアクセスに関する調査結果を確認する

    View full-size slide

  30. IAM Access Analyzer を利用した最小権限への旅
    IAM Access Analyzer は以下のようなリソースの外部公開を検知する
    ✓ 「Princial:*」権限があるS3バケットポリシー
    ✓ リソース許可フラグが設定されたEBSスナップショット
    意図した公開の場合 意図していない公開の場合
    1. パブリックアクセスに関する調査結果を確認する
    PrincipalOrgID
    等でポリシーを是正
    リソース名等を条件
    にしてアーカイブ

    View full-size slide

  31. IAM Access Analyzer を利用した最小権限への旅
    IAM Access Analyzer はサービスにリンクされたロールを利用するが、リソース側で明
    示的な拒否を行っているとリソースメタデータを読み取れないことがある
    2. 権限エラーを削除してフィルタリングする
    {
    "Sid":"Deny unintended access to KMS key",
    "Effect":"Deny",
    "Principal":"*",
    "Action":[
    "kms:DescribeKey",
    "kms:GetKeyPolicy",
    "kms:List*" ],
    "Resource":"*",
    "Condition":{
    "ArnNotLikeIfExists":{
    "aws:PrincipalArn":[
    "arn:aws:iam:::role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer",
    "arn:aws:iam::*:role/"
    ]
    }
    }
    }
    拒否の例外条件に
    サービスにリンクされたロールを追加

    View full-size slide

  32. 3. 既知のIDプロバイダーのフィルター
    IAM Access Analyzer を利用した最小権限への旅
    IAM Access Analyzer は IAM Identity Center 等のIdPをプリンシパルとして許
    可する信頼ポリシーを持つロールを検知してしまう
    Control Tower を
    展開した時の検知例
    アカウントが増えるごとに
    検出結果も増えていく

    View full-size slide

  33. IAM Access Analyzer を利用した最小権限への旅
    IAM Access Analyzer は IAM Identity Center 等のIdPをプリンシパルとして許
    可する信頼ポリシーを持つロールを検知してしまう
    Control Tower を
    展開した時の検知例
    アカウントが増えるごとに
    検出結果も増えていく
    IAM Identity Center の予約パスを使用して
    アーカイブルールを作成する
    3. 既知のIDプロバイダーのフィルター

    View full-size slide

  34. IAM Access Analyzer を利用した最小権限への旅
    IAM Identity Center によって作成されたロールは、以下の予約パスを利用する
    「arn:aws:iam:: :role/aws-reserved/sso.amazonaws.com/」
    Federated User を
    saml-provider/AWSSSO
    Resource を
    aws-reserved/sso.amazonaws.com
    3. 既知のIDプロバイダーのフィルター

    View full-size slide

  35. 4. 信頼できるクロスアカウントアクセスの検出結果をフィルタリングする
    IAM Access Analyzer を利用した最小権限への旅
    IAM Access Analyzer はリソースベースのポリシーが信頼ゾーン外からのクロスアカウ
    ントアクセスを許可している場合に検知する
    アカウントID等で
    アーカイブルールを作成する

    View full-size slide

  36. IAM Access Analyzer の悩み
    大きく2点悩ましいところがあった
    IAM Access Analyzer を利用した最小権限への旅
    個人的に
    公開アクセスの検知結果が多すぎて
    どこから手を付ければいいかわからない
    コードで展開するIAMリソースの
    事前検証ができない

    View full-size slide

  37. IAM Policy Validator for AWS CloudFormation の利用
    IAM Access Analyzer を利用した最小権限への旅
    CI/CDパイプラインにPolicy Validator を組み込むことで展開前に事前検証が可能
    https://catalog.us-east-1.prod.workshops.aws/v2/workshops/fff8e490-f397-43d2-ae26-737a6dc4ac68/en-US
    ワークショップが
    用意されている
    https://github.com/awslabs/terraform-iam-policy-validator
    Terraform用Validatorも
    用意されている

    View full-size slide

  38. 最小権限への旅のはじめ方
    IAM Access Analyzer を利用した最小権限への旅

    View full-size slide

  39. IAM Access Analyzer とセキュリティ成熟度モデル
    IAM Access Analyzer の段階的活用にあたって、
    セキュリティ成熟度モデルを一つの拠り所にすることができる
    IAM Access Analyzer を利用した最小権限への旅
    https://maturitymodel.security.aws.dev/en/

    View full-size slide

  40. IAM Access Analyzer とセキュリティ成熟度モデル
    IAM Access Analyzer の段階的活用にあたって、
    セキュリティ成熟度モデルを一つの拠り所にすることができる
    IAM Access Analyzer を利用した最小権限への旅
    https://maturitymodel.security.aws.dev/en/
    4段階の成熟度レベル

    View full-size slide

  41. IAM Access Analyzer とセキュリティ成熟度モデル
    IAM Access Analyzer の段階的活用にあたって、
    セキュリティ成熟度モデルを一つの拠り所にすることができる
    IAM Access Analyzer を利用した最小権限への旅
    https://maturitymodel.security.aws.dev/en/
    セキュリティ推奨事項の
    優先順位付けに役立つ

    View full-size slide

  42. IAM Access Analyzer とセキュリティ成熟度モデル
    IAM Access Analyzer の段階的活用にあたって、
    セキュリティ成熟度モデルを一つの拠り所にすることができる
    IAM Access Analyzer を利用した最小権限への旅
    https://maturitymodel.security.aws.dev/en/
    費用対効果を考慮して
    各推奨事項を分類

    View full-size slide

  43. IAM Access Analyzer とセキュリティ成熟度モデル
    IAM Access Analyzer の段階的活用にあたって、
    セキュリティ成熟度モデルを一つの拠り所にすることができる
    IAM Access Analyzer を利用した最小権限への旅
    https://maturitymodel.security.aws.dev/en/
    AWSの公式ドキュメント
    ではない旨の注意書き

    View full-size slide

  44. IAM Access Analyzer とセキュリティ成熟度モデル
    IAM Access Analyzer に関連する部分を抜粋すると以下のようになる
    IAM Access Analyzer を利用した最小権限への旅
    1. Quick Wins(即効性)
    ✓ IAM Access Analyzer を使用して、アカウントまたは組織の外部で共有されているリ
    ソースを検出
    2. Foundational(基礎)
    ⁻ 該当なし
    3. Efficient(効率化)
    ✓ IAMポリシーのレビュー(機能の実行に必要な最小限の権限が付与)
    ✓ 意図しないアクセスの審査(ポリシー内のアスタリスク確認)
    ✓ IAM Access Advisor(未使用の許可設定の削除)
    ✓ IAM Access Analyzer を利用したポリシーの生成
    4. Optimized(最適化)
    ✓ IAMパイプライン

    View full-size slide

  45. IAM Access Analyzer を利用した最小権限への旅
    参考文献
    ➢ https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/what-is-access-analyzer.html
    ➢ https://aws.amazon.com/jp/blogs/security/validate-iam-policies-in-cloudformation-templates-using-iam-access-
    analyzer/
    ➢ https://github.com/awslabs/terraform-iam-policy-validator
    ➢ https://aws.amazon.com/jp/blogs/security/refine-permissions-for-externally-accessible-roles-using-iam-access-
    analyzer-and-iam-action-last-accessed/
    ➢ https://maturitymodel.security.aws.dev/en/model/
    ➢ https://catalog.us-east-1.prod.workshops.aws/v2/workshops/fff8e490-f397-43d2-ae26-737a6dc4ac68/en-US
    ➢ https://d1.awsstatic.com/events/Summits/awsreinforce2023/IAM321_Move-toward-least-privilege-with-IAM-
    Access-Analyzer.pdf

    View full-size slide

  46. ありがとうございました!

    View full-size slide