0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GuardDutyをAWS Organizationsで一元管理する:委任管理アカウントと脅威インテリジェンスリストの集約運用

0
Posted at

概要

GuardDutyはリージョン・アカウント単位のサービスのため、そのままでは設定が散らばりがちです。AWS Organizationsの「委任管理アカウント(Delegated Administrator)」を活用することで、検出設定・メンバー管理・脅威インテリジェンスリストを一元的に統制できます。本記事では、その具体的な構成手順と運用のポイントを解説します。


目次

  1. なぜ一元管理が必要なのか
  2. 全体構成の概要
  3. 手順1:委任管理アカウントの登録
  4. 手順2:統括アカウントでのDetector設定と組織自動有効化
  5. 手順3:脅威インテリジェンスリストの一元化
  6. 料金の目安
  7. 運用のポイントとベストプラクティス
  8. 終わりに
  9. 参考文献・参考サイト

1. なぜ一元管理が必要なのか

Amazon GuardDutyはリージョン単位・アカウント単位で動作するサービスです。たとえば東京リージョン(ap-northeast-1)と大阪リージョン(ap-northeast-3)にまたがる環境が5アカウントあれば、設定対象は単純計算で10箇所になります。アカウントが増えるたびに個別有効化が必要となり、設定漏れや脅威リストの不統一が生じやすくなります。

この課題を解決するのが、AWS Organizations と GuardDuty の委任管理アカウント(Delegated Administrator) の組み合わせです。セキュリティ専用アカウントを統括アカウントとして指定することで、組織内のすべてのアカウント・リージョンへGuardDutyの設定を一括配布できます。

新規アカウントの自動有効化設定を入れておけば、アカウントが追加されても「監視の穴」ができません。また、脅威インテリジェンスリスト(悪意のあるIPアドレスリストなど)を統括アカウントで1つ登録するだけで、メンバーアカウント全体に適用されます。各アカウントでLambdaを回してリストを更新するような複雑な運用は不要です。

image.png


2. 全体構成の概要

本記事で構築する構成のポイントを整理します。

役割 アカウント 主な作業
管理アカウント Organizations管理者 委任管理の有効化(1回だけ)
委任管理アカウント セキュリティアカウント Detector設定・メンバー管理・脅威リスト登録
メンバーアカウント 各開発・本番アカウント GuardDutyの設定は統括アカウントから配布

作業の大半は**委任管理アカウント(セキュリティアカウント)**で行います。管理アカウントは委任設定のときだけ操作が必要で、以降は基本的にセキュリティアカウントで完結します。


3. 手順1:委任管理アカウントの登録

まず管理アカウント側で、GuardDutyの委任管理をセキュリティアカウントに設定します。この操作は各リージョンで実施が必要です。

# 委任管理アカウントとして登録する(管理アカウントで実行)
aws guardduty enable-organization-admin-account \
  --admin-account-id 123456789012 \
  --region ap-northeast-1

123456789012 の部分をセキュリティアカウントのAWSアカウントIDに置き換えてください。

登録後、AWS Management Consoleで「GuardDuty」→「設定」→「委任管理者」に対象アカウントIDが表示されていれば成功です。


4. 手順2:統括アカウントでのDetector設定と組織自動有効化

次に、**委任管理アカウント(セキュリティアカウント)**でDetectorを有効化し、メンバーアカウントの自動有効化を設定します。対象とするリージョンすべてで繰り返し実施してください。

4-1. Detectorの有効化

# 委任管理アカウントでDetectorを有効化
aws guardduty create-detector \
  --enable \
  --region ap-northeast-1

実行後、返ってくる DetectorId を控えておきます。以降の手順で使用します。

4-2. 組織設定:新規アカウントの自動有効化とメンバー管理

DETECTOR_ID="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# 新規アカウント追加時に自動でGuardDutyを有効化する設定
aws guardduty update-organization-configuration \
  --detector-id ${DETECTOR_ID} \
  --auto-enable NEW \
  --region ap-northeast-1

--auto-enable には以下の値が指定できます。

動作
ALL 既存・新規アカウント全員に適用
NEW 新規追加アカウントのみ自動有効化
NONE 自動有効化しない

4-3. 既存メンバーアカウントの一括追加

すでに存在するアカウントは自動有効化の対象外のため、手動で一括追加します。

# 組織内の全アカウントをメンバーとして追加
aws guardduty create-members \
  --detector-id ${DETECTOR_ID} \
  --account-details '[{"AccountId":"111111111111","Email":"account-a@example.com"},{"AccountId":"222222222222","Email":"account-b@example.com"}]' \
  --region ap-northeast-1

4-4. 保護プランの有効化

S3 Protection、EKS、RDS、Lambda Protectionなど、組織で必要な保護プランを有効化します。

aws guardduty update-detector \
  --detector-id ${DETECTOR_ID} \
  --features '[{"Name":"S3_DATA_EVENTS","Status":"ENABLED"},{"Name":"EKS_AUDIT_LOGS","Status":"ENABLED"},{"Name":"RDS_LOGIN_EVENTS","Status":"ENABLED"},{"Name":"LAMBDA_NETWORK_LOGS","Status":"ENABLED"}]' \
  --region ap-northeast-1

5. 手順3:脅威インテリジェンスリストの一元化

ここが本記事のハイライトです。ベンダーから提供される悪意あるIPアドレスリスト(ThreatIntelSet)を統括アカウントに登録するだけで、全メンバーアカウントに自動適用されます。

5-1. 脅威リスト格納用S3バケットの準備

統括アカウントに中央管理用のS3バケットを1つ用意します。バケットポリシーで、GuardDutyサービスプリンシパルからの読み取りを許可します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowGuardDutyGetObject",
      "Effect": "Allow",
      "Principal": {
        "Service": "guardduty.amazonaws.com"
      },
      "Action": [
        "s3:GetObject",
        "s3:GetBucketLocation"
      ],
      "Resource": [
        "arn:aws:s3:::your-threat-intel-bucket",
        "arn:aws:s3:::your-threat-intel-bucket/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceArn": "arn:aws:guardduty:ap-northeast-1:123456789012:detector/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        }
      }
    }
  ]
}

ポイント:

  • aws:SourceArn に委任管理アカウントのDetector ARNを指定することで、アクセス元を特定のDetectorに限定できます(最小権限の原則)。
  • バケットをKMSで暗号化している場合は、KMSキーポリシーにも kms:Decrypt の許可を追加してください。

5-2. ThreatIntelSetの登録

S3にリストファイル(1行1IPアドレスのTXTファイルなど)をアップロードしたら、GuardDutyに登録します。

# 脅威インテリジェンスリストを登録(委任管理アカウントで実行)
aws guardduty create-threat-intel-set \
  --detector-id ${DETECTOR_ID} \
  --name "VendorThreatList" \
  --format TXT \
  --location "s3://your-threat-intel-bucket/threat-list.txt" \
  --activate \
  --region ap-northeast-1

--format には TXT(1行1IP)、STIXOTX_CSVALIEN_VAULTPROOF_POINTFIRE_EYE が指定できます。ベンダーの提供形式に合わせて選択してください。

登録後、GuardDutyはS3オブジェクトを定期的に取り込みます。リストの更新はS3ファイルを差し替えるだけでOKで、Lambdaなどのトリガーは不要です。

image.png


6. 料金の目安

GuardDutyは従量課金です。基本となるFoundational Threat Detectionの料金は次のとおりです(2025年2月時点、東京リージョン / ap-northeast-1)。

データソース 料金
CloudTrail管理イベント分析 4.72 USD / 100万イベント(段階的割引あり)
VPCフローログ+DNSクエリログ分析 0.17 USD / GB(500GB超から段階的割引あり)

料金は変動する可能性があります。最新情報は公式料金ページ ( https://aws.amazon.com/jp/guardduty/pricing/ ) でご確認ください。

コスト感のヒント: GuardDutyは85%以上のアカウントでAWS利用料全体の1%以下に収まるというデータがあります(AWS公式より)。また、普段使っていないリージョンではCloudTrailやVPCフローログがほぼ発生しないため、追加コストはごくわずかです。組織の全リージョンで有効化しても費用対効果は十分高い傾向にあります。

新規アカウントは各リージョンで初めて有効化した際に30日間の無料トライアルが適用されます。委任管理アカウントからメンバーに自動有効化した場合も、メンバーアカウントごとに30日間のトライアルが適用されます。


7. 運用のポイントとベストプラクティス

設定完了後の継続的な運用でおさえておきたいポイントです。

リージョン管理の徹底
GuardDutyはリージョン単位のサービスです。監視対象とするリージョンすべてで委任管理の有効化と自動有効化の設定を実施してください。新リージョンを追加する際の手順はIaCやCloudFormation StackSetsで自動化しておくと、設定漏れを防げます。

検出結果の集約と通知
委任管理アカウントのコンソールで全メンバーの検出結果を一元確認できます。重要度が High・Critical の検出結果はEventBridgeルールとAmazon SNSを組み合わせてアラート通知を設定しましょう。Security Hubと連携すれば、GuardDutyの検出をセキュリティスコアの評価に含めることもできます。

SIEMへのエクスポート
GuardDutyの検出結果は最大90日間保持されます。長期保管や分析が必要な場合は、検出結果をS3にエクスポートしてSIEMと連携するか、Security Hubを経由して集約する構成が一般的です。

脅威リストの管理
S3上のリストファイルを差し替えればGuardDutyが自動的に更新を取り込みます。ベンダーからの更新頻度に合わせてS3への配置を自動化(例:Lambdaでの定期ダウンロード)しておくと運用負荷が下がります。ThreatIntelSetを更新する場合は update-threat-intel-set --activate フラグで再アクティベートが必要な点に注意してください。

セキュリティアカウントのアクセス制限
委任管理アカウントは組織全体のGuardDuty設定を変更できる強い権限を持ちます。このアカウントへのIAMアクセスはSCP(Service Control Policy)や権限境界で最小化し、操作履歴をCloudTrailで監視する構成を推奨します。


8. 終わりに

本記事では、GuardDutyをAWS Organizationsで一元管理するための構成と手順を解説しました。要点を整理します。

  • 管理アカウントでセキュリティアカウントを委任管理アカウントに登録する
  • 委任管理アカウントでDetectorを有効化し、組織の自動有効化と保護プランを設定する(全対象リージョンで実施)
  • 脅威インテリジェンスリストはS3に格納して一元登録。メンバー全体に自動適用される
  • バケットポリシーでGuardDutyサービスプリンシパルに最小権限を付与し、aws:SourceArn 条件で絞る

この構成にすることで、アカウントが増えても監視の穴が生じにくく、脅威リストの更新もS3ファイルの差し替えだけで完結します。

次のステップとして、EventBridgeとSNSを使った検出結果の通知自動化や、Security Hubとの統合も検討してみてください。組織全体のセキュリティ運用がさらにシンプルになります。


9. 参考文献・参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?