

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立或更新 IAM 角色政策
<a name="malware-protection-s3-iam-policy-prerequisite"></a>

若要讓惡意軟體防護 S3 掃描和 （選擇性） 將標籤新增至 S3 物件，您可以使用具有必要許可的服務角色，代表您執行惡意軟體掃描動作。如需使用服務角色為 S3 啟用惡意軟體保護的詳細資訊，請參閱[服務存取](https://docs.aws.amazon.com//guardduty/latest/ug/enable-malware-protection-s3-bucket.html#service-access-s3-malware-protection)。此角色與 [GuardDuty 惡意軟體防護服務連結角色](https://docs.aws.amazon.com//guardduty/latest/ug/using-service-linked-roles.html)不同。

如果您偏好使用 IAM 角色，您可以連接 IAM 角色，其中包含掃描和 （選擇性） 將標籤新增至 S3 物件所需的許可。您必須建立 IAM 角色或更新現有角色，以包含這些許可。由於您啟用適用於 Amazon S3 S3 儲存貯體都需要這些許可，因此您需要針對要保護的每個 Amazon S3 儲存貯體執行此步驟。

下列清單說明特定許可如何協助 GuardDuty 代表您執行惡意軟體掃描：
+ 允許 Amazon EventBridge 動作建立和管理 EventBridge 受管規則，以便 S3 的惡意軟體防護可以接聽 S3 物件通知。

  如需詳細資訊，請參閱《[Amazon EventBridge 使用者指南》中的 Amazon EventBridge 受管規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-rules.html#eb-rules-managed)。 * EventBridge *
+ 允許 Amazon S3 和 EventBridge 動作傳送此儲存貯體中所有事件的通知至 EventBridge 

  如需詳細資訊，請參閱《[Amazon S3 使用者指南》中的啟用 Amazon EventBridge](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-event-notifications-eventbridge.html)。 *Amazon S3 *
+ 允許 Amazon S3 動作存取上傳的 S3 物件`GuardDutyMalwareScanStatus`，並將預先定義的標籤 新增至掃描的 S3 物件。使用物件字首時，僅在目標字首上新增 `s3:prefix`條件。這可防止 GuardDuty 存取儲存貯體中的所有 S3 物件。
+ 允許 KMS 金鑰動作在掃描和使用支援的 DSSE-KMS 和 SSE-KMS 加密將測試物件放置在儲存貯體之前存取物件。

**注意**  
每次您為帳戶中的儲存貯體啟用 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 使用者指南》中的建立](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) IAM 角色[或修改角色許可政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-managingrole-editing-console.html#roles-modify_permissions-policy)。 **

將下列許可範本新增至您偏好的 IAM 角色。將下列預留位置值取代為與您的帳戶相關聯的適當值：
+ 對於 *amzn-s3-demo-bucket*，請將 取代為您的 Amazon S3 儲存貯體名稱。

  若要對多個 S3 儲存貯體資源使用相同的 IAM 角色，請更新現有政策，如下列範例所示：

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

  在新增與 S3 儲存貯體相關聯的新 ARN 之前，請務必新增逗號 (，)。只要參考政策範本`Resource`中的 S3 儲存貯體，就會執行此操作。
+ 對於 *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"
    }
  ]
}
```

------