外部からの意図しないアクセスを自動検出するAWSセキュリティサービス
🛡️ あなたのAWSリソースを守るセキュリティ監査員大きな会社には「誰がどの部屋に入れるか」をチェックする セキュリティ監査員 がいます。
IAM Access Analyzerは、AWSリソースへの 外部アクセスを自動検出 するサービスです。
信頼ゾーン 外部 からのアクセスを検出します。
付与されているが 使われていない 権限を検出します。
リソースがインターネット上の 誰でも アクセス可能な状態。 S3バケットが全世界に公開されている場合など。
信頼ゾーン外の 特定のAWSアカウント からアクセス可能。 パートナー企業への共有が意図的か確認が必要。
外部のIDプロバイダー(SAML、OIDC)経由でアクセス可能。 SSO設定が適切か確認が必要。
AWSサービス(CloudTrail、Config等)がリソースにアクセス可能。 通常は正常な設定だが確認推奨。
IAMコンソール → Access Analyzer → 「アナライザーを作成」をクリック。 信頼ゾーンを選択して作成。
作成後、対象リソースの自動スキャンが開始。 新しいリソース作成時も自動で分析。
検出された問題はFindingとして一覧表示。 各Findingの詳細を確認して対応を決定。
意図的なアクセスは「アーカイブ」で除外。 問題がある場合はポリシーを修正。
# 外部アクセスアナライザーの作成(アカウントレベル)
aws accessanalyzer create-analyzer \
--analyzer-name "my-account-analyzer" \
--type ACCOUNT
# Organization全体のアナライザーを作成
aws accessanalyzer create-analyzer \
--analyzer-name "my-org-analyzer" \
--type ORGANIZATION
# 未使用アクセスアナライザーの作成
aws accessanalyzer create-analyzer \
--analyzer-name "unused-access-analyzer" \
--type ACCOUNT_UNUSED_ACCESS \
--configuration '{"unusedAccess": {"unusedAccessAge": 90}}'
# Findingの一覧を取得
aws accessanalyzer list-findings \
--analyzer-arn "arn:aws:access-analyzer:ap-northeast-1:123456789012:analyzer/my-account-analyzer"
AWSTemplateFormatVersion: '2010-09-09'
Description: 'IAM Access Analyzer Setup'
Resources:
# 外部アクセスアナライザー
ExternalAccessAnalyzer:
Type: AWS::AccessAnalyzer::Analyzer
Properties:
AnalyzerName: external-access-analyzer
Type: ACCOUNT
Tags:
- Key: Environment
Value: Production
# アーカイブルール(特定のパターンを除外)
TrustedAccountArchiveRule:
Type: AWS::AccessAnalyzer::ArchiveRule
Properties:
AnalyzerName: !Ref ExternalAccessAnalyzer
RuleName: trusted-partner-account
Filter:
- Criteria: principal.AWS
Contains:
- "arn:aws:iam::111122223333:root"
Outputs:
AnalyzerArn:
Description: Access Analyzer ARN
Value: !GetAtt ExternalAccessAnalyzer.Arn
全アカウントを一元管理するため、Organization レベルのアナライザーを作成しましょう。
新しいFindingが検出されたら、Slack/メールに自動通知する仕組みを構築。
信頼できるパートナーアカウントへのアクセスは、アーカイブルールで自動除外。
月次でFindingをレビューし、新しい外部アクセスが正当か確認する運用を確立。
Security HubにFindingを集約し、他のセキュリティ問題と一元管理。
外部アクセスだけでなく、未使用の権限も定期的にクリーンアップ。
外部アクセスアナライザーは 追加料金なし で利用可能
Access Analyzer は、ポリシーを詳細に分析して「誰がアクセスできるか」を特定します。 一方、 Config Rules は設定の変更を監視し、ルール違反を検出します。 Access Analyzerはポリシー分析に特化しており、より深いアクセス権限の把握が可能です。 両方を組み合わせて使うのがベストプラクティスです。
1️⃣ まず、そのアクセスが
意図的かどうか
を確認します。
2️⃣ 意図的なアクセスなら「
アーカイブ
」して除外します。
3️⃣ 意図しないアクセスなら、リソースのポリシーを修正して外部アクセスを制限します。
4️⃣ 修正後、Findingは自動的に「解決済み」になります。
はい、Access Analyzerは リージョナルサービス です。 各リージョンで個別にアナライザーを作成する必要があります。 ただし、S3バケットとIAMロールは グローバル なので、1つのリージョンで分析すればOKです。 CloudFormation StackSetsを使って全リージョンに一括デプロイするのがおすすめです。
CloudTrailログを分析して、実際に使用されたアクションに基づいて 最小権限のIAMポリシー を自動生成する機能です。 「このロールに本当に必要な権限だけ」を特定でき、 セキュリティのベストプラクティスである最小権限の原則を簡単に実現できます。
Access Analyzer
は「誰がアクセス
可能
か」を分析します(予防的)。
GuardDuty
は「不審なアクティビティが
発生した
か」を検出します(検知的)。
Access Analyzerで外部アクセスを事前にブロックし、
GuardDutyで実際の攻撃を検知する、という組み合わせが理想的です。
Created by SSuzuki1063
AWS SAP Learning Resources