【アップデート】GuardDuty Malware Protection for S3 がオンデマンドスキャンに対応しました

【アップデート】GuardDuty Malware Protection for S3 がオンデマンドスキャンに対応しました

2025.11.18

GuardDuty Malware Protection for S3 は、S3バケットのオブジェクトスキャン機能です。 マルウェア検出に役立ちます。 従来は、S3バケットに新規アップロードされるオブジェクトをスキャンできていました。

今回のアップデートで、 既存オブジェクトに対してオンデマンドでマルウェアスキャンを実行 できるようになりました。 新規CLIコマンド(API)として send-object-malware-scan が追加されています。

NEW_FEATURES : Amazon GuardDuty announces Scan on Demand for Malware Protection for S3. Using this feature you can use the new SendObjectMalwareScan API to trigger scans on any already existing objects stored in your S3 buckets.

https://docs.aws.amazon.com/guardduty/latest/ug/malware-protection-s3-on-demand.html

マルウェアスキャンを有効化する前から存在しているオブジェクトをスキャンしたいときに役に立ちますね。

本ブログにて早速試してみます。

前提条件

オンデマンドスキャンを実行する前に、以下の前提条件を満たす必要があります。

  • 対象バケットで Malware Protection for S3 が有効化されていること
  • API を実行する IAM ユーザーまたはロールに AmazonGuardDutyFullAccess_v2 ポリシー(推奨)がアタッチされていること

わたしのAWS検証環境ではそもそも Malware Protection for S3 を使っていなかったので、 有効化から始めます。

S3 の Malware Protection を有効化する

※ 読者環境にて、すでに有効化されている場合は読み飛ばしてください。

GuardDuty コンソールから Malware Protection for S3 を有効化します。 [S3 の Malware Protection を有効化] を選択します。

sc-2025-11-18_09-2318

有効化のパラメータを入力していきます。

sc-2025-11-18_09-9445
S3バケットの詳細を入力(※プレフィックスはオンデマンドスキャンのみ試す場合は、 "使用予定のないプレフィクス" を書いておくと良さそう)

sc-2025-11-18_09-20211
スキャンされたオブジェクトにタグを付ける/サービスアクセス → 有効化

無事、有効化できました。

sc-2025-11-18_09-19122

なお、有効化が完了すると、マルウェアスキャン用の IAM ロール(今回は GuardDutyS3MalwareScanRole )が作成されます。 このロールには、S3 オブジェクトのスキャンやタグ付けに必要な権限が付与されています。

やってみる

オンデマンドスキャンを実行する

send-object-malware-scan コマンドを使用して、既存オブジェクトに対してマルウェアスキャンを実行します。

オンデマンドスキャンの実行
aws guardduty send-object-malware-scan \
  --s3-object '{
    "Bucket": "amzn-s3-demo-bucket",
    "Key": "test.txt"
  }'
# 特に出力は無し

なお、特定バージョニングのオブジェクトに対して実行したい場合は、 以下のようにします。

特定バージョンのオブジェクトをスキャン
aws guardduty send-object-malware-scan \
  --s3-object '{
    "Bucket": "amzn-s3-demo-bucket",
    "Key": "APKAEIBAERJR2EXAMPLE",
    "VersionId": "d41d8cd98f00b204e9800998eEXAMPLE"
  }'

– 引用: On-demand S3 malware scan in GuardDuty - Amazon GuardDuty

スキャン結果を確認する

スキャン結果は、オブジェクトに付与されたタグで確認できます。

スキャン結果の確認
aws s3api get-object-tagging \
  --bucket amzn-s3-demo-bucket \
  --key test.txt
# {
#     "TagSet": [
#         {
#             "Key": "GuardDutyMalwareScanStatus",
#             "Value": "NO_THREATS_FOUND"
#         }
#     ]
# }

GuardDutyMalwareScanStatus タグの値が NO_THREATS_FOUND となっており、 マルウェアが検出されなかったことが確認できました。

スキャン結果の値は以下のいずれかになります (参考)

  • NO_THREATS_FOUND: 脅威なし
  • THREATS_FOUND: マルウェア検出
  • UNSUPPORTED: スキャン非対応
  • ACCESS_DENIED: アクセス権限エラー
  • FAILED: 内部エラー

また、CloudWatch メトリクスでも実行されたことが確認できます。 たとえば 「名前空間: AWS/GuardDuty/MalwareProtection, メトリクス名: CompletedScanBytes 」などです。 GuardDuty コンソールにて確認できます。

sc-2025-11-18_10-16856
GuardDuty > S3 の Malware Protection > S3 バケットの詳細

おわりに

GuardDuty Malware Protection for S3 がオンデマンドスキャンを試してみました。 従来は新規アップロード時のリアルタイムスキャンのみだったので、 既存オブジェクトのスキャンに少し難ありでした。 かゆいところに手が届く、いい更新だと思います。

なお、料金まわりは以下を参照ください。 スキャンされた GB および評価されたオブジェクト数に応じて課金されます。

以上、参考になれば幸いです。

参考

この記事をシェアする

FacebookHatena blogX

関連記事