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 は特に機能拡張が激しいサービスのひとつ 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を超えるサービスでアクティビティに基づく ポリシー生成が可能に
  2. IAM Access Analyzer を利用した最小権限への旅 権限の設定 権限の確認 権限の修正 IAM Access Analyzer

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

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

    IAM Access Analyzer は 権限管理ライフサイクルのあらゆるステージを支える各種機能を提供 権限の設定 権限を 正しく 設定するための機能
  5. IAM Access Analyzer policy validation IAMをポリシーの文法およびベストプラクティスに照らして検証 権限の設定 IAM Access Analyzer

    を利用した最小権限への旅 文法的な誤りを指摘 過度に広いアクセス権限を指摘 ベストプラクティスに沿っていないポリシーを指摘 改善のための推奨事項 Security Errors Warnings Suggestions
  6. IAM Access Analyzer を利用した最小権限への旅 権限の修正 IAM Access Analyzer でできること IAM

    Access Analyzer は 権限管理ライフサイクルのあらゆるステージを支える各種機能を提供 権限の設定 権限の確認 過剰な権限 が設定されていないか確認するための機能
  7. IAM Access Analyzer external access findings 外部エンティティと共有されている組織とアカウントのリソースを識別 権限の確認 IAM Access

    Analyzer を利用した最小権限への旅 外部公開している(されている) S3バケットを一覧表示した例
  8. IAM Access Analyzer を利用した最小権限への旅 IAM Access Analyzer でできること IAM Access

    Analyzer は 権限管理ライフサイクルのあらゆるステージを支える各種機能を提供 権限の設定 権限の確認 権限の修正 過剰な権限を削除し 洗練 させるための機能
  9. IAM Access Analyzer policy generation CloudTrailログを分析し、ポリシー生成を支援 IAM Access Analyzer を利用した最小権限への旅

    期間を選択(最長90日) リージョンを選択 サービスロールを設定 権限の修正
  10. 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
  11. 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 銀の弾丸というわけにはいかなかった
  12. IAM Access Analyzer の悩み 大きく2点悩ましいところがあった IAM Access Analyzer を利用した最小権限への旅 公開アクセスの検知結果が多すぎて

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

    事前検証ができない 個人的に 公開アクセスの検知結果が多すぎて どこから手を付ければいいかわからない
  14. IAM Access Analyzer 検出結果におけるノイズの軽減 AWSから検出結果に優先順位をつけるための以下の指針が示されている IAM Access Analyzer を利用した最小権限への旅 1.

    パブリックアクセスに関する調査結果を確認する 2. 権限エラーを削除してフィルタリングする 3. 既知の ID プロバイダーのフィルター 4. 信頼できるクロスアカウントアクセスの検出結果をフィルタリングする
  15. 1. パブリックアクセスに関する調査結果を確認する IAM Access Analyzer を利用した最小権限への旅 IAM Access Analyzer は以下のようなリソースの外部公開を検知する

    ✓ 「Principal:*」権限があるS3バケットポリシー ✓ リソース許可フラグが設定されたEBSスナップショット
  16. IAM Access Analyzer を利用した最小権限への旅 IAM Access Analyzer は以下のようなリソースの外部公開を検知する ✓ 「Principal:*」権限があるS3バケットポリシー

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

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

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

    ✓ リソース許可フラグが設定されたEBSスナップショット 意図した公開の場合 意図していない公開の場合 1. パブリックアクセスに関する調査結果を確認する PrincipalOrgID 等でポリシーを是正 リソース名等を条件 にしてアーカイブ
  20. 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::<ACCOUNT_ID>:role/aws-service-role/access-analyzer.amazonaws.com/AWSServiceRoleForAccessAnalyzer", "arn:aws:iam::*:role/<YOUR-ADMIN-ROLE>" ] } } } 拒否の例外条件に サービスにリンクされたロールを追加
  21. 3. 既知のIDプロバイダーのフィルター IAM Access Analyzer を利用した最小権限への旅 IAM Access Analyzer は

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

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

    :role/aws-reserved/sso.amazonaws.com/」 Federated User を saml-provider/AWSSSO Resource を aws-reserved/sso.amazonaws.com 3. 既知のIDプロバイダーのフィルター
  24. IAM Access Analyzer の悩み 大きく2点悩ましいところがあった IAM Access Analyzer を利用した最小権限への旅 個人的に

    公開アクセスの検知結果が多すぎて どこから手を付ければいいかわからない コードで展開するIAMリソースの 事前検証ができない
  25. 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も 用意されている
  26. IAM Access Analyzer とセキュリティ成熟度モデル IAM Access Analyzer の段階的活用にあたって、 セキュリティ成熟度モデルを一つの拠り所にすることができる IAM

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

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

    Access Analyzer を利用した最小権限への旅 https://maturitymodel.security.aws.dev/en/ AWSの公式ドキュメント ではない旨の注意書き
  29. 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パイプライン
  30. 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