SJ blog
devops
A

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

AWS Trusted Advisor — コスト・セキュリティ・パフォーマンスの自動チェック

AWS Trusted Advisorのチェックカテゴリ(コスト最適化/セキュリティ/パフォーマンス/耐障害性/サービス制限)、無料チェックと有料チェックの違い、Organizations統合、自動対応の設定を解説。

一言結論

Trusted Advisorのコスト最適化・パフォーマンス・耐障害性チェックはBusiness/Enterpriseサポートが必要だが、MFAやS3パブリックアクセスなど主要なセキュリティチェックは無料で利用でき、EventBridge+Lambdaと組み合わせることで検出から自動修復まで自動化できる。

Trusted Advisor の概要

Trusted AdvisorはAWSのベストプラクティスに基づいてアカウントを自動チェックし、コスト削減・セキュリティ強化・パフォーマンス改善のアドバイスを提供するサービスだ。

チェックカテゴリ:
  1. コスト最適化: 未使用リソース、コスト削減の機会
  2. パフォーマンス: スループット向上の機会
  3. セキュリティ: セキュリティリスクの特定
  4. 耐障害性: 単一障害点の特定
  5. サービス制限: AWSサービスの上限に近いリソース
  6. オペレーショナルエクセレンス: 運用改善の機会

無料チェックと有料チェック

基本チェック(全サポートプランで利用可能):
  セキュリティ:
    - S3バケットのパブリックアクセス
    - セキュリティグループの開放ポート(22, 3389等)
    - MFAが無効のrootアカウント
    - IAMユーザーのアクセスキーのローテーション
  
  サービス制限:
    - EC2インスタンス数の上限確認
    - EBSボリュームの容量上限確認
  
完全なチェック(Business/Enterprise サポートプランが必要):
  コスト最適化:
    - 未使用のEC2インスタンス(低CPU使用率)
    - 未使用のElastic IP
    - 空のS3バケット
    - 低使用率のRDSインスタンス
    - 未使用のEBSボリューム
  
  パフォーマンス:
    - EBSのスループット最適化(gp2→gp3移行)
    - CloudFrontキャッシュヒット率の低下
  
  耐障害性:
    - EC2のアベイラビリティゾーン分散
    - RDSのマルチAZ設定
    - Auto ScalingグループのAZ設定
    - S3バケットのバージョニング設定

重要なセキュリティチェック

rootアカウントへのMFA:
  → rootにMFAが設定されていない場合、赤(要対応)
  
セキュリティグループの開放ポート:
  → 0.0.0.0/0に22(SSH)または3389(RDP)を開放している場合、黄(推奨対応)
  
IAMアクセスキーのローテーション:
  → 90日以上更新されていないアクセスキーを検出
  
CloudTrailのログ記録:
  → CloudTrailが有効でないリージョンを検出
  
Amazon S3バケットのパブリックアクセス:
  → パブリックアクセスが有効なS3バケットを検出

コスト最適化チェックの活用

# Trusted Advisor APIでチェック結果を取得
import boto3

support = boto3.client('support', region_name='us-east-1')

# チェック一覧の取得
response = support.describe_trusted_advisor_checks(language='ja')

for check in response['checks']:
    if check['category'] == 'cost_optimizing':
        print(f"Name: {check['name']}")
        print(f"ID: {check['id']}")
# 低使用率EC2インスタンスのチェック結果取得
aws support describe-trusted-advisor-check-result \
  --check-id Qch7DwouX1 \
  --region us-east-1

# 全チェックの要約確認
aws support describe-trusted-advisor-checks-summary \
  --region us-east-1

自動対応の設定

EventBridge + Lambda でTrusted Advisorアラートを自動対応:

1. Trusted Advisor がチェック状態を更新
2. EventBridge がイベントを受信
3. Lambda が自動修復を実行
// EventBridgeルール: Trusted Advisor のセキュリティアラートをキャプチャ
{
  "source": ["aws.trustedadvisor"],
  "detail-type": ["Trusted Advisor Check Item Refresh Notification"],
  "detail": {
    "check-item-detail": {
      "status": ["ERROR"]
    },
    "check-name": ["Security Groups - Specific Ports Unrestricted"]
  }
}

Organizations での集中管理

# Organization全体のTrusted Advisorを有効化
aws trustedadvisor update-organization-recommendation-lifecycle \
  --organization-recommendation-identifier arn:aws:trustedadvisor:::recommendation/xxx \
  --lifecycle-stage PENDING_RESPONSE

# Organization全体のチェック結果取得
aws trustedadvisor list-organization-recommendations \
  --pillar SECURITY
Organizations統合の利点:
  → マスターアカウントから全メンバーアカウントのチェック結果を一覧
  → リスクの高いアカウントを優先対応
  → セキュリティ状況のダッシュボード化

Security Hub との違い

Trusted Advisor:
  → AWSベストプラクティスへの準拠チェック
  → コスト最適化も含む広範なカテゴリ
  → Businessサポート以上が必要(一部は無料)
  
Security Hub:
  → セキュリティ特化の集中管理
  → FSBP/CIS/PCI等の標準への準拠
  → マルチアカウントの統合(Organizations)
  → GuardDuty/Inspector/Macieのfindingsも統合
  
Trusted Advisor のセキュリティチェックはSecurity Hubにも統合されている

試験頻出ポイント

シナリオ回答
未使用EC2インスタンスの検出Trusted Advisor(コスト最適化チェック)
Trusted Advisorの全チェック利用Business/Enterpriseサポートプランが必要
rootアカウントMFA未設定の検出無料チェックで利用可能
サービス制限への近接を確認Trusted Advisor(サービス制限チェック)
Organizations全体のTrusted Advisor集中管理Organizations統合機能

まとめ

Trusted Advisorはコスト・セキュリティ・パフォーマンス・耐障害性・サービス制限の5カテゴリを自動チェックする。全機能はBusiness/Enterpriseサポートプランが必要だが、MFAやS3パブリックアクセス等の主要セキュリティチェックは無料で利用できる。