

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# GuardDuty Malware Protection for S3
<a name="gdu-malware-protection-s3"></a>

Malware Protection for S3 は、選択した Amazon Simple Storage Service (Amazon S3) バケットに新しくアップロードされたオブジェクトをスキャンすることで、マルウェアが存在する可能性を検出できます。選択したバケットに S3 オブジェクトまたは既存の S3 オブジェクトの新しいバージョンがアップロードされると、GuardDuty は自動的にマルウェアスキャンを開始します。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/uweeumMAif4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/uweeumMAif4)


**Malware Protection for S3 を有効にする 2 つの方法**  
 で GuardDuty サービス AWS アカウント を有効にし、GuardDuty エクスペリエンス全体の一部として Malware Protection for S3 を使用する場合、または GuardDuty サービスを有効にせずに Malware Protection for S3 機能を単独で使用する場合は、Malware Protection for S3 を有効にできます。Malware Protection for S3 を単独で有効にする場合のことを、GuardDuty ドキュメントでは、Malware Protection for S3 を独立した機能として使用すると表現します。  

**Malware Protection for S3 を独立して使用する際の考慮事項**
+ GuardDuty セキュリティ検出結果 – ディテクター ID は、リージョン内のアカウントに関連付けられている一意の識別子です。アカウントの 1 つ以上のリージョンで GuardDuty を有効にすると、GuardDuty を有効にするリージョンごとに、このアカウントに対するディテクター ID が自動的に作成されます。詳細については、「[Amazon GuardDuty の概念と主要な用語](guardduty_concepts.md)」ドキュメントの「*ディテクター*」を参照してください。

  アカウントで Malware Protection for S3 を独立して有効にする場合、そのアカウントにはディテクター ID が関連付けられ**ません**。これは、使用可能な GuardDuty の機能に影響します。たとえば、S3 マルウェアスキャンがマルウェアの存在を検出すると、すべての GuardDuty 検出結果がディテクター ID に関連付けられている AWS アカウント ため、GuardDuty 検出結果は で生成されません。
+ スキャンされたオブジェクトに悪意があるかどうかを確認する – デフォルトでは、GuardDuty はマルウェアスキャン結果をデフォルトの Amazon EventBridge イベントバスと Amazon CloudWatch 名前空間に発行します。バケットの Malware Protection for S3 を有効にするときにタグ付けを有効にすると、スキャンされた S3 オブジェクトはスキャン結果に言及するタグを取得します。タグ付けの詳細については、「[必要に応じてスキャン結果に基づいてオブジェクトにタグを追加する](how-malware-protection-for-s3-gdu-works.md#enable-optional-tagging-malware-protection-s3)」を参照してください。

**Malware Protection for S3 を有効にする際の一般的な考慮事項**  
次の一般的な考慮事項は、Malware Protection for S3 を独立して使用する場合にも、GuardDuty エクスペリエンスの一部として使用する場合にも適用されます。  
+ 自分のアカウントに属する Amazon S3 バケットに対して Malware Protection for S3 を有効にできます。委任 GuardDuty 管理者アカウントとしては、メンバーアカウントに属する Amazon S3 バケットでこの機能を有効にすることはできません。
+ この機能は、GuardDuty コンソールで現在選択されているリージョンと同じリージョンに属する S3 バケットで有効にできます。GuardDuty は、クロスリージョン S3 バケットでこの機能を有効にすることはサポートしていません。
+ 委任 GuardDuty 管理者アカウントには、組織のメンバーアカウントの 1 つでこの機能を設定した S3 バケットの [保護されたバケットのステータスの表示と理解](malware-protection-s3-bucket-status-gdu.md)に変更があるたびに、Amazon EventBridge 通知が送信されます。

**Topics**
+ [Malware Protection for S3 の料金と使用コスト](pricing-malware-protection-for-s3-guardduty.md)
+ [Malware Protection for S3 の仕組み](how-malware-protection-for-s3-gdu-works.md)
+ [Malware Protection for S3 の機能](s3-malware-protection-capability.md)
+ [(オプション) GuardDuty Malware Protection for S3 の使用を個別に開始する (コンソールのみ)](malware-protection-s3-get-started-independent.md)
+ [バケットの Malware Protection for S3 の設定](configuring-malware-protection-for-s3-guardduty.md)
+ [Malware Protection for S3 を有効にした後の手順](malware-protection-s3-steps-after-enabling.md)
+ [GuardDuty でのオンデマンド S3 マルウェアスキャン](malware-protection-s3-on-demand.md)
+ [Malware Protection for S3 によるタグベースのアクセスコントロール (TBAC) の使用](tag-based-access-s3-malware-protection.md)
+ [保護されたバケットのステータスの表示と理解](malware-protection-s3-bucket-status-gdu.md)
+ [Malware Protection for S3 での S3 オブジェクトスキャンのモニタリング](monitoring-malware-protection-s3-scans-gdu.md)
+ [トラブルシューティング](troubleshoot-s3-malware-protection.md)
+ [保護されたバケットの Malware Protection プランの編集](edit-malware-protection-protected-s3-bucket.md)
+ [保護されたバケットの Malware Protection for S3 の無効化](disable-malware-s3-protected-bucket.md)
+ [Amazon S3 機能のサポート状況](supported-s3-features-malware-protection-s3.md)
+ [Malware Protection for S3 のクォータ](malware-protection-s3-quotas-guardduty.md)

# Malware Protection for S3 の料金と使用コスト
<a name="pricing-malware-protection-for-s3-guardduty"></a>

Malware Protection for S3 の料金の仕組みは、GuardDuty の他の保護プランとは異なります。GuardDuty 保護プランのほとんどが 30 日間と短期間の無料トライアルであるのに対して、 AWSの Malware Protection for S3 には 12 か月間無料利用枠のプランが用意されています。GuardDuty の料金については、「[GuardDuty の料金](guardduty-pricing.md)」を参照してください。

次に、Malware Protection for S3 を使用した場合に発生する料金コストを示します。

**無料利用枠プラン (スキャンコスト)**  
各 には 12 か月間の無料利用枠 AWS アカウント があり、各リージョンの 1 か月あたりの特定の制限までの使用量が含まれます。各 AWS アカウント は、最大 1,000 件のリクエストと 1 GB のスキャンされたデータを毎月無料利用枠で利用できます。使用量が指定された上限を超えると、その超えた分から使用コストが発生します。料金の詳細については、[GuardDuty 保護プランの料金](https://aws.amazon.com/guardduty/pricing/#GuardDuty_protection_plans)を参照してください。  
 オンデマンドスキャンは無料利用枠には含まれません。
Malware Protection for S3 を有効にした後の使用コストについては、「[Malware Protection for S3 の使用コストの確認使用コストの確認](usage-cost-malware-protection-s3-gdu.md)」を参照してください。

**S3 オブジェクトのタグ付けの使用コスト**  
Malware Protection for S3 を有効にするときに、スキャンされた S3 オブジェクトに対してタグ付けを有効にするかどうかは任意です。S3 オブジェクトのタグ付けを有効にすることにした場合、その使用に伴うコストが発生します。コストの詳細については、「*Amazon S3 の料金*」ページの「[管理と洞察](https://aws.amazon.com/s3/pricing/)」タブを参照してください。  
S3 オブジェクトのタグ付けの使用コストは、無料利用枠プランに**含まれていません**。

**Amazon S3 API - GET と PUT の使用コスト**  
GuardDuty が IAM ロールに基づいて Amazon S3 API を実行すると、使用コストが発生します。例えば、GuardDuty は IAM ロールを引き受けると、`PutObject` API を実行してテストオブジェクトを選択されたバケットに追加します。これにより、GuardDuty は機能の有効ステータスを評価できるようになります。  
での S3 API コールの料金については AWS リージョン、*Amazon S3 料金ページの*[「ストレージとリクエスト」タブの「リクエストとデータの取得](https://aws.amazon.com/s3/pricing/#aws-element-86cbc19a-da4c-4c04-bb4f-5c4d1a2de09e)」を参照してください。

# Malware Protection for S3 の使用コストの確認
<a name="usage-cost-malware-protection-s3-gdu"></a>

無料利用枠プランに定められた上限を超えて Malware Protection for S3 を使用するか、アカウントの 12 か月間無料利用枠プランが終了すると、アカウントの使用コストが発生し始めます。無料利用枠プランについては、「[Malware Protection for S3 の料金と使用コスト](pricing-malware-protection-for-s3-guardduty.md)」を参照してください。無料利用枠プランは、Malware Protection for S3 オンデマンドオブジェクトスキャンには適用されません。

GuardDuty コンソールでは、Malware Protection for S3 の使用コストを確認できません。使用コストを表示するには、[https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/) コンソールで **Cost Explorer** に移動します。 AWS アカウント 請求の詳細については、[AWS Billing 「 ユーザーガイド](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html)」を参照してください。

GuardDuty の推定使用コストについては、「[使用状況のモニタリングとコストの見積もり](monitoring_costs.md)」を参照してください。

# Malware Protection for S3 の仕組み
<a name="how-malware-protection-for-s3-gdu-works"></a>

このセクションでは、Malware Protection for S3 のコンポーネント、S3 バケットでコンポーネントを有効にした後の動作、マルウェアスキャンのステータスと結果を確認する方法について説明します。

## 概要:
<a name="overview-how-malware-protection-s3-works"></a>

自分の AWS アカウントに属する Amazon S3 バケットに対して Malware Protection for S3 を有効にできます。GuardDuty には、この機能をバケット全体で有効にする、マルウェアスキャンの範囲を特定の[オブジェクトプレフィックス](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)に制限してその選択したプレフィックスのいずれかで始まるアップロード済みのオブジェクトを個別にスキャンできるという柔軟性があります。最大 5 個のプレフィックスを追加できます。S3 バケットに対してこの機能を有効にした場合、そのバケットは**保護されたバケット**と呼ばれます。

## IAM ロールのアクセス許可
<a name="passrole-iam-permissions-malware-protection-s3"></a>

GuardDuty がユーザーに代わってマルウェアスキャンアクションを実行できるようにするには、Malware Protection for S3 で IAM ロールを使用します。マルウェアスキャンには、選択したバケットに新規にアップロードされたオブジェクトを通知する、そうしたオブジェクトをスキャンする、スキャンしたオブジェクトにオプションでタグを追加するといったアクションがあります。これは、この機能で S3 バケットを設定するための前提条件となります。

必要に応じて既存の IAM ロールを更新したり、そのために新しいロールを作成したりできます。複数のバケットに対して Malware Protection for S3 を有効にするときに、必要に応じて既存の IAM ロールを更新して他のバケットの名前を含めることができます。詳細については、「[IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md)」を参照してください。

## 必要に応じてスキャン結果に基づいてオブジェクトにタグを追加する
<a name="enable-optional-tagging-malware-protection-s3"></a>

スキャンされた S3 オブジェクトへのタグ付けを有効にできる手順があり、バケットに対して Malware Protection for S3 を有効にするときに必要に応じて実行できます。IAM ロールには、スキャン後にオブジェクトにタグを追加するためのアクセス許可が既に含まれています。ただし、GuardDuty でタグを追加できるのは、セットアップの時点でこのオプションを有効にした場合だけです。

オブジェクトがアップロードされる前に、このオプションを有効にする必要があります。スキャンが終了すると、次のキーと値のペアと共に、事前定義されたタグがスキャンされた S3 オブジェクトに追加されます。

`GuardDutyMalwareScanStatus`:`Potential scan result`

スキャン結果にタグとして追加されうる値には、`NO_THREATS_FOUND`、`THREATS_FOUND`、`UNSUPPORTED`、`ACCESS_DENIED`、`FAILED` などがあります。これらの値の詳細については、[取りうる S3 オブジェクトスキャンステータスと結果ステータス](monitoring-malware-protection-s3-scans-gdu.md#s3-object-scan-result-value-malware-protection) を参照してください。

S3 オブジェクトのスキャン結果を確認できる方法の 1 つが、タグ付けを有効にすることです。さらにこうしたタグを使用してタグベースのアクセスコントロール (TBAC) S3 リソースポリシーを追加することで、悪意の可能性があるオブジェクトに対策を講じることができます。詳細については、「[S3 バケットリソースへの TBAC の追加](tag-based-access-s3-malware-protection.md#apply-tbac-s3-malware-protection)」を参照してください。

バケットに対して Malware Protection for S3 を設定するときに、タグ付けを有効にすることをお勧めします。オブジェクトがアップロードされた後でタグ付けを有効にしても、スキャンが始まっている可能性があり、スキャンされたオブジェクトにタグが追加されることはありません。関連する S3 オブジェクトのタグ付けコストについては、「[Malware Protection for S3 の料金と使用コスト](pricing-malware-protection-for-s3-guardduty.md)」を参照してください。

## バケットに対して Malware Protection for S3 を有効にした後のプロセス
<a name="after-enabling-malware-protection-s3"></a>

Malware Protection for S3 を有効にすると、選択されている S3 バケット専用の **Malware Protection プランリソース**が作成されます。このリソースは、保護されたリソースを一意に識別する Malware Protection プラン ID に関連付けられます。GuardDuty は、IAM アクセス許可のいずれかを使用して、EventBridge マネージドルールを `DO-NOT-DELETE-AmazonGuardDutyMalwareProtectionS3*` という名前で作成および管理します。

### GuardDuty のデータ処理の仕組み - データ保護のガードレール
<a name="guardduty-data-protection-guardrails-malware-protection-s3"></a>

Malware Protection for S3 は、Amazon EventBridge 通知をリッスンします。オブジェクトが選択されているバケットまたはいずれかのプレフィックスにアップロードされると、GuardDuty が [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-share-your-services.html) を使用して S3 バケットからそのオブジェクトをダウンロードし、同じリージョン内の分離された環境で読み取り、復号化してスキャンします。スキャン環境は、インターネットへのアクセスがないロックダウンされた仮想プライベートクラウド (VPC) で動作します。VPC は、 AWS が所有する許可リストに登録されたドメインへの通信のみを許可する DNS Firewall ルールグループにアタッチされます。スキャンが終了するまで、ダウンロードされた S3 オブジェクトがスキャン環境内に [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) キーで暗号化されて一時的に保存されます。

**注記**  
デフォルトでは、「*Amazon S3 ユーザーガイド*」の「[Object Created Event type](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EventBridge.html)」にリストされているすべての Amazon S3 API が Malware Protection for S3 スキャンを開始します。  
こうした*イベントタイプ*には、[PutObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)、[POST Object](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html)、[CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)、[CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) などがあります。

GuardDuty マルウェア検出方法と使用するスキャンエンジンの詳細については、「[GuardDuty マルウェア検出のスキャンエンジン](guardduty-malware-detection-scan-engine.md)」を参照してください。

マルウェアスキャンが完了すると、スキャンメタデータにスキャンステータスに関する処理が行われ、ダウンロードされたオブジェクトのコピーが削除されます。

新しいスキャンが始まる前に、GuardDuty は毎回スキャン環境をクリーンにします。オペレータがスキャン環境にアクセスする際には条件付き認可を実施し、すべてのアクセスリクエストが確認、承認、監査されます。

### S3 オブジェクトスキャンのステータスと結果の確認
<a name="guardduty-publishing-s3-object-malware-scan-status"></a>

GuardDuty は、S3 オブジェクトスキャン結果イベントを Amazon EventBridge のデフォルトのイベントバスに発行します。また、スキャンされたオブジェクトの数やスキャンされたバイトといったスキャンメトリクスを Amazon CloudWatch に送信します。タグ付けを有効にすると、事前定義の `GuardDutyMalwareScanStatus` タグが追加されるほか、スキャン結果がタグ値として追加される可能性もあります。

**重要**  
GuardDuty は at-least-once 配信を使用します。つまり、同じオブジェクトに対して複数のスキャン結果を受け取る可能性があります。アプリケーションは、重複した結果を処理できるように設計することをお勧めします。スキャンされた各オブジェクトには 1 回だけ課金されます。

詳細については、「[Malware Protection for S3 での S3 オブジェクトスキャンのモニタリング](monitoring-malware-protection-s3-scans-gdu.md)」を参照してください。

### 生成された検出結果の確認
<a name="guardduty-malware-protection-s3-finding-detection"></a>

検出結果の確認は、GuardDuty で Malware Protection for S3 を使用しているかどうかによって異なります。次のシナリオを考えてみてください。

**GuardDuty サービスが有効になっているときに Malware Protection for S3 を使用する (ディテクター ID)**  
マルウェアスキャンによって S3 オブジェクト内で悪意の可能性があるファイルが検出されると、それに応じた検出結果が生成されます。検出結果の詳細を確認し、推奨手順に従って検出結果を修復できる可能性があります。[検出結果をエクスポートする頻度](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_exportfindings.html#guardduty_exportfindings-frequency)に基づいて、生成された検出結果が S3 バケットと EventBridge イベントバスにエクスポートされます。  
生成される検出結果タイプについては、「[Malware Protection for S3 の検出結果タイプ](gdu-malware-protection-s3-finding-types.md)」を参照してください。

**Malware Protection for S3 を独立した機能として使用する (ディテクター ID なし)**  
関連付けられたディテクター ID がないため、GuardDuty は検出結果を生成できません。S3 オブジェクトマルウェアスキャンのステータスを確認するには、デフォルトのイベントバスに自動的に発行されるスキャン結果を表示します。また、CloudWatch メトリクスを表示して、GuardDuty がスキャンしようとしたオブジェクトとバイトの数を評価することもできます。CloudWatch アラームを設定して、スキャン結果が通知されるようにすることができます。S3 オブジェクトのタグ付けを有効にしている場合は、S3 オブジェクトの `GuardDutyMalwareScanStatus` タグキーとスキャン結果のタグ値をチェックして、マルウェアスキャンのステータスを確認することもできます。  
S3 オブジェクトスキャンのステータスと結果については、「[Malware Protection for S3 での S3 オブジェクトスキャンのモニタリング](monitoring-malware-protection-s3-scans-gdu.md)」を参照してください。

# Malware Protection for S3 の機能
<a name="s3-malware-protection-capability"></a>

次に、バケットに対して Malware Protection for S3 を有効にすると、何を期待し、何をできるのかを簡単に説明します。
+ **スキャン対象の選択** - 選択した S3 バケットに関連付けられたすべてまたは特定のプレフィックス (最大 5 つ) にファイルがアップロードされると、そのファイルをスキャンします。
+ **アップロードされたオブジェクトに対する自動スキャン** - バケットに対して Malware Protection for S3 を有効にすると、GuardDuty がスキャンを自動的に開始して、新規にアップロードされたオブジェクトにマルウェアが潜んでいないかを検出します。
+ **オンデマンドスキャン** – 既存のオブジェクトのスキャンを開始するか、以前にスキャンしたオブジェクトを再スキャンできます。詳細については、「[GuardDuty でのオンデマンド S3 マルウェアスキャン](malware-protection-s3-on-demand.md)」を参照してください。
+ **コンソール、API/AWS CLI、または を使用して を有効にする CloudFormation** – Malware Protection for S3 を有効にする任意の方法を選択します。

  *Terraform* などの Infrastructure as Code (IaC) プラットフォームを使用して、Malware Protection for S3 を有効にできます。詳細については、「[リソース: `aws_guardduty_malware_protection_plan`](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/guardduty_malware_protection_plan)」を参照してください。
+ **サポートされているファイル形式、Malware Protection for S3 クォータ、Amazon S3 機能** - Malware Protection for S3 は、S3 バケットにアップロードできるすべてのファイル形式をサポートしています。アップロードされたファイルがパスワードで保護されており、かつ GuardDuty がアップロードされたファイルのタイプに対してパスワード保護の存在を検出できる場合、GuardDuty は共通のパスワードを使用して元のコンテンツのスキャンを試みます。パスワードが失敗した場合、スキャンはスキップされます。GuardDuty は、すべてのファイル形式におけるパスワード保護の有無を検出できません。GuardDuty がパスワード保護の有無を検出できない場合でも、GuardDuty は暗号化されたコンテンツをスキャンします。

  オブジェクトサイズ、アーカイブの最大深度、その他の詳細に関連するクォータについては、「[Malware Protection for S3 のクォータ](malware-protection-s3-quotas-guardduty.md)」を参照してください。

  Amazon S3 機能のサポート状況については、「[Amazon S3 機能のサポート状況](supported-s3-features-malware-protection-s3.md)」を参照してください。
+ **スキャンされた S3 オブジェクトに対するタグ付けのサポート** -[必要に応じてスキャン結果に基づいてオブジェクトにタグを追加する](how-malware-protection-for-s3-gdu-works.md#enable-optional-tagging-malware-protection-s3)を実施すると、マルウェアスキャンのたびにスキャンのステータスを示すタグが追加されます。このタグを使用すると、S3 オブジェクトに対してタグベースのアクセスコントロール (TBAC) を設定できます。例えば、悪意のあることが示され、タグ値が `THREATS_FOUND` である S3 オブジェクトへのアクセスを制限できます。
+ **Amazon EventBridge 通知** - Malware Protection プランのリソースステータスが変わるか S3 オブジェクトのマルウェアスキャンが完了すると、GuardDuty は Amazon EventBridge にイベントを送信します。これらのイベントは、デフォルトのイベントバスに送信されます。EventBridge とこうしたイベントを使用して、そのイベントの発生をモニタリングするといった対策を講じるルールを記述できます。詳細については、「[Amazon EventBridge による S3 オブジェクトスキャンのモニタリング](monitor-with-eventbridge-s3-malware-protection.md)」を参照してください。
+ **CloudWatch メトリクス** - CloudWatch メトリクスを表示して、特定のマルウェアスキャンステータスに対してアラームを有効にします。詳細については、「[CloudWatch での S3 オブジェクトスキャンのステータスメトリクス](monitor-cloudwatch-metrics-s3-malware-protection.md)」を参照してください。

# (オプション) GuardDuty Malware Protection for S3 の使用を個別に開始する (コンソールのみ)
<a name="malware-protection-s3-get-started-independent"></a>

このオプションの手順は、 AWS アカウントの GuardDuty ステータスとは関係なく Malware Protection for S3 脅威検出オプションの使用を開始する場合に使用します。

GuardDuty で他の専用の保護プランも使用する場合は、Amazon GuardDuty サービスの使用を開始する必要があります。GuardDuty 保護プランについては、「[GuardDuty の機能](what-is-guardduty.md#features-of-guardduty)」を参照してください。アカウントで GuardDuty を既に有効にしているときは、この手順をスキップして「[バケットの Malware Protection for S3 の設定](configuring-malware-protection-for-s3-guardduty.md)」を続行できます。

**Malware Protection for S3 専用脅威検出の使用を開始するための手順**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) で GuardDuty コンソールを開きます。

1. **[GuardDuty Malware Protection for S3 のみ]** を選択します。これにより、Amazon Simple Storage Service (Amazon S3) バケットに新規にアップロードされたファイルにマルウェアが含まれているかどうかを検出できます。  
![\[[GuardDuty Malware Protection for S3 のみ] オプションを選択してから [使用開始] を選択する。\]](http://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/images/select-malware-protection-for-s3-console.png)

1. **[開始する]** を選択します。これで「[バケットの Malware Protection for S3 の設定](configuring-malware-protection-for-s3-guardduty.md)」の手順を続行できるようになりました。

# バケットの Malware Protection for S3 の設定
<a name="configuring-malware-protection-for-s3-guardduty"></a>

Malware Protection for S3 が S3 オブジェクトをスキャンおよび (オプションで) タグを追加するには、ユーザーに代わってマルウェアスキャンアクションを実行するために必要なアクセス許可を持つサービスロールを使用できます。サービスロールを使用して Malware Protection for S3 を有効にする方法の詳細については、「[Service Access](https://docs.aws.amazon.com//guardduty/latest/ug/enable-malware-protection-s3-bucket.html#service-access-s3-malware-protection)」を参照してください。このロールは、[GuardDuty Malware Protection サービスにリンクされたロール](https://docs.aws.amazon.com//guardduty/latest/ug/using-service-linked-roles.html)とは異なります。

IAM ロールを使用する場合は、S3 オブジェクトをスキャンおよび (オプションで) タグを追加するのに必要なアクセス許可を含む IAM ロールをアタッチできます。その後、GuardDuty はこの IAM ロールを引き受けて、ユーザーに代わってこれらのアクションを実行します。Amazon S3 バケットでこの保護プランを有効にするときは、この IAM ロール名が必要です。

IAM ロールを使用している場合は、Amazon S3 バケットを保護するたびに、このセクションに記載された両方のステップを実行する必要があります。

Malware Protection for S3 を有効にするには、S3 バケット名、オブジェクトプレフィックス (特定のプレフィックスを集中的に保護したい場合)、必要なアクセス許可を持つ IAM ロール名などの詳細が必要です。

Malware Protection for S3 を個別に開始する場合でも、GuardDuty サービスの一部として有効にする場合でも、ステップは同じです。

**トピック**

1. [IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md)

1. [バケットの Malware Protection for S3 の有効化](enable-malware-protection-s3-bucket.md) 

1. [IAM ロールのアクセス許可エラーのトラブルシューティング](troubleshoot-malware-protection-s3-iam-role-permissions-error.md)

# バケットの Malware Protection for S3 の有効化
<a name="enable-malware-protection-s3-bucket"></a>

このセクションでは、独自のアカウントでバケットの Malware Protection for S3 を有効にする方法の詳細な手順について説明します。以下の考慮事項を確認してから作業を進めてください。
+ GuardDuty コンソールを使用してこの保護プランを有効にすると、**[サービスアクセス]** セクションで新しいロールを作成するか、既存のロールを使用するステップが含まれます。
+ GuardDuty API または CLI を使用してこの保護プランを有効にする場合は、先に進む前に [IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md) を実行する必要があります。
+ この保護プランを有効にする方法にかかわらず、必要な [Malware Protection プランリソースを作成するためのアクセス許可](#malware-protection-s3-permissions-prerequisite) が必要です。

**Amazon S3 バケットスロットリングの検討**  
S3 スロットリングは、Amazon S3 バケットとの間でデータを転送できるレートを制限する場合があります。これは、新しくアップロードしたオブジェクトのマルウェアスキャンを遅らせる可能性があります。  
S3 バケットへの大量の `GET`および `PUT`リクエストが予想される場合は、スロットリングを防ぐための対策の実施を検討してください。これを行う方法については、「*Amazon Athena ユーザーガイド*」の「[Amazon S3 スロットリングを防ぐ](https://docs.aws.amazon.com/athena/latest/ug/performance-tuning-s3-throttling.html)」を参照してください。

**Topics**

## Malware Protection プランリソースを作成するためのアクセス許可
<a name="malware-protection-s3-permissions-prerequisite"></a>

Amazon S3 バケットで Malware Protection for S3 を有効にすると、GuardDuty はバケットの保護プランの識別子として機能する Malware Protection プランリソースを作成します。[AWS 管理ポリシー: AmazonGuardDutyFullAccess\$1v2 (推奨)](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGuardDutyFullAccess-v2) をまだ使用していない場合は、次のアクセス許可を追加して、このリソースを作成する必要があります。
+ `guardDuty:CreateMalwareProtectionPlan`
+  `iam:PassRole` 

以下のカスタムポリシーの例を使用して、*プレースホルダの値*を、アカウントに適した値に置き換えることができます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/role-name",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "malware-protection-plan.guardduty.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "guardduty:CreateMalwareProtectionPlan"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## GuardDuty コンソールを使用して Malware Protection for S3 を有効にする
<a name="enabling-malware-protection-s3-guardduty-console"></a>

以下のセクションでは、GuardDuty コンソールで体験できるステップバイステップのチュートリアルを提供します。

**GuardDuty コンソールを使用して Malware Protection for S3 を有効にするには**

### S3 バケットの詳細を入力する
<a name="enter-s3-bucket-details-malware-protection"></a>

次の手順に従って、Amazon S3 バケットの詳細を指定します。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) で GuardDuty コンソールを開きます。

1. ページの右上隅にある AWS リージョン セレクターを使用して、Malware Protection for S3 を有効にするリージョンを選択します。

1. ナビゲーションペインで、**[Malware Protection for S3]** を選択します。

1. **[保護されたバケット]** セクションで、**[有効化]** を選択して、独自の AWS アカウントに属する S3 バケットの Malware Protection for S3 を有効にします。

1. **[S3 バケットの詳細を入力する]** で、**Amazon S3 バケット**名を入力します。または、**[S3 を参照]** を選択して S3 バケットを選択します。

   Malware Protection for S3 AWS アカウント を有効にする と S3 バケット AWS リージョン の は同じである必要があります。例えば、アカウントが `us-east-1` リージョンに属している場合、Amazon S3 バケットリージョンも `us-east-1` である必要があります。

1. **[プレフィックス]** では、**[S3 バケット内のすべてのオブジェクト]** または **[特定のプレフィックスで始まるオブジェクト]** を選択できます。
   + 選択したバケットに新しくアップロードされたすべてのオブジェクトを GuardDuty がスキャンできるようにするときは、**[S3 バケット内のすべてのオブジェクト]** を選択します。
   + 特定のプレフィックスに属する新しくアップロードされたオブジェクトをスキャンするときは、**[特定のプレフィックスで始まるオブジェクト]** を選択します。このオプションは、選択したオブジェクトプレフィックスのみにマルウェアスキャンの範囲を集中させるのに役立ちます。プレフィックスの使用の詳細については、「*Amazon S3 ユーザーガイド*」の「[フォルダを使用して Amazon S3 コンソールのオブジェクトを整理する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-folders.html)」を参照してください。

     **[プレフィックスの追加]** を選択し、プレフィックスを入力します。最大 5 つのプレフィックスを追加できます。

### スキャンされたオブジェクトのタグ付けを有効にする
<a name="tag-scanned-objects-s3-malware-protection"></a>

これは**任意**の手順です。オブジェクトがバケットにアップロードされる前にタグ付けオプションを有効にした場合、スキャンが完了すると、GuardDuty はキーを `GuardDutyMalwareScanStatus`、値をスキャン結果として事前定義されたタグを追加します。Malware Protection for S3 を最適に使用するには、スキャン終了後に S3 オブジェクトにタグを追加するオプションを有効にすることをお勧めします。標準の S3 オブジェクトのタグ付けコストが適用されます。詳細については、「[Malware Protection for S3 の料金と使用コスト](pricing-malware-protection-for-s3-guardduty.md)」を参照してください。

**タグ付けを有効にする理由**  
+ タグ付けを有効にすることは、マルウェアスキャンの結果を知る方法の 1 つです。S3 マルウェアスキャン結果の詳細については、「[Malware Protection for S3 での S3 オブジェクトスキャンのモニタリング](monitoring-malware-protection-s3-scans-gdu.md)」を参照してください。
+ 悪意の可能性のあるオブジェクトを含む S3 バケットにタグベースのアクセスコントロール (TBAC) ポリシーを設定します。考慮事項とタグベースのアクセスコントロール (TBAC) の実装方法については、「[Malware Protection for S3 によるタグベースのアクセスコントロール (TBAC) の使用](tag-based-access-s3-malware-protection.md)」を参照してください。

**GuardDuty による S3 オブジェクトへのタグの追加に関する考慮事項:**
+ デフォルトでは、1 つのオブジェクトに最大 10 個のタグを関連付けることができます。詳細については、「*Amazon S3 ユーザーガイド*」の「[タグを使用してストレージを分類する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html)」を参照してください。

  10 個すべてのタグが既に使用されている場合、GuardDuty はスキャンされたオブジェクトに事前定義されたタグを追加できません。GuardDuty はまた、スキャン結果をデフォルトの EventBridge イベントバスにも発行します。詳細については、「[Amazon EventBridge による S3 オブジェクトスキャンのモニタリング](monitor-with-eventbridge-s3-malware-protection.md)」を参照してください。
+ 選択した IAM ロールに GuardDuty が S3 オブジェクトにタグ付けするアクセス許可が含まれていない場合は、保護されたバケットに対してタグ付けが有効になっていても、GuardDuty はこのスキャンされた S3 オブジェクトにタグを追加できません。タグ付けに必要な IAM ロールのアクセス許可の詳細については、「[IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md)」を参照してください。

  GuardDuty はまた、スキャン結果をデフォルトの EventBridge イベントバスにも発行します。詳細については、「[Amazon EventBridge による S3 オブジェクトスキャンのモニタリング](monitor-with-eventbridge-s3-malware-protection.md)」を参照してください。

****[スキャンしたオブジェクトのタグ付け]** でオプションを選択するには**
+ GuardDuty でスキャンした S3 オブジェクトにタグを追加**する**場合は、**[オブジェクトをタグ付けする]** を選択します。
+ GuardDuty でスキャンした S3 オブジェクトにタグを追加**しない**場合は、**[オブジェクトにタグ付けしない]** を選択します。

### サービスアクセス
<a name="service-access-s3-malware-protection"></a>

次の手順に従って、既存のサービスロールを選択するか、ユーザーに代わってマルウェアスキャンアクションを実行するために必要なアクセス許可を持つ新しいサービスロールを作成します。これらのアクションには、新しくアップロードされた S3 オブジェクトのスキャンや、(オプションで) これらのオブジェクトへのタグの追加が含まれる場合があります。このロールが持つアクセス許可ポリシーについては、「[IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md)」を参照してください。

**[サービスアクセス]** セクションで、次のいずれかを実行できます。

1. **新しいサービスロールを作成して使用する** — マルウェアスキャンを実行するために必要なアクセス許可を持つ新しいサービスロールを作成および使用できます。

   **[ロール名]** では、GuardDuty によって事前入力された名前を使用するか、任意の意味のある名前を入力してロールを識別できます。例: `GuardDutyS3MalwareScanRole`。ロール名は 1～64 文字にする必要があります。有効な文字は、a～z、A～Z、0～9、および「\$1=,.@-\$1」です。

1. **既存のサービスロールを使用する** — **[サービスロール名]** リストから既存のサービスロールを選択できます。

   1. **[ポリシーテンプレート]** では、S3 バケットのポリシーを表示できます。**[S3 バケットの詳細を入力する]** セクションで S3 バケットを入力または選択したことを確認します。

   1. **[サービスロール名]** で、サービスロールのリストからサービスロールを選択します。

要件に基づいてポリシーを変更することができます。IAM ロールの作成または更新方法の詳細については、「[Create or update IAM role policy](https://docs.aws.amazon.com//guardduty/latest/ug/malware-protection-s3-iam-policy-prerequisite.html)」を参照してください。

IAM ロールのアクセス許可に関する問題については、「[IAM ロールのアクセス許可エラーのトラブルシューティング](troubleshoot-malware-protection-s3-iam-role-permissions-error.md)」を参照してください。

### (オプション) Malware Protection プラン ID にタグを付ける
<a name="tag-malware-protection-policy-id-resource-gdu"></a>

これは、S3 バケットリソース用に作成される Malware Protection プランのリソースにタグを追加するのに役立つオプションの手順です。

各タグには、タグキーとオプションのタグ値という 2 つの部分があります。タグ付けとその利点の詳細については、「 [AWS リソースのタグ付け](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)」を参照してください。

**Malware Protection プランのリソースにタグを追加するには**

1. タグの**キー**と、オプションで**値**を入力します。タグキーとタグ値は両方とも大文字と小文字が区別されます。タグキーとタグ値の名前については、「[タグの命名制限と要件](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions)」を参照してください。

1. Malware Protection プランのリソースにタグを追加するには、**[新しいタグを追加]** を選択し、前のステップを繰り返します。 リソースごとに最大 50 個のタグを追加できます。

1. **[有効化]** を選択します。

## API/CLI を使用して Malware Protection for S3 を有効にする
<a name="enabling-malware-protection-s3-guardduty-api-cli"></a>

このセクションでは、 AWS 環境で Malware Protection for S3 をプログラムで有効にする手順について説明します。これには、「[IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md)」のステップで作成した IAM ロールの Amazon リソースネーム (ARN) が必要です。

**API/CLI を使用してプログラムにより Malware Protection for S3 を有効にするには**
+ **API を使用する**

  [CreateMalwareProtectionPlan](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_CreateMalwareProtectionPlan.html) を実行して、自分のアカウントに属するバケットの Malware Protection for S3 を有効にします。
+ **を使用する AWS CLI**

  Malware Protection for S3 を有効にする方法に応じて、次のリストに特定のユースケースのコマンド AWS CLI 例を示します。これらのコマンドを実行するときは、*赤で示されているプレースホルダーの例*を、アカウントに適した値に置き換えます。

**AWS CLI コマンドの例**
  + 次の AWS CLI コマンドを使用して、スキャンされた S3 オブジェクトのタグ付けがないバケットに対して Malware Protection for S3 を有効にします。

    ```
    aws guardduty create-malware-protection-plan --role "arn:aws:iam::111122223333:role/role-name" --protected-resource "S3Bucket"={"BucketName"="amzn-s3-demo-bucket1"}
    ```
  + 次の AWS CLI コマンドを使用して、特定のオブジェクトプレフィックスがあり、スキャンされた S3 オブジェクトのタグ付けがないバケットに対して Malware Protection for S3 を有効にします。

    ```
    aws guardduty create-malware-protection-plan --role "arn:aws:iam::111122223333:role/role-name" --protected-resource '{"S3Bucket":{"BucketName":"amzn-s3-demo-bucket1", "ObjectPrefixes": ["Object1","Object1"]}}'
    ```
  + 次の AWS CLI コマンドを使用して、スキャンされた S3 オブジェクトのタグ付けが有効になっているバケットの Malware Protection for S3 を有効にします。

    ```
    aws guardduty create-malware-protection-plan --role "arn:aws:iam::111122223333:role/role-name" --protected-resource "S3Bucket"={"BucketName"="amzn-s3-demo-bucket1"} --actions "Tagging"={"Status"="ENABLED"}
    ```

  これらのコマンドの実行が成功すると、一意の Malware Protection プラン ID が生成されます。バケットの保護プランの更新や無効化などのアクションを実行するには、この Malware Protection プラン ID が必要になります。

IAM ロールのアクセス許可に関する問題については、「[IAM ロールのアクセス許可エラーのトラブルシューティング](troubleshoot-malware-protection-s3-iam-role-permissions-error.md)」を参照してください。

# IAM ロールポリシーの作成または更新
<a name="malware-protection-s3-iam-policy-prerequisite"></a>

Malware Protection for S3 が S3 オブジェクトをスキャンおよび (オプションで) タグを追加するには、ユーザーに代わってマルウェアスキャンアクションを実行するために必要なアクセス許可を持つサービスロールを使用できます。サービスロールを使用して Malware Protection for S3 を有効にする方法の詳細については、「[Service Access](https://docs.aws.amazon.com//guardduty/latest/ug/enable-malware-protection-s3-bucket.html#service-access-s3-malware-protection)」を参照してください。このロールは、[GuardDuty Malware Protection サービスにリンクされたロール](https://docs.aws.amazon.com//guardduty/latest/ug/using-service-linked-roles.html)とは異なります。

IAM ロールを使用する場合は、S3 オブジェクトをスキャンおよび (オプションで) タグを追加するのに必要なアクセス許可を含む IAM ロールをアタッチできます。こうしたアクセス許可を含めるには、IAM ロールを作成するか既存のロールを更新する必要があります。Malware Protection for S3 を有効にしている Amazon S3 バケットごとにこうしたアクセス許可が必要になるため、保護する Amazon S3 バケットごとにこの手順を実行する必要があります。

次に、アクセス許可を使用すると GuardDuty がユーザーに代わってどのようにマルウェアスキャンアクションを実行できるかを示します。
+ Amazon EventBridge アクションにより、Malware Protection for S3 が S3 オブジェクトからの通知をリッスンできるように EventBridge マネージドルールを作成および管理できます。

  詳細については、「*Amazon EventBridge ユーザーガイド*」の「[Amazon EventBridge マネージドルール](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html#eb-rules-managed)」を参照してください。
+ Amazon S3 アクションと EventBridge アクションにより、このバケットで発生するすべてのイベントについて通知を EventBridge に送信できます。

  詳細については、「*Amazon S3 ユーザーガイド*」の「[Enabling Amazon EventBridge](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-event-notifications-eventbridge.html)」を参照してください。
+ Amazon S3 アクションにより、アップロードされた S3 オブジェクトにアクセスして、スキャンされた S3 オブジェクトに事前定義の `GuardDutyMalwareScanStatus` タグを追加できます。オブジェクトプレフィックスを使用するときは、ターゲットのプレフィックスに対してのみ `s3:prefix` 条件を追加してください。これにより、GuardDuty がバケット内のすべての S3 オブジェクトにアクセスするのを防ぐことができます。
+ KMS キーのアクションにより、テストオブジェクトをスキャンしてバケットに配置する前にサポートされている DSSE-KMS と SSE-KMS による暗号化を使用してオブジェクトにアクセスできます。

**注記**  
この手順は、アカウントのバケットに対して Malware Protection for S3 を有効にするたびに必要です。既に IAM ロールが存在する場合は、そのポリシーを更新して別の Amazon S3 バケットリソースの詳細を含めることができます。その方法を示した例については、「[IAM ポリシーのアクセス許可の追加](#attach-iam-policy-s3-malware-protection)」を参照してください。

IAM ロールを作成または更新するには、次のポリシーを使用します。

**Topics**
+ [IAM ポリシーのアクセス許可の追加](#attach-iam-policy-s3-malware-protection)
+ [信頼関係ポリシーの追加](#add-iam-trust-policy-s3-malware-protection)

## IAM ポリシーのアクセス許可の追加
<a name="attach-iam-policy-s3-malware-protection"></a>

既存の IAM ロールのインラインポリシーを更新することも、新しい IAM ロールを作成することもできます。その手順については、「*IAM ユーザーガイド*」の「[IAM ロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」または「[ロールのアクセス許可ポリシーの変更](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy)」を参照してください。

次に示すアクセス許可のテンプレートを任意の IAM ロールに追加します。次のプレースホルダーの値をアカウントに関連付けられた適切な値に置き換えます。
+ *amzn-s3-demo-bucke* を Amazon S3 バケット名に置き換えます。

  複数の S3 バケットリソースに同じ IAM ロールを使用するには、次の例に示すとおりに既存のポリシーを更新します。

  ```
                      ...
                      ...
                      "Resource": [
                          "arn:aws:s3:::amzn-s3-demo-bucket/*",
                          "arn:aws:s3:::amzn-s3-demo-bucket2/*"
                      ],
                      ...
                      ...
  ```

  S3 バケットに関連付けられた新しい ARN を追加する前に、必ずカンマ (,) を追加してください。ポリシーテンプレートで S3 バケット `Resource` を参照する場合は常にこれを行ってください。
+ *111122223333* を AWS アカウント ID に置き換えます。
+ *us-east-1* を AWS リージョンに置き換えます。
+ *APKAEIBAERJR2EXAMPLE* の場合、カスタマーマネージド型キー ID に置き換えます。S3 バケットが AWS KMS キーを使用して暗号化されている場合、バケットのマルウェア保護を設定するときに[新しいロールの作成](https://docs.aws.amazon.com//guardduty/latest/ug/enable-malware-protection-s3-bucket.html)オプションを選択すると、関連するアクセス許可が追加されます。

  ```
  "Resource": "arn:aws:kms:us-east-1:111122223333:key/*"
  ```

**IAM ロールポリシーテンプレート**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "AllowManagedRuleToSendS3EventsToGuardDuty",
            "Effect": "Allow",
            "Action": [
                "events:PutRule",
                "events:DeleteRule",
                "events:PutTargets",
                "events:RemoveTargets"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:111122223333:rule/DO-NOT-DELETE-AmazonGuardDutyMalwareProtectionS3*"
            ],
            "Condition": {
                "StringLike": {
                    "events:ManagedBy": "malware-protection-plan.guardduty.amazonaws.com"
                }
            }
        },
        {
            "Sid": "AllowGuardDutyToMonitorEventBridgeManagedRule",
            "Effect": "Allow",
            "Action": [
                "events:DescribeRule",
                "events:ListTargetsByRule"
            ],
            "Resource": [
                "arn:aws:events:us-east-1:111122223333:rule/DO-NOT-DELETE-AmazonGuardDutyMalwareProtectionS3*"
            ]
        },
        {
            "Sid": "AllowPostScanTag",
            "Effect": "Allow",
            "Action": [
                "s3:PutObjectTagging",
                "s3:GetObjectTagging",
                "s3:PutObjectVersionTagging",
                "s3:GetObjectVersionTagging"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },
        {
            "Sid": "AllowEnableS3EventBridgeEvents",
            "Effect": "Allow",
            "Action": [
                "s3:PutBucketNotification",
                "s3:GetBucketNotification"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
            "Sid": "AllowPutValidationObject",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/malware-protection-resource-validation-object"
            ]
        },
        {
            "Sid": "AllowCheckBucketOwnership",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        },
        {
           "Sid": "AllowMalwareScan",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ]
        },
        {
            "Sid": "AllowDecryptForMalwareScan",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/APKAEIBAERJR2EXAMPLE",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": "s3.us-east-1.amazonaws.com"
                }
            }
        }
    ]
}
```

------

## 信頼関係ポリシーの追加
<a name="add-iam-trust-policy-s3-malware-protection"></a>

IAM ロールに次の信頼ポリシーをアタッチします。その手順については、「[ロールの信頼ポリシーの変更](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-managingrole_edit-trust-policy)」を参照してください。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "malware-protection-plan.guardduty.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# IAM ロールのアクセス許可エラーのトラブルシューティング
<a name="troubleshoot-malware-protection-s3-iam-role-permissions-error"></a>

Malware Protection for S3 を有効にすると、GuardDuty は IAM サービスロールに Amazon S3 バケットの所有権を検証するために必要なアクセス許可があるかどうかをチェックします。これらのアクセス許可がないか、正しく設定されていない場合は、以下のメッセージが表示されます。

```
"message": "The request was rejected because provided IAM role does not have the required permissions to validate S3 bucket ownership."
"type": "InvalidInputException"
```

以下のシナリオは、このエラーのトラブルシューティングに役立ちます。

**IAM ロールのアクセス許可がない**  
+ IAM ロールには、Malware Protection for S3 がロールを引き受けられるようにするために必要なアクセス許可が必要です。
+ GuardDuty は、`"s3:ListBucket"` アクセス許可を使用してバケットの所有権を検証します。これは、使用する IAM ロールに存在する必要があります。
アクセス許可については、「[IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md)」を参照してください。

**IAM ロールの可用性**  
+ 新しい IAM ロールを作成するときは、Malware Protection for S3 を有効にする前に、変更が結果整合性に達するまで数分かかります。ロールの作成直後に保護プランを有効にしようとすると、検証が失敗する可能性があります。
+ Infrastructure as Code (IaC) デプロイの場合、GuardDuty は IAM ロールが最終的な一貫性に達するようにリソースの依存関係を宣言することをお勧めします。

  これを行う方法のサンプルテンプレートについては、「[GuardDuty GitHub リポジトリ](https://github.com/aws-samples/guardduty-malware-protection/tree/main/cdk)」を参照してください。

**クロスリージョン有効化**  
Amazon S3 バケットが、GuardDuty で Malware Protection for S3 を有効にするリージョンと同じリージョンにあることを確認します。

# Malware Protection for S3 を有効にした後の手順
<a name="malware-protection-s3-steps-after-enabling"></a>

このセクションでは、バケットに対して Malware Protection for S3 を有効にした後で実行できる手順を示します。次の手順へとスムーズに進める順序になっています。

**バケットに対して Malware Protection for S3 を有効にした後で従うべき手順**

1. **タグベースのアクセスコントロール (TBAC) リソースポリシーを追加する** - タグ付けを有効にしたときは、選択されたバケットにオブジェクトがアップロードされる前に、TBAC ポリシーを S3 バケットリソースに追加してください。詳細については、「[S3 バケットリソースへの TBAC の追加](tag-based-access-s3-malware-protection.md#apply-tbac-s3-malware-protection)」を参照してください。

1. **Malware Protection プランのステータスをモニタリングする** - 保護された各バケットの **[ステータス]** 列をモニタリングします。取りうるステータスとその意味については、「[保護されたバケットのステータスの表示と理解](malware-protection-s3-bucket-status-gdu.md)」を参照してください。

1. 次のいずれかのオプションを選択して**、スキャンを開始します**。
   + **オブジェクトをアップロードする**:

     1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

     1. この機能を有効にした S3 バケットまたはオブジェクトプレフィックスにファイルをアップロードします。ファイルをアップロードする手順については、「*Amazon S3 ユーザーガイド*」の「[バケットにオブジェクトをアップロードする](https://docs.aws.amazon.com/AmazonS3/latest/userguide/uploading-an-object-bucket.html)」を参照してください。
   + **オンデマンドスキャンを開始します**。 [GuardDuty でのオンデマンド S3 マルウェアスキャン](malware-protection-s3-on-demand.md)

1. **S3 オブジェクトスキャンのステータスと結果をモニタリングする** - この手順では、S3 オブジェクトマルウェアスキャンのステータスを確認する方法について説明します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/malware-protection-s3-steps-after-enabling.html)

# GuardDuty でのオンデマンド S3 マルウェアスキャン
<a name="malware-protection-s3-on-demand"></a>

GuardDuty Malware Protection for S3 は、新しい S3 アップロードを継続的にモニタリングします。保護を有効にする前に存在していたオブジェクト、または以前にスキャンしたオブジェクトを再スキャンするには、バケットの GuardDuty Malware Protection プランを有効にしたら、オンデマンド S3 マルウェアスキャンを開始できます。

 オンデマンドマルウェアスキャンでは、Malware Protection Plan の IAM ロールを使用してオブジェクトへのアクセスと設定の適用を行います。スキャンは、バケットの Malware Protection Plan で設定されたプレフィックスを上書きします。

**注記**  
Malware Protection for S3 のクォータは、オンデマンドのマルウェアスキャンに適用されます。詳細については、「」を参照してください[Malware Protection for S3 のクォータ](malware-protection-s3-quotas-guardduty.md)。  
料金の詳細については、「[Malware Protection for S3 の料金と使用コスト](pricing-malware-protection-for-s3-guardduty.md)」を参照してください。

## 前提条件
<a name="prerequisites-malware-protection-s3-on-demand"></a>

オンデマンドマルウェアスキャンを開始する前に、アカウントが次の前提条件を満たす必要があります。
+ Malware Protection for S3 は、ターゲットバケットで有効になっています。詳細については「[バケットの Malware Protection for S3 の設定](configuring-malware-protection-for-s3-guardduty.md)」を参照してください。
+ [AWS 管理ポリシー: AmazonGuardDutyFullAccess\$1v2 (推奨)](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonGuardDutyFullAccess-v2) ポリシーは、API を呼び出す IAM ユーザーまたは IAM ロールにアタッチされます。

## オンデマンドマルウェアスキャンを開始する
<a name="malware-protection-initiate-malware-protection-s3-on-demand"></a>

[SendObjectMalwareScan](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_SendObjectMalwareScan.html) API オペレーションを使用します。これには、入力として S3 オブジェクトパスが必要です。

------
#### [ API/CLI ]

オブジェクトの最新バージョンをスキャンするか、スキャンする特定のバージョンを指定できます。

オブジェクトの特定のバージョンをスキャンするには:

```
aws guardduty send-object-malware-scan --s3-object '{"Bucket": "amzn-s3-demo-bucket", "Key": "APKAEIBAERJR2EXAMPLE", "VersionId": "d41d8cd98f00b204e9800998eEXAMPLE"}'
```

オブジェクトの最新バージョンをスキャンするには:

```
aws guardduty send-object-malware-scan --s3-object '{"Bucket": "amzn-s3-demo-bucket", "Key": "APKAEIBAERJR2EXAMPLE"}'
```

------

**重要**  
API コールが成功すると、スキャンリクエストが承諾されたことが確認されます。ただし、スキャン結果をモニタリングして正常な完了を確認し、オブジェクトへのアクセスエラーなどの問題を特定することが重要です。詳細については、「[Malware Protection for S3 での S3 オブジェクトスキャンのモニタリング](monitoring-malware-protection-s3-scans-gdu.md)」を参照してください。

# Malware Protection for S3 によるタグベースのアクセスコントロール (TBAC) の使用
<a name="tag-based-access-s3-malware-protection"></a>

バケットに対して Malware Protection for S3 を有効にするときに、必要に応じてタグ付けを有効にできます。選択されているバケットに新規にアップロードされた S3 オブジェクトをスキャンしようとすると、マルウェアスキャンのステータスを確認できるように、スキャンされたオブジェクトにタグが追加されます。タグ付けを有効にすると、すぐに使用コストが発生します。詳細については、「[Malware Protection for S3 の料金と使用コスト](pricing-malware-protection-for-s3-guardduty.md)」を参照してください。

GuardDuty は、キー付きの事前定義タグに `GuardDutyMalwareScanStatus` を使用し、値にマルウェアスキャンのステータスのいずれかを使用します。これらの値については、「[取りうる S3 オブジェクトスキャンステータスと結果ステータス](monitoring-malware-protection-s3-scans-gdu.md#s3-object-scan-result-value-malware-protection)」を参照してください。

**GuardDuty による S3 オブジェクトへのタグの追加に関する考慮事項:**
+ デフォルトでは、1 つのオブジェクトに最大 10 個のタグを関連付けることができます。詳細については、「*Amazon S3 ユーザーガイド*」の「[タグを使用してストレージを分類する](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html)」を参照してください。

  10 個すべてのタグが既に使用されている場合、GuardDuty はスキャンされたオブジェクトに事前定義されたタグを追加できません。GuardDuty はまた、スキャン結果をデフォルトの EventBridge イベントバスにも発行します。詳細については、「[Amazon EventBridge による S3 オブジェクトスキャンのモニタリング](monitor-with-eventbridge-s3-malware-protection.md)」を参照してください。
+ 選択した IAM ロールに GuardDuty が S3 オブジェクトにタグ付けするアクセス許可が含まれていない場合は、保護されたバケットに対してタグ付けが有効になっていても、GuardDuty はこのスキャンされた S3 オブジェクトにタグを追加できません。タグ付けに必要な IAM ロールのアクセス許可の詳細については、「[IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md)」を参照してください。

  GuardDuty はまた、スキャン結果をデフォルトの EventBridge イベントバスにも発行します。詳細については、「[Amazon EventBridge による S3 オブジェクトスキャンのモニタリング](monitor-with-eventbridge-s3-malware-protection.md)」を参照してください。

## S3 バケットリソースへの TBAC の追加
<a name="apply-tbac-s3-malware-protection"></a>

S3 バケットリソースポリシーを使用すると、S3 オブジェクトに対するタグベースのアクセスコントロール (TBAC) を管理できます。S3 オブジェクトにアクセスして読み取るためのアクセス権を特定のユーザーに提供できます。を使用して作成された組織がある場合は AWS Organizations、GuardDuty によって追加されたタグを誰も変更できないように強制する必要があります。詳細については、「*AWS Organizations ユーザーガイド*」の「[Preventing tags from being modified except by authorized principals](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_examples_tagging.html#example-require-restrict-tag-mods-to-admin)」を参照してください。このリンク先のトピックで使用されている例では、`ec2` について触れています。この例を使用するときは、*ec2* を `s3` に置き換えてください。

次に、TBAC を使用して何ができるかを示します。
+ Malware Protection for S3 サービスプリンシパルを除くいずれのユーザーも、次のタグキーと値のペアでまだタグ付けされていない S3 オブジェクトを読み取れないようにします。

  `GuardDutyMalwareScanStatus`:`Potential key value`
+ GuardDuty のみが、タグキーを `GuardDutyMalwareScanStatus`、値をスキャン結果としてスキャンされた S3 オブジェクトに追加できます。次のポリシーテンプレートを使用すると、アクセス権を持つ特定のユーザーにタグキーと値のペアの上書きを許可できます。

**S3 バケットリソースポリシーの例:**

サンプルポリシー内の次のプレースホルダ値を置き換えます。
+ *IAM-role-name* は、バケットに Malware Protection for S3 を設定するために使用した IAM ロールを指定します。
+ *555555555555* - 保護されたバケット AWS アカウント に関連付けられた を指定します。
+ *amzn-s3-demo-bucket* - 保護されたバケット名を指定します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "NoReadUnlessClean",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                "arn:aws:sts::555555555555:assumed-role/IAM-role-name/GuardDutyMalwareProtection",
                "arn:aws:iam::555555555555:role/IAM-role-name"
                ]
            },
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:ExistingObjectTag/GuardDutyMalwareScanStatus": "NO_THREATS_FOUND"
                }
            }
        },
        {
            "Sid": "OnlyGuardDutyCanTagScanStatus",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": [
                    "arn:aws:sts::555555555555:assumed-role/IAM-role-name/GuardDutyMalwareProtection",
                    "arn:aws:iam::555555555555:role/IAM-role-name"
                ]
            },
            "Action": "s3:PutObjectTagging",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "s3:RequestObjectTagKeys": "GuardDutyMalwareScanStatus"
                }
            }
        }
    ]
}
```

------

S3 リソースのタグ付けの詳細については、「[タグ付けとアクセスコントロールポリシー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging-and-policies.html)」を参照してください。

# 保護されたバケットのステータスの表示と理解
<a name="malware-protection-s3-bucket-status-gdu"></a>

Malware Protection for S3 をバケットに対して有効にした後、ステータスは、機能が想定どおりに設定され、機能しているかどうかを示します。このステータスは、一意の Malware Protection プラン識別子 (ID) に関連付けられます。GuardDuty は、この機能を有効にしたときにこの ID を作成します。

保護されたバケットのステータスを表示するには、以下の手順に従います。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) で GuardDuty コンソールを開きます。

1. ナビゲーションペインで、**[Malware Protection for S3]** を選択します。

1. **[保護されたバケット]** テーブルで、**S3 バケット**の対応する **[ステータス]** 列を表示します。

以下の表は、Malware Protection プランリソースに関連付けられたステータス値の一覧と説明です。これらのステータスが保護されたバケットに与える影響の意味を理解することで、オブジェクトがアップロードされたときに GuardDuty が自動マルウェアスキャンを開始するよう、より確実に設定できます。


| ステータス | 説明 | 
| --- | --- | 
|  アクティブ  |  Malware Protection for S3 で S3 バケットが正常に設定されました。 ステータスが *[アクティブ]* の場合、IAM ロールへの変更 (削除またはアクセス許可の変更) はステータスを *[警告]* または *[エラー]* に更新しません。「[S3 オブジェクトスキャンのモニタリング](monitoring-malware-protection-s3-scans-gdu.md)」で説明されている方法のいずれかを使用して、スキャンステータスを継続的にモニタリングすることをお勧めします。  | 
|  警告**[*](#fix-protection-status-s3-malware)**  |  Malware Protection for S3 は、警告が発生しても影響を受けないように設計されています。GuardDuty で新しい S3 オブジェクトが検出されると、マルウェアスキャンが開始されます。スキャンが正常に開始された後、**[ステータス]** 列の値が **[アクティブ]** に変わるまでに数分かかることがあります。**[ステータス]** 列の値が更新されると、EventBridge から通知が返されます。  | 
|  エラー**[*](#fix-protection-status-s3-malware)**  |  バケットが保護されていません。この S3 バケットに関連付けられたマルウェアスキャンが完了することはありません。根本原因は 1 つとは限りません。  | 

**\$1**発生しうる問題とその解決手順については、「[Malware Protection プランのステータスのトラブルシューティング](troubleshoot-s3-malware-protection-status-errors.md)」を参照してください。

# Malware Protection for S3 での S3 オブジェクトスキャンのモニタリング
<a name="monitoring-malware-protection-s3-scans-gdu"></a>

Malware Protection for S3 を GuardDuty ディテクター ID と共に使用している場合に、Amazon S3 オブジェクトに悪意の可能性があると、[Malware Protection for S3 の検出結果タイプ](gdu-malware-protection-s3-finding-types.md)が生成されます。GuardDuty コンソールと API を使用すると、生成された検出結果を表示できます。この検出結果タイプについては、「[検出結果の詳細](guardduty_findings-summary.md)」を参照してください。

GuardDuty を有効にせずに (ディテクター ID なしで) Malware Protection for S3 を使用した場合、スキャンした Amazon S3 オブジェクトに悪意の可能性があっても、検出結果が生成されません。

**Topics**
+ [取りうる S3 オブジェクトスキャンステータスと結果ステータス](#s3-object-scan-result-value-malware-protection)
+ [Amazon EventBridge による S3 オブジェクトスキャンのモニタリング](monitor-with-eventbridge-s3-malware-protection.md)
+ [GuardDuty マネージドタグによる S3 オブジェクトスキャンのモニタリング](monitor-enable-s3-object-tagging-malware-protection.md)
+ [CloudWatch での S3 オブジェクトスキャンのステータスメトリクス](monitor-cloudwatch-metrics-s3-malware-protection.md)

## 取りうる S3 オブジェクトスキャンステータスと結果ステータス
<a name="s3-object-scan-result-value-malware-protection"></a>

このセクションでは、取りうる S3 オブジェクトスキャンステータス値とスキャン結果値について説明します。

S3 オブジェクトスキャンのステータスはマルウェアスキャンのステータスを示し、完了、スキップ、失敗などがあります。

S3 オブジェクトマルウェアスキャンの結果ステータスは、スキャンのステータス値に基づいたスキャンの結果を示します。各マルウェアスキャンの結果ステータス値は、スキャンのステータスにマッピングされます。

次に、取りうる S3 オブジェクトスキャン結果値を示します。タグ付けを有効にした場合は、「[S3 オブジェクトタグの使用](monitor-enable-s3-object-tagging-malware-protection.md)」に従ってスキャン結果をモニタリングできます。スキャン後、タグ値は次のいずれかのスキャン結果値になります。

**S3 オブジェクトマルウェアスキャンの取りうる結果ステータス値**
+ `NO_THREATS_FOUND` - GuardDuty は、スキャンされたオブジェクトに関連付けられた潜在する脅威を検出しませんでした。
+ `THREATS_FOUND` – GuardDuty は、スキャンされたオブジェクトに関連付けられた潜在する脅威を検出しました。
+ `UNSUPPORTED` – Malware Protection for S3 がスキャンをスキップするにはいくつかの理由があります。考えられる理由としては、パスワードで保護されたファイル、極端に高い圧縮率のアーカイブ、[Malware Protection for S3 クォータ](malware-protection-s3-quotas-guardduty.md)、特定の Amazon S3 機能のサポートが利用できない場合などがあります。詳細については、「[Malware Protection for S3 の機能](s3-malware-protection-capability.md)」を参照してください。
+ `ACCESS_DENIED` – GuardDuty はこのオブジェクトにアクセスできずスキャンできません。このバケットに関連付けられている IAM ロールアクセス許可を確認してください。詳細については、「[IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md)」を参照してください。

  スキャン後の S3 オブジェクトのタグ付けを有効にしている場合は、「[S3 オブジェクトスキャン後のタグ失敗のトラブルシューティング](troubleshoot-s3-post-scan-tag-failures.md)」を参照してください。
+ `FAILED` – GuardDuty は、内部エラーのためにこのオブジェクトに対するマルウェアスキャンを実行できません。

次に、S3 オブジェクトスキャンの取りうるステータス値およびその値と S3 オブジェクトスキャンの結果とのマッピングを示します。

**S3 オブジェクトスキャンの取りうるステータス値**
+ **完了** – スキャンは正常に完了しました。S3 オブジェクトにマルウェアがあったかどうかが示されます。この場合、S3 オブジェクトスキャンの取りうる結果値は `THREATS_FOUND` または `NO_THREATS_FOUND` です。
+ **スキップ** – この S3 オブジェクトスキャンが Malware Protection for S3 でサポートされていないか、選択されているバケットにアップロードされた S3 オブジェクトにアクセスできない場合、GuardDuty はマルウェアスキャンをスキップします。

  この場合、S3 オブジェクトスキャンの取りうる結果値は `UNSUPPORTED` または `ACCESS_DENIED` です。

  必要な IAM ロールが削除された場合、GuardDuty はスキャンをスキップします。
+ **失敗** – S3 オブジェクトスキャンの結果値 `FAILED` と同じように、このスキャンステータスは内部エラーのために GuardDuty が S3 オブジェクトマルウェアスキャンを実行できなかったことを示します。

# Amazon EventBridge による S3 オブジェクトスキャンのモニタリング
<a name="monitor-with-eventbridge-s3-malware-protection"></a>

*Amazon EventBridge* は、アプリケーションをさまざまなイベントソースのデータに簡単に接続できるようにするサーバーレスイベントバスサービスです。EventBridge は、独自のアプリケーション、Software-as-a-Service (SaaS) アプリケーション、および AWS のサービスからリアルタイムデータのストリームを配信し、そのデータを Lambda などのターゲットにルーティングします。これにより、サービスで発生したイベントをモニタリングし、イベント駆動型アーキテクチャを構築できます。詳細については、「[Amazon EventBridge ユーザーガイド](https://docs.aws.amazon.com/eventbridge/latest/userguide/)」を参照してください。

Malware Protection for S3 で保護されている S3 バケットの所有者アカウントとして、GuardDuty は次のシナリオのときに EventBridge 通知をデフォルトのイベントバスに発行します。
+ 保護されたバケットのいずれかで **Malware Protection プランのリソースステータス**が変更されます。さまざまなステータスについては、「[保護されたバケットのステータスの表示と理解](malware-protection-s3-bucket-status-gdu.md)」を参照してください。

  リソースステータスに対して Amazon EventBridge (EventBridge) ルールを設定する方法については、「[Malware Protection プランのリソースステータス](#resource-status-malware-protection-s3-ev)」を参照してください。
+ **S3 オブジェクトスキャンの結果**がデフォルトの EventBridge イベントバスに発行されます。

  `s3Throttled` フィールドは、Amazon S3 からストレージをアップロードまたは取得する際に遅延があったかどうかを示します。値 `true` は遅延があったことを示し、`false` は遅延がなかったことを示します。

  スキャン結果の `s3Throttled` が `true` の場合、Amazon S3 でプレフィックスを設定して各プレフィックスの 1 秒あたりのトランザクション数 (TPS) を削減することをお勧めします。詳細については、「*Amazon S3 ユーザーガイド*」の「[設計パターンのベストプラクティス: Amazon S3 のパフォーマンスの最適化](https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance.html)」を参照してください。

  S3 オブジェクトスキャンの結果に対して Amazon EventBridge (EventBridge) ルールを設定する方法については、「[S3 オブジェクトスキャンの結果](#s3-object-scan-status-malware-protection-s3-ev)」を参照してください。
+ **スキャン後のタグ付け失敗イベント**がある場合、次の理由が考えられます。
  + IAM ロールに、オブジェクトにタグ付けするアクセス許可がありません。

    [IAM ポリシーのアクセス許可の追加](malware-protection-s3-iam-policy-prerequisite.md#attach-iam-policy-s3-malware-protection)テンプレートには、GuardDuty がオブジェクトにタグ付けするためのアクセス許可が含まれています。
  + IAM ロールに指定されているバケットリソースまたはオブジェクトが存在しなくなりました。
  + 関連付けられた S3 オブジェクトは、既にタグの最大制限に達しています。タグの制限の詳細については、「*Amazon S3 ユーザーガイド*」の「[タグを使用したストレージの分類](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html)」を参照してください。

  スキャン後のタグ付け失敗イベントに対して Amazon EventBridge (EventBridge) ルールを設定する方法については、「[スキャン後のタグ付け失敗イベント](#post-tag-failure-malware-protection-s3-ev)」を参照してください。

## EventBridge ルールの設定
<a name="set-up-malware-protection-s3-eventbridge-rules"></a>

リソースステータス、スキャン後のタグ付け失敗イベント、または S3 オブジェクトスキャンの結果を別の AWS のサービスに送信するように、アカウントに EventBridge ルールを設定できます。ステータスに変化があると、委任 GuardDuty 管理者アカウントに Malware Protection プランのリソースステータス通知が返されます。

EventBridge の標準料金が適用されます。詳細については、「[Amazon EventBridge の料金](https://aws.amazon.com/eventbridge/pricing/)」を参照してください。

*赤色*で示された値はいずれも、この例のためのプレースホルダーです。これらの値は、アカウントの値と、マルウェアが検出されたかどうかに基づいて変化します。

**Topics**
+ [Malware Protection プランのリソースステータス](#resource-status-malware-protection-s3-ev)
+ [S3 オブジェクトスキャンの結果](#s3-object-scan-status-malware-protection-s3-ev)
+ [スキャン後のタグ付け失敗イベント](#post-tag-failure-malware-protection-s3-ev)

### Malware Protection プランのリソースステータス
<a name="resource-status-malware-protection-s3-ev"></a>

次のシナリオに基づいて EventBridge イベントパターンを作成できます。

**考えられる `detail-type` 値**
+ `"GuardDuty Malware Protection Resource Status Active"`
+ `"GuardDuty Malware Protection Resource Status Warning"`
+ `"GuardDuty Malware Protection Resource Status Error"`

**イベントパターン**

```
{
      "detail-type": ["potential detail-type"],
      "source": ["aws.guardduty"]
}
```

**`GuardDuty Malware Protection Resource Status Active` の通知スキーマの例**:

```
{
    "version": "0",
    "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",
    "detail-type": "GuardDuty Malware Protection Resource Status Active",
    "source": "aws.guardduty",
    "account": "111122223333",
    "time": "2017-12-22T18:43:48Z",
    "region": "us-east-1",
    "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"],
    "detail": {
        "schemaVersion": "1.0",
        "eventTime": "2024-02-28T01:01:01Z",
        "s3BucketDetails": {
            "bucketName": "amzn-s3-demo-bucket"
        },
        "resourceStatus": "ACTIVE"
    }
}
```

**`GuardDuty Malware Protection Resource Status Warning` の通知スキーマの例**:

```
{
    "version": "0",
    "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718",
    "detail-type": "GuardDuty Malware Protection Resource Status warning",
    "source": "aws.guardduty",
    "account": "111122223333",
    "time": "2017-12-22T18:43:48Z",
    "region": "us-east-1",
    "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"],
    "detail": {
        "schemaVersion": "1.0",
        "eventTime": "2024-02-28T01:01:01Z",
        "s3BucketDetails": {
            "bucketName": "amzn-s3-demo-bucket"
        },
        "resourceStatus": "WARNING",
        "statusReasons": [
         {
            "code": "INSUFFICIENT_TEST_OBJECT_PERMISSIONS"
         }
        ]
    }
}
```

**`GuardDuty Malware Protection Resource Status Error` の通知スキーマの例**:

```
{
    "version": "0",
    "id": "fc7a35b7-83bd-3c1f-ecfa-1b8de9e7f7d2",
    "detail-type": "GuardDuty Malware Protection Resource Status Error",
    "source": "aws.guardduty",
    "account": "111122223333",
    "time": "2017-12-22T18:43:48Z",
    "region": "us-east-1",
    "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"],
    "detail": {
        "schemaVersion": "1.0",
        "eventTime": "2024-02-28T01:01:01Z",
        "s3BucketDetails": {
            "bucketName": "amzn-s3-demo-bucket"
        },
        "resourceStatus": "ERROR",
        "statusReasons": [
        {
            "code": "EVENTBRIDGE_MANAGED_EVENTS_DELIVERY_DISABLED"
        }
       ]
    }
}
```

`resourceStatus` `ERROR` の背後にある理由に基づいて、`statusReasons` の値が入力されます。

次の警告とエラーのトラブルシューティング手順については、「[Malware Protection プランのステータスのトラブルシューティング](troubleshoot-s3-malware-protection-status-errors.md)」を参照してください。

### S3 オブジェクトスキャンの結果
<a name="s3-object-scan-status-malware-protection-s3-ev"></a>

```
{
  "detail-type": ["GuardDuty Malware Protection Object Scan Result"],
  "source": ["aws.guardduty"]
}
```

**`NO_THREATS_FOUND` の通知スキーマの例**:

```
{
    "version": "0",
    "id": "72c7d362-737a-6dce-fc78-9e27a0171419",
    "detail-type": "GuardDuty Malware Protection Object Scan Result",
    "source": "aws.guardduty",
    "account": "111122223333",
    "time": "2024-02-28T01:01:01Z",
    "region": "us-east-1",
    "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"],
    "detail": {
        "schemaVersion": "1.0",
        "scanStatus": "COMPLETED",
        "resourceType": "S3_OBJECT",
        "s3ObjectDetails": {
            "bucketName": "amzn-s3-demo-bucket",
            "objectKey": "APKAEIBAERJR2EXAMPLE",
            "eTag": "ASIAI44QH8DHBEXAMPLE",
            "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE",
            "s3Throttled": false
        },
        "scanResultDetails": {
            "scanResultStatus": "NO_THREATS_FOUND",
            "threats": null
        }
    }
}
```

**`THREATS_FOUND` の通知スキーマの例**:

```
{
    "version": "0",
    "id": "72c7d362-737a-6dce-fc78-9e27a0171419",
    "detail-type": "GuardDuty Malware Protection Object Scan Result",
    "source": "aws.guardduty",
    "account": "111122223333",
    "time": "2024-02-28T01:01:01Z",
    "region": "us-east-1",
    "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"],
    "detail": {
        "schemaVersion": "1.0",
        "scanStatus": "COMPLETED",
        "resourceType": "S3_OBJECT",
        "s3ObjectDetails": {
            "bucketName": "amzn-s3-demo-bucket",
            "objectKey": "APKAEIBAERJR2EXAMPLE",
            "eTag": "ASIAI44QH8DHBEXAMPLE",
            "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE",
            "s3Throttled": false
        },
        "scanResultDetails": {
            "scanResultStatus": "THREATS_FOUND",
            "threats": [
                {
                    "name": "EICAR-Test-File (not a virus)"
                }
            ]
        }
    }
}
```

**注記**  
`scanResultDetails.Threats` フィールドには、脅威が 1 つのみ含まれています。Malware Protection for S3 スキャンでは、デフォルトでは最初に検出された脅威が報告されます。この後、`scanStatus` は `COMPLETED` に設定されます。

**スキャン結果ステータス `UNSUPPORTED` の通知スキーマの例 (スキップ)**:

```
{
    "version": "0",
    "id": "72c7d362-737a-6dce-fc78-9e27a0EXAMPLE",
    "detail-type": "GuardDuty Malware Protection Object Scan Result",
    "source": "aws.guardduty",
    "account": "111122223333",
    "time": "2024-02-28T01:01:01Z",
    "region": "us-east-1",
    "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"],
    "detail": {
        "schemaVersion": "1.0",
        "scanStatus": "SKIPPED",
        "resourceType": "S3_OBJECT",
        "s3ObjectDetails": {
            "bucketName": "amzn-s3-demo-bucket",
            "objectKey": "APKAEIBAERJR2EXAMPLE",
            "eTag": "ASIAI44QH8DHBEXAMPLE",
            "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE",
            "s3Throttled": false
        },
        "scanResultDetails": {
            "scanResultStatus": "UNSUPPORTED",
            "threats": null
        }
    }
}
```

**スキャン結果ステータス `ACCESS_DENIED` の通知スキーマの例 (スキップ)**:

```
{
    "version": "0",
    "id": "72c7d362-737a-6dce-fc78-9e27a0EXAMPLE",
    "detail-type": "GuardDuty Malware Protection Object Scan Result",
    "source": "aws.guardduty",
    "account": "111122223333",
    "time": "2024-02-28T01:01:01Z",
    "region": "us-east-1",
    "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"],
    "detail": {
        "schemaVersion": "1.0",
        "scanStatus": "SKIPPED",
        "resourceType": "S3_OBJECT",
        "s3ObjectDetails": {
            "bucketName": "amzn-s3-demo-bucket",
            "objectKey": "APKAEIBAERJR2EXAMPLE",
            "eTag": "ASIAI44QH8DHBEXAMPLE",
            "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE",
            "s3Throttled": false
        },
        "scanResultDetails": {
            "scanResultStatus": "ACCESS_DENIED",
            "threats": null
        }
    }
}
```

**スキャン結果ステータス `FAILED` の通知スキーマの例**:

```
{
    "version": "0",
    "id": "72c7d362-737a-6dce-fc78-9e27a0EXAMPLE",
    "detail-type": "GuardDuty Malware Protection Object Scan Result",
    "source": "aws.guardduty",
    "account": "111122223333",
    "time": "2024-02-28T01:01:01Z",
    "region": "us-east-1",
    "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"],
    "detail": {
        "schemaVersion": "1.0",
        "scanStatus": "FAILED",
        "resourceType": "S3_OBJECT",
        "s3ObjectDetails": {
            "bucketName": "amzn-s3-demo-bucket",
            "objectKey": "APKAEIBAERJR2EXAMPLE",
            "eTag": "ASIAI44QH8DHBEXAMPLE",
            "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE",
            "s3Throttled": false
        },
        "scanResultDetails": {
            "scanResultStatus": "FAILED",
            "threats": null
        }
    }
}
```

### スキャン後のタグ付け失敗イベント
<a name="post-tag-failure-malware-protection-s3-ev"></a>

**イベントパターン**:

```
{
      "detail-type": "GuardDuty Malware Protection Post Scan Action Failed",
      "source": "aws.guardduty"
 }
```

**`ACCESS_DENIED` の通知スキーマの例**:

```
{
    "version": "0",
    "id": "746acd83-d75c-5b84-91d2-dad5f13ba0d7",
    "detail-type": "GuardDuty Malware Protection Post Scan Action Failed",
    "source": "aws.guardduty",
    "account": "111122223333",
    "time": "2024-06-10T16:16:08Z",
    "region": "us-east-1",
    "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"],
    "detail": {
        "schemaVersion": "1.0",
        "eventTime": "2024-06-10T16:16:08Z",
        "s3ObjectDetails": {
            "bucketName": "amzn-s3-demo-bucket",
            "objectKey": "2024-03-10-16-16-00-7D723DE8DBE9Y2E0",
            "eTag": "0e9eeec810ad8b61d69112c15c2a5hb6",
            "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE",
            "s3Throttled": false
        },
        "postScanActions": [{
            "actionType": "TAGGING",
            "failureReason": "ACCESS_DENIED"
        }]
    }
}
```

**`MAX_TAG_LIMIT_EXCEEDED` の通知スキーマの例**:

```
{
    "version": "0",
    "id": "746acd83-d75c-5b84-91d2-dad5f13ba0d7",
    "detail-type": "GuardDuty Malware Protection Post Scan Action Failed",
    "source": "aws.guardduty",
    "account": "111122223333",
    "time": "2024-06-10T16:16:08Z",
    "region": "us-east-1",
    "resources": ["arn:aws:guardduty:us-east-1:111122223333:malware-protection-plan/b4c7f464ab3a4EXAMPLE"],
    "detail": {
        "schemaVersion": "1.0",
        "eventTime": "2024-06-10T16:16:08Z",
        "s3ObjectDetails": {
            "bucketName": "amzn-s3-demo-bucket",
            "objectKey": "2024-03-10-16-16-00-7D723DE8DBE9Y2E0",
            "eTag": "0e9eeec810ad8b61d69112c15c2a5hb6",
            "versionId" : "d41d8cd98f00b204e9800998eEXAMPLE",
            "s3Throttled": false
        },
        "postScanActions": [{
            "actionType": "TAGGING",
            "failureReason": "MAX_TAG_LIMIT_EXCEEDED"
        }]
    }
}
```

こうした失敗理由をトラブルシューティングするには、「[S3 オブジェクトスキャン後のタグ失敗のトラブルシューティング](troubleshoot-s3-post-scan-tag-failures.md)」を参照してください。

# GuardDuty マネージドタグによる S3 オブジェクトスキャンのモニタリング
<a name="monitor-enable-s3-object-tagging-malware-protection"></a>

タグ付けを有効にするオプションを使用すると、GuardDuty でマルウェアスキャンの完了後に Amazon S3 オブジェクトにタグを追加できるようになります。

**タグ付けを有効にする際の考慮事項**
+ GuardDuty で S3 オブジェクトにタグ付けする際、それに伴う使用コストが発生します。詳細については、「[Malware Protection for S3 の料金と使用コスト](pricing-malware-protection-for-s3-guardduty.md)」を参照してください。
+ このバケットに関連付けられた優先 IAM ロールで必要なタグ付けのアクセス許可を保持する必要があります。保持しない場合、GuardDuty はスキャンしたオブジェクトにタグを追加できません。この IAM ロールには、スキャンされた S3 オブジェクトにタグを追加するためのアクセス許可が既に含まれています。詳細については、「[IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md)」を参照してください。
+ デフォルトでは、1 つの S3 オブジェクトに最大 10 個のタグを関連付けることができます。詳細については、「[タグベースのアクセスコントロール (TBAC) の使用](tag-based-access-s3-malware-protection.md)」を参照してください。

S3 バケットまたは特定のプレフィックスに対してタグ付けを有効にした後で、新規にアップロードされたオブジェクトをスキャンすると、そのオブジェクトに次のキーと値のペアの形式でタグが関連付けられます。

`GuardDutyMalwareScanStatus`:`Scan-Result-Status`

タグが取りうる値については、「[取りうる S3 オブジェクトスキャンステータスと結果ステータス](monitoring-malware-protection-s3-scans-gdu.md#s3-object-scan-result-value-malware-protection)」を参照してください。

# Malware Protection for S3 における S3 オブジェクトスキャン後のタグ失敗のトラブルシューティング
<a name="troubleshoot-s3-post-scan-tag-failures"></a>

このセクションの内容は、保護されたバケットで「[スキャンされたオブジェクトのタグ付けを有効にする](enable-malware-protection-s3-bucket.md#tag-scanned-objects-s3-malware-protection)」を実施した場合にのみ当てはまります。

GuardDuty がスキャンした S3 オブジェクトにタグを追加しようとしたときに、タグ付けのアクションが失敗することがあります。バケットでこれが発生する理由として、`ACCESS_DENIED` と `MAX_TAG_LIMIT_EXCEEDED` が考えられます。以降のトピックでは、こうしたスキャン後のタグ付け失敗の考えられる理由とそのトラブルシューティングについて説明します。

**ACCESS\$1DENIED**  
次に、この問題の原因として考えられる理由を示します。  
+ この保護された S3 バケットで使用される IAM ロールに **AllowPostScanTag** アクセス許可がありません。関連付けられた IAM ロールでこのバケットポリシーが使用されていることを確認します。詳細については、「[IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md)」を参照してください。
+ 保護された S3 バケットポリシーが使用されている場合、GuardDuty でこのオブジェクトにタグを追加することはできません。
+ スキャンされた S3 オブジェクトが存在しなくなりました。

**MAX\$1TAG\$1LIMIT\$1EXCEEDED**  
デフォルトでは、1 つの S3 オブジェクトに最大 10 個のタグを関連付けることができます。詳細については、「[スキャンされたオブジェクトのタグ付けを有効にする](enable-malware-protection-s3-bucket.md#tag-scanned-objects-s3-malware-protection)」の「GuardDuty による S3 オブジェクトへのタグの追加に関する考慮事項」を参照してください。

# CloudWatch での S3 オブジェクトスキャンのステータスメトリクス
<a name="monitor-cloudwatch-metrics-s3-malware-protection"></a>

raw データを収集して読み取り可能なほぼリアルタイムのメトリクスに処理する CloudWatch を使用して GuardDuty をモニタリングできます。これらの統計は 15 か月間保持されるため、履歴情報にアクセスして Malware Protection for S3 の動作状況をより的確に把握できます。また、特定のしきい値を監視するアラームを設定し、これらのしきい値に達したときに通知を送信したりアクションを実行したりできます。詳細については、「[Amazon CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/)」を参照してください。

Malware Protection for S3 の CloudWatch メトリクスをリソースレベルで使用できます。こうしたメトリクスを保護されたリソースごとに個別にクエリできます。メトリクスは、`AWS/GuardDuty/MalwareProtection` 名前空間に報告されます。特定のリソースにアラームを設定して、セキュリティ体制をモニタリングできます。


| 
| 
| **マルウェアスキャンのステータスメトリクス**  | 
| --- |
|  **メトリクス**  |  **説明**  | 
|  `CompletedScanCount`  |  特定の時間枠で完了した S3 オブジェクトマルウェアスキャンの数。 有効なディメンション:   `Malware Protection Plan Id` `Resource Name`   単位: カウント  | 
|  `FailedScanCount`  |  特定の時間枠で失敗した S3 オブジェクトマルウェアスキャンの数。 **有効なディメンション**:   `Malware Protection Plan Id` `Resource Name`   単位: カウント  | 
|  `SkippedScanCount`  |  特定の時間枠でスキップされた S3 オブジェクトマルウェアスキャンの数。 **有効なディメンション**:   `Malware Protection Plan Id` `Resource Name` `Skipped Reason`  考えられる 値  `Unsupported`   `MissingPermissions`     単位: カウント  | 
| **マルウェアスキャンの結果メトリクス**  | 
| --- |
|  `InfectedScanCount`  |  特定の時間枠で悪意の可能性があるオブジェクトを検出した S3 オブジェクトマルウェアスキャンの数。 有効なディメンション:   `Malware Protection Plan Id` `Resource Name`   単位: カウント  | 
|  `CompletedScanBytes`  |  特定の時間枠でスキャンされた S3 オブジェクトバイトの数。 有効なディメンション:   `Malware Protection Plan Id` `Resource Name`   単位: カウント  | 

**注記**  
CloudWatch メトリクスの統計は、デフォルトでは AVG です。

Malware Protection for S3 メトリクスでは、次のディメンションがサポートされています。


| 
| 
| **ディメンション** | **説明** | 
| --- |--- |
|  Malware Protection プラン ID  |  保護されたリソースに対して Malware Protection プランのリソースが作成された場合に、そのリソースに関連付けられる一意の識別子。  | 
|  リソース名  |  保護されたリソースの名前。  | 
|  スキップされた理由  |  S3 オブジェクトマルウェアスキャンがスキップされた理由。  考えられる 値  `Unsupported`   `MissingPermissions`    | 

こうしたメトリクスにアクセスしてクエリする方法については、「*Amazon CloudWatch ユーザーガイド*」の「[Amazon CloudWatch Metrics の使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)」を参照してください。

アラームの設定の詳細については、「*Amazon CloudWatch ユーザーガイド*」の「[Amazon CloudWatch アラームの使用](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)」を参照してください。

# トラブルシューティング
<a name="troubleshoot-s3-malware-protection"></a>

**Topics**
+ [Malware Protection プランのステータスのトラブルシューティング](troubleshoot-s3-malware-protection-status-errors.md)
+ [オンデマンドマルウェアスキャンのトラブルシューティング](troubleshoot-s3-malware-protection-on-demand.md)

# Malware Protection プランのステータスのトラブルシューティング
<a name="troubleshoot-s3-malware-protection-status-errors"></a>

GuardDuty は、保護されたバケットを対象にランキングに基づいて **[ステータス]** を表示します。例えば、保護されたバケットで **[エラー]** カテゴリと **[警告]** カテゴリの両方で問題が発生している場合、GuardDuty は最初に **[エラー]** ステータスに関連付けられている問題を表示します。

次に、Malware Protection プランのステータスのエラーと警告を示します。

**エラー**  
+ [この S3 バケットに対して EventBridge 通知は無効](#eventbridge-notification-disabled-malware-protection-s3-error)
+ [S3 バケットイベントを受け取るための EventBridge マネージドルールがない](#eventbridge-managed-rule-missing-malware-protection-s3-error)
+ [S3 バケットがもう存在しない](#bucket-no-longer-exists-malware-protection-s3-error)

**警告**  
[テストオブジェクトを配置できない](#unable-put-test-object-malware-protection-s3-warning)

## この S3 バケットに対して EventBridge 通知は無効
<a name="eventbridge-notification-disabled-malware-protection-s3-error"></a>

関連付けられたステータス理由コードは `EVENTBRIDGE_MANAGED_EVENTS_DELIVERY_DISABLED` です。

**ステータスの詳細**  
GuardDuty は、EventBridge を使用して、この S3 バケットに新しいオブジェクトがアップロードされたら通知を受け取るようにしています。このアクセス許可は IAM ロールにありません。

**トラブルシューティングするための手順**  
**オプション 1: IAM ロールに次のアクセス許可ステートメントを追加する:**  

```
{
          "Sid": "AllowEnableS3EventBridgeEvents",
          "Effect": "Allow",
          "Action": [
             "s3:PutBucketNotification",
             "s3:GetBucketNotification"
             ],
          "Resource": [
             "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
}
```
*amzn-s3-demo-bucket* を実際の Amazon S3 バケット名に置き換えてください。  

**オプション 2: Amazon S3 コンソールを使用して EventBridge 通知を有効にする**

1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. **[バケット]** ページの **[汎用バケット]** タブで、このエラーに関連付けられているバケット名を選択します。

1. この [バケット] ページで、**[プロパティ]** タブを選択します。

1. **[Amazon EventBridge]** セクションで、**[編集]** を選択します。

1. **[Amazon EventBridge の編集]** ページで、**[このバケット内のすべてのイベントについて Amazon EventBridge に通知を送信する]** に対して **[オン]** を選択します。

1. **[Save changes]** (変更の保存) をクリックします。
**[ステータス]** 列の値が **[アクティブ]** に変わるまでに数分かかることがあります。

## S3 バケットイベントを受け取るための EventBridge マネージドルールがない
<a name="eventbridge-managed-rule-missing-malware-protection-s3-error"></a>

関連付けられたステータス理由コードは `EVENTBRIDGE_MANAGED_RULE_DISABLED` です。

 **ステータスの詳細**   
EventBridge ルール設定を管理するための EventBridge マネージドルールのアクセス許可がありません。

**トラブルシューティングするための手順**  
IAM ロールに次のアクセス許可ステートメントを追加します。  

```
{
         "Sid": "AllowManagedRuleToSendS3EventsToGuardDuty",
        "Effect": "Allow",
        "Action": [
                "events:PutRule",
                "events:DeleteRule",
                "events:PutTargets",
                "events:RemoveTargets"
            ],
        "Resource": [
           "arn:aws:events:*:*:rule/DO-NOT-DELETE-AmazonGuardDutyMalwareProtectionS3*"
           ],
        "Condition": {
           "StringEquals": {
              "events:ManagedBy": "malware-protection-plan.guardduty.amazonaws.com"
              }
           }
}
```
**[ステータス]** 列の値が **[アクティブ]** に変わるまでに数分かかることがあります。

## S3 バケットがもう存在しない
<a name="bucket-no-longer-exists-malware-protection-s3-error"></a>

関連付けられたステータス理由コードは `PROTECTED_RESOURCE_DELETED` です。

 **ステータスの詳細**   
この S3 バケットは、アカウントから削除されてもう存在していません。

 **トラブルシューティングするための手順**   
S3 バケットを意図せずに削除してしまった場合は、Amazon S3 コンソールを使用して新しいバケットを作成できます。  
バケットを正常に作成したら、「[バケットの Malware Protection for S3 の設定](configuring-malware-protection-for-s3-guardduty.md)」ページの手順を実行して Malware Protection for S3 を有効にします。

## テストオブジェクトを配置できない
<a name="unable-put-test-object-malware-protection-s3-warning"></a>

関連付けられたステータス理由コードは `INSUFFICIENT_TEST_OBJECT_PERMISSIONS` です。

**注記**  
テストオブジェクトを追加するためのアクセス許可はオプションです。このアクセス許可が IAM ロールにない場合、新規にアップロードされたオブジェクトに対して Malware Protection for S3 がマルウェアスキャンを開始するのを防ぐことができません。スキャンが正常に始まると、Malware Protection プランの **[ステータス]** が **[警告]** から **[アクティブ]** に変わるまでに数分かかることがあります。  
このアクセス許可が IAM ロールに既に含まれている場合、この警告は制限的な Amazon S3 バケットポリシーにより、この S3 バケットにテストオブジェクトを配置するための IAM アクセスが許可されないことを示します。

**ステータスの詳細**  
GuardDuty では、選択されているバケットの設定を確認するために、バケットにテストオブジェクトが配置されます。

**トラブルシューティングするための手順**  
欠落しているアクセス許可を含めるように IAM ロールを更新することもできます。選択されている IAM ロールに次のアクセス許可を追加すると、GuardDuty が選択されているリソースにテストオブジェクトを配置できるようになります。  

```
{
         "Sid": "AllowPutValidationObject",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject"
           ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket/malware-protection-resource-validation-object"
           ]
}
```
*amzn-s3-demo-bucket* を実際の Amazon S3 バケット名に置き換えてください。IAM ロールアクセス許可については、「[IAM ロールポリシーの作成または更新](malware-protection-s3-iam-policy-prerequisite.md)」を参照してください。  
**[ステータス]** 列の値が **[アクティブ]** に変わるまでに数分かかることがあります。

# オンデマンドマルウェアスキャンのトラブルシューティング
<a name="troubleshoot-s3-malware-protection-on-demand"></a>

## スキャンを開始できません。
<a name="w2aac23c33b7b3"></a>

スキャンリクエストに有効な入力が含まれており、バケットに対して Malware Protection Plan が有効になっていることを確認してください。

# 保護されたバケットの Malware Protection プランの編集
<a name="edit-malware-protection-protected-s3-bucket"></a>

優先 IAM アクセス許可ポリシーの編集、スキャンされた S3 オブジェクトのタグ付けの有効化または削除、あるいは S3 オブジェクトプレフィックスの追加または削除が必要になる場合があります。例えば、バケットの Malware Protection for S3 を有効にした場合、スキャンされた S3 オブジェクトへのスキャン結果のタグ付けを有効にしないことになります。しかし、ここで、GuardDuty で事前定義されたタグとスキャン結果をタグ値として追加する必要が生じたとします。

任意のアクセス方法を選択して、保護された S3 バケットの Malware Protection プランを更新します。

------
#### [ Console ]

**Malware Protection プランを編集するには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) で GuardDuty コンソールを開きます。

1. ナビゲーションペインで、**[Malware Protection for S3]** を選択します。

1. **[保護されたバケット]** で、既存の設定を編集するバケットを選択します。

1. **[編集]** を選択します。

1. バケットの既存の構成と設定を更新し、変更を確認します。各セクションの説明と手順については、「[バケットの Malware Protection for S3 の有効化](enable-malware-protection-s3-bucket.md)」を参照してください。

   この保護されたバケットの **[ステータス]** 列をモニタリングします。**[警告]** または **[エラー]** として表示される場合は、「[Malware Protection プランのステータスのトラブルシューティング](troubleshoot-s3-malware-protection-status-errors.md)」を参照してください。

------
#### [ API/CLI ]

**API または を使用して Malware Protection プランを編集するには AWS CLI**
+ **API を使用する場合**

  このプランのリソースに関連付けられた Malware Protection プラン ID を使用して、[UpdateMalwareProtectionPlan](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_UpdateMalwareProtectionPlan.html) API を実行します。

  特定のリージョンの Malware Protection プラン ID を取得するには、そのリージョンで [ListMalwareProtectionPlans](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListMalwareProtectionPlans.html) API を実行できます。
+ **を使用する AWS CLI**

  次のリストは、Malware Protection プランリソースを更新するためのコマンド AWS CLI の例を示しています。S3 バケットに関連付けられた Malware Protection プラン ID が必要になります。

**AWS CLI コマンドの例**
  + 次の AWS CLI コマンドを使用して、S3 バケットに関連付けられた Malware Protection プランリソースのタグ付けを**有効または無効に**します。

    ```
    aws guardduty update-malware-protection-plan --malware-protection-plan-id 4cc8bf26c4d75EXAMPLE --actions "Tagging"={"Status"="ENABLED|DISABLED"}
    ```
  + 次の AWS CLI コマンドを使用して、S3 バケットに関連付けられた Malware Protection プランリソースに**オブジェクトプレフィックスを追加します**。

    ```
    aws guardduty update-malware-protection-plan --malware-protection-plan-id 4cc8bf26c4d75EXAMPLE --protected-resource "S3Bucket"={"ObjectPrefixes"=["amzn-s3-demo-1", "amzn-s3-demo-2"]}
    ```

    このコマンドには既存のオブジェクトプレフィックスを必ず含めてください。含めない場合、GuardDuty は Malware Protection プランリソースを編集するときにそれらのプレフィックスを削除します。
  + 次の AWS CLI コマンドを使用して、S3 バケットに関連付けられた Malware Protection プランリソースから**オブジェクトプレフィックスを削除します**。

    ```
    aws guardduty update-malware-protection-plan --malware-protection-plan-id 4cc8bf26c4d75EXAMPLE --protected-resource "S3Bucket"={"ObjectPrefixes"=[""]}
    ```

  このリソースの Malware Protection プラン ID がまだない場合は、次の AWS CLI コマンドを実行し、*us-east-1* を Malware Protection プラン IDs。

  ```
  aws guardduty list-malware-protection-plans --region us-east-1
  ```

------

# 保護されたバケットの Malware Protection for S3 の無効化
<a name="disable-malware-s3-protected-bucket"></a>

保護されたバケットの Malware Protection for S3 を無効にすると、GuardDuty はそのバケットに関連付けられた Malware Protection プラン ID を削除します。新しいオブジェクトがこのバケットまたは選択したオブジェクトプレフィックスのいずれかにアップロードされた場合、GuardDuty はマルウェアスキャンを開始しません。

GuardDuty を有効にしていて、これから GuardDuty を一時停止または無効にしたい場合は、「[GuardDuty の停止または無効化](guardduty_suspend-disable.md)」を参照してください。Malware Protection for S3 にはディテクター ID の概念がないため、GuardDuty を無効または一時停止しても、アカウントの保護されたバケットのステータスには影響**しません**。Malware Protection for S3 機能は、関連する標準料金で引き続き単独で使用できます。詳細については、「[Malware Protection for S3 の使用コストの確認使用コストの確認](usage-cost-malware-protection-s3-gdu.md)」を参照してください。Malware Protection for S3 の使用を停止するには、アカウント内のすべての保護されたバケットに対して無効にする必要があります。GuardDuty を引き続き使用してバケットの Malware Protection for S3 のみを無効にする場合、次のステップは GuardDuty サービスの設定や、有効にしたその他の保護プランには影響しません。

任意のアクセス方法を選択して、保護対象の S3 バケットで Malware Protection for S3 を無効にします。

------
#### [ Console ]

**GuardDuty コンソールを使用して Malware Protection for S3 を無効にするには**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) で GuardDuty コンソールを開きます。

1. ナビゲーションペインで、**[Malware Protection for S3]** を選択します。

1. **[保護されたバケット]** で、Malware Protection for S3 を無効にするバケットを選択します。

   一度に選択できる保護されたバケットは 1 つだけです。複数のバケットで Malware Protection for S3 を無効にするには、別の S3 バケットに対して再度これらのステップを実行します。

1. **[無効にする]** を選択して、選択を確定します。

------
#### [ API/CLI ]

**API または を使用して Malware Protection for S3 を無効にするには AWS CLI**
+ **API を使用する場合**

  このプランリソースに関連付けられている Malware Protection プラン ID を使用して [DeleteMalwareProtectionPlan](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_DeleteMalwareProtectionPlan.html) API を実行します。

  Malware Protection プラン ID を取得するには、[ListMalwareProtectionPlans](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListMalwareProtectionPlans.html) API を実行できます。
+ **を使用する AWS CLI**

  または、次の AWS CLI コマンドを実行して、*4cc8bf26c4d75EXAMPLE* をこの S3 バケットに関連付けられた Malware Protection プラン ID に置き換えることで、Malware Protection for S3 を無効にすることもできます。

  ```
  aws guardduty delete-malware-protection-plan --malware-protection-plan-id 4cc8bf26c4d75EXAMPLE
  ```

  この S3 バケットの Malware Protection プラン ID がまだない場合は、次の AWS CLI コマンドを実行し、*us-east-1* を Malware Protection プラン IDs を一覧表示するリージョンに置き換えることができます。

  ```
  aws guardduty list-malware-protection-plans --region us-east-1
  ```

------

# Amazon S3 機能のサポート状況
<a name="supported-s3-features-malware-protection-s3"></a>

次の表に、Malware Protection for S3 がリストされている Amazon S3 機能をサポートしているかどうかを示します。


| S3 機能の名前 | サポートが受けられるか | 説明 | 
| --- | --- | --- | 
|  S3 ストレージクラス - S3 Standard S3 ストレージクラス - S3 Standard-Infrequent Access S3 ストレージクラス - S3 One Zone-Infrequent Access S3 ストレージクラス - S3 Glacier Instant Retrieval  |  はい  |  S3 オブジェクトは、非同期に復元しなくても取得できます。  | 
|  S3 ストレージクラス - S3 Intelligent-Tiering  |  条件付き  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/supported-s3-features-malware-protection-s3.html)  | 
|  S3 ストレージクラス - S3 Express One Zone (ディレクトリバケット)  |  いいえ  |  GuardDuty は、Malware Protection for S3 の汎用バケットのみをサポートします。  | 
|  S3 ストレージクラス - S3 Glacier Flexible Retrieval S3 ストレージクラス - S3 Glacier Deep Archive  |  いいえ  |  S3 オブジェクトにアクセスするには、事前に復元しておく必要があります。  | 
|  Amazon S3 on Outposts  |  いいえ  |  Malware Protection for S3 は、Outposts ではサポートされていません。  | 
|  S3 バージョニング  |  はい  |  アップロードされたすべての S3 オブジェクトが、マルウェアがないかスキャンされます。ファイルバージョン v1 でオブジェクトをアップロードした後、すぐに v2 で上書きした別のバージョンをアップロードした場合は、ファイルバージョン v1 と v2 の両方のオブジェクトがスキャンされます。ただし、スキャン開始時刻が同じ順序になるとは限りません。  | 
|  S3 レプリケーション - レプリケートされたオブジェクトのスキャン  |  はい  |  レプリケート先のバケットが保護されたリソースである場合、すべての S3 オブジェクトがスキャンされてから、保護およびモニタリングの対象であるプレフィックスにレプリケートされます。  | 
|  S3 レプリケーション: スキャン結果タグに基づくレプリケート  |  いいえ  |  レプリケーションルールをスキャン結果タグに基づいて定義することはできません。Amazon S3 は、作成時を除き、タグのレプリケーションをサポートしていません。  | 
|  データ暗号化 - S3-SSE データ暗号化 - SSE-KMS データ暗号化 - DSSE-KMS AWS KMS - カスタマーマネージドキー  |  はい  |  GuardDuty は、マネージドキーおよびカスタマーマネージドキーで暗号化された S3 オブジェクトのマルウェアスキャンをサポートしています。こうしたキーを使用するためのアクセス許可を IAM ロールに必ず含めてください。詳細については、「[IAM ポリシーのアクセス許可の追加](malware-protection-s3-iam-policy-prerequisite.md#attach-iam-policy-s3-malware-protection)」を参照してください。  | 
|  データ暗号化 - SSE-C  |  いいえ  |  Malware Protection for S3 は、アクセスできないキーで暗号化された S3 オブジェクトのスキャンをサポートしていません。  | 
|  クライアント側の暗号化  |  いいえ  |  Amazon S3 Encryption Client を使用して Amazon S3 オブジェクトを暗号化すると、そのオブジェクトが AWSを含め第三者に公開されることはありません。これがサポートされていない理由の詳細については、「[クライアント側の暗号化を使用したデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html)」を参照してください。  CSE-KMS 暗号化オブジェクトは暗号化を判別できない暗号化された BLOB として受信されます。したがって、GuardDuty はそれらを受信するとすぐに処理し、暗号化された BLOB を通常のファイルとしてスキャンします。GuardDuty は、[Malware Protection for S3 のクォータ](malware-protection-s3-quotas-guardduty.md) のいずれかが超過しない限り、そのようなオブジェクトの `UNSUPPORTED` スキャンステータスを返しません。   | 
|  S3 オブジェクトのロックとリーガルホールド  |  はい  |  ロックされた S3 オブジェクトは、Write Once Read Many (WORM) に基づいてロックされます。Malware Protection for S3 は、こうしたオブジェクトにアクセスしてスキャンできます。  | 
|  リクエスタ支払い  |  はい  |  Malware Protection for S3 では、*リクエスタ支払い*で設定されたバケットをスキャンできます。リクエスタは、S3 の呼び出しに対して料金を支払います。詳細については、「*Amazon S3 ユーザーガイド*」の「[ストレージ転送と使用量のリクエスタ支払いバケットの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html)」を参照してください。  | 
|  S3: ストレージライフサイクル  |  はい  |  ライフサイクルポリシーをスキャン結果タグに基づいて定義できます。例えば、悪意のあるオブジェクトを自動的に削除します。ライフサイクル設定の詳細については、「*Amazon S3 ユーザーガイド*」の「[ストレージライフサイクルの管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)」を参照してください。  | 
|  S3: タグベースのアクセスコントロール (TBAC)  |  はい  |  バケットリソースポリシーを S3 オブジェクトスキャン結果タグに基づいて定義できます。例えば、まだスキャンされていない S3 オブジェクトや GuardDuty で検出された脅威へのアクセスを防ぎます。詳細については、「[Malware Protection for S3 によるタグベースのアクセスコントロール (TBAC) の使用](tag-based-access-s3-malware-protection.md)」を参照してください。  | 

# Malware Protection for S3 のクォータ
<a name="malware-protection-s3-quotas-guardduty"></a>

このセクションでは、制限とも呼ばれるデフォルトのクォータについて説明します。特に指定がない限り、各クォータはリージョン固有です。基盤となる GuardDuty サービスを使用した場合に固有のデフォルトのクォータを表示するには、「[Amazon GuardDuty クォータ](guardduty_limits.md)」を参照してください。

次の表では、 AWS アカウントに適用されるいくつかのクォータについて説明します。


| クォータ名 | AWS デフォルトのクォータ値 | 調整可能かどうか | 説明 | 
| --- | --- | --- | --- | 
|  S3 オブジェクトの最大サイズ  |  100 GB  |  不可  |  GuardDuty でマルウェアがスキャンされる S3 オブジェクトの最大サイズ。 このクォータは調整できませんが、より大きなオブジェクトをスキャンする必要がある場合は、ユースケースに合わせて GuardDuty のクォータを増やせるかどうか AWS サポート にお問い合わせください。  | 
|  アーカイブバイトの抽出  |  100 GB  |  不可  |  GuardDuty がアーカイブファイルから抽出して分析できるデータの最大量。 GuardDuty は、100 GB を超えるアーカイブファイルの抽出をスキップします。  | 
|  アーカイブファイルの抽出  |  10,000  |  不可  |  GuardDuty がアーカイブファイルから抽出して分析できるファイルの最大数。アーカイブに含まれているファイルの数が 10,000 を超える場合は、GuardDuty はアーカイブファイルをスキップする必要があります。  複合ファイルタイプは、これらの制限の対象となる可能性があります。ファイルタイプには、多目的インターネットメール拡張 (MIME) でエンコードされた E メールメッセージ、コンパイル済み Python (PYC) ファイル、コンパイル済み HTML ヘルプ (CHM) ファイル、すべてのインストーラ、および OpenDocument Format (ODF) ドキュメントが含まれますが、これらに限定されません。   | 
|  アーカイブの最大深度  |  5  |  不可  |  GuardDuty が抽出できるネストされたアーカイブの最大レベル。アーカイブにこの値を超えてファイルがネストされている場合、その分のネストされたファイルはスキップされます。  | 
|  最大保護バケット  |  25  |  不可  |  Malware Protection for S3 を有効にできる S3 バケットの最大数。このクォータ制限は、各リージョンのアカウントごとに適用されます。  | 