

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

# バケットの 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 を有効にするリージョンと同じリージョンにあることを確認します。