

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

# 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"
    }
  ]
}
```

------