

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 버킷에 대한 S3용 맬웨어 보호 구성하기
<a name="configuring-malware-protection-for-s3-guardduty"></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 역할을 사용하려면 S3 객체를 스캔하고 (선택 사항) 태그를 추가하는 데 필요한 권한이 포함된 IAM 역할을 연결할 수 있습니다. 그러면 GuardDuty가 이 IAM 역할을 맡아 사용자를 대신하여 이러한 작업을 수행합니다. Amazon S3 버킷에 대해 이 보호 요금제를 사용하도록 설정할 때 이 IAM 역할 이름이 필요합니다.

IAM 역할을 사용하는 경우 Amazon S3 버킷을 보호할 때마다 이 섹션에 나열된 단계를 모두 수행해야 합니다.

S3용 맬웨어 보호를 사용 설정하려면 S3 버킷 이름, 특정 접두사에 대한 보호에 집중하려는 경우 객체 접두사, 필요한 권한이 있는 IAM 역할 이름 등의 세부 정보가 필요합니다.

S3용 맬웨어 보호를 독립적으로 시작하든 GuardDuty 서비스의 일부로 활성화하든 이 단계는 동일하게 유지됩니다.

**주제**

1. [IAM 역할 정책 생성 또는 업데이트](malware-protection-s3-iam-policy-prerequisite.md)

1. [버킷에 S3용 맬웨어 방지 사용 설정하기](enable-malware-protection-s3-bucket.md) 

1. [IAM 역할 권한 오류 문제 해결](troubleshoot-malware-protection-s3-iam-role-permissions-error.md)

# 버킷에 S3용 맬웨어 방지 사용 설정하기
<a name="enable-malware-protection-s3-bucket"></a>

이 섹션에서는 내 계정의 버킷에 대해 S3용 맬웨어 방지를 사용 설정하는 방법에 대한 자세한 단계를 설명합니다. 진행하기 전에 다음 고려 사항을 검토하세요.
+ GuardDuty 콘솔을 사용하여 이 보호 플랜을 활성화하는 경우, 여기에는 **서비스 액세스** 섹션에서 새 역할을 생성하거나 기존 역할을 사용하는 단계가 포함됩니다.
+ GuardDuty API 또는 CLI를 사용하여 이 보호 플랜을 활성화하는 경우 계속 진행하기 전에 [IAM 역할 정책 생성 또는 업데이트](malware-protection-s3-iam-policy-prerequisite.md)을 충족해야 합니다.
+ 이 보호 플랜을 활성화하는 방법에 관계없이 필수 [새로운 맬웨어 보호 플랜 리소스를 생성할 수 있는 권한](#malware-protection-s3-permissions-prerequisite)을 충족해야 합니다.

**Amazon S3 버킷 스로틀링 고려**  
S3 스로틀링은 Amazon S3 버킷으로 또는 Amazon S3 버킷에서 데이터를 전송할 수 있는 속도를 제한할 수 있습니다. 이렇게 하면 새로 업로드된 객체의 맬웨어 스캔이 지연될 수 있습니다.  
S3 버킷에 대량의 `GET` 및 `PUT` 요청이 필요한 경우 스로틀링을 방지하기 위한 조치를 구현하는 것을 고려하세요. 이 작업을 수행하는 방법에 대한 자세한 내용은 *Amazon Athena 사용 설명서*의 [Amazon S3 제한 방지](https://docs.aws.amazon.com/athena/latest/ug/performance-tuning-s3-throttling.html)를 참조하세요.

**Topics**

## 새로운 맬웨어 보호 플랜 리소스를 생성할 수 있는 권한
<a name="malware-protection-s3-permissions-prerequisite"></a>

Amazon S3 버킷에 대해 S3용 맬웨어 보호를 활성화하면 GuardDuty는 버킷의 보호 플랜에 대한 식별자 역할을 하는 맬웨어 보호 플랜 리소스를 생성합니다. 아직 [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 콘솔을 사용하여 S3에 맬웨어 방지 사용 설정하기
<a name="enabling-malware-protection-s3-guardduty-console"></a>

다음 섹션에서는 GuardDuty 콘솔에서 경험할 수 있는 단계별 안내를 제공합니다.

**GuardDuty 콘솔을 사용하여 S3에 대한 맬웨어 보호를 활성화하려면**

### S3 버킷 세부 정보 입력
<a name="enter-s3-bucket-details-malware-protection"></a>

다음 단계를 사용하여 Amazon S3 버킷 세부 정보를 제공합니다.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) GuardDuty 콘솔을 엽니다.

1. 페이지 오른쪽 상단의 AWS 리전 선택기를 사용하여 S3용 맬웨어 보호를 활성화하려는 리전을 선택합니다.

1. 탐색 창에서 **S3용 맬웨어 보호**를 선택합니다.

1. **보호된 버킷** 섹션에서 **사용**을 선택하여 자체 AWS 계정에 속하는 S3 버킷에 대해 S3용 맬웨어 보호를 사용 설정합니다.

1. **S3 버킷 세부 정보 입력**에서 **Amazon S3 버킷** 이름을 입력합니다. 또는 **S3 찾아보기**를 선택하여 S3 버킷을 선택합니다.

   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`로 하고 값을 스캔 결과로 포함하는 사전 정의된 태그를 추가합니다. S3용 멀웨어 보호를 최적으로 사용하려면 스캔이 종료된 후 S3 객체에 태그를 추가하는 옵션을 활성화하는 것이 좋습니다. 표준 S3 객체 태깅 비용이 적용됩니다. 자세한 내용은 [S3용 맬웨어 보호의 가격 및 사용 비용](pricing-malware-protection-for-s3-guardduty.md) 단원을 참조하십시오.

**태그 지정을 활성화해야 하는 이유는 무엇입니까?**  
+ 태그 지정을 활성화하는 것은 맬웨어 스캔 결과에 대해 알 수 있는 방법 중 하나입니다. S3 맬웨어 스캔 결과에 대한 자세한 내용은 [S3용 멀웨어 방지에서 S3 객체 스캔 모니터링하기](monitoring-malware-protection-s3-scans-gdu.md)을 참조하세요.
+ 잠재적으로 악성일 수 있는 객체가 포함된 S3 버킷에 태그 기반 액세스 제어(TBAC) 정책을 설정하세요. 고려 사항 및 태그 기반 액세스 제어(TBAC) 구현 방법에 대한 자세한 내용은 [S3용 맬웨어 보호와 함께 태그 기반 액세스 제어(TBAC) 사용](tag-based-access-s3-malware-protection.md)을 참조하세요.

**GuardDuty가 S3 객체에 태그를 추가하기 위한 고려 사항:**
+ 기본적으로 최대 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\$164자이어야 합니다. 유효한 문자는 a-z, A-Z, 0-9 및 '\$1=,.@-\$1'입니다.

1. **기존 서비스 역할 사용** - **서비스 역할 이름 목록**에서 기존 서비스 역할을 선택할 수 있습니다.

   1. **정책 템플릿**에서 S3 버킷에 대한 정책을 볼 수 있습니다. S3 버킷 세부 정보 입력 섹션에서 **S3 버킷을 입력**하거나 선택했는지 확인합니다.

   1. **서비스 역할 이름**에서 서비스 역할 목록에서 서비스 역할을 선택합니다.

요구 사항에 따라 정책을 변경할 수 있습니다. IAM 역할을 생성하거나 업데이트하는 방법에 대한 자세한 내용은 [IAM 역할 정책 생성 또는 업데이트](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) 섹션을 참조하세요.

### (선택 사항) 맬웨어 보호 계획 ID 태그 지정
<a name="tag-malware-protection-policy-id-resource-gdu"></a>

이 단계는 S3 버킷 리소스에 대해 생성되는 멀웨어 방지 플랜 리소스에 태그를 추가하는 데 도움이 되는 선택적 단계입니다.

각 태그는 두 부분으로 구성됩니다. 태그 키와 선택적 태그 값입니다. 태그 지정 및 그 이점에 대한 자세한 내용은 [AWS 리소스 태그 지정을](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html) 참조하세요.

**맬웨어 차단 플랜 리소스에 태그를 추가하려면 다음과 같이 하세요.**

1. 태그에 **키**와 선택적 **값**을 입력합니다. 태그 키와 태그 값은 모두 대소문자를 구분합니다. 태그 키 및 태그 값의 이름에 대한 자세한 내용은 [태그 이름 지정 제한 및 요구 사항 섹션](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions)을 참조하세요.

1. 맬웨어 보호 계획 리소스에 태그를 더 추가하려면 **새 태그 추가**를 선택하고 이전 단계를 반복합니다. 각 리소스에 최대 50개의 태그를 추가할 수 있습니다.

1. **활성화**를 선택합니다.

## API/CLI를 사용하여 S3에 대한 맬웨어 보호 활성화
<a name="enabling-malware-protection-s3-guardduty-api-cli"></a>

이 섹션에는 AWS 환경에서 프로그래밍 방식으로 S3용 맬웨어 보호를 활성화하려는 경우에 대한 단계가 포함되어 있습니다. 이렇게 하려면 이 단계 - [IAM 역할 정책 생성 또는 업데이트](malware-protection-s3-iam-policy-prerequisite.md)에서 생성한 IAM 역할 Amazon 리소스 이름(ARN)이 필요합니다.

**API/CLI를 사용하여 프로그래밍 방식으로 S3에 대한 맬웨어 보호를 활성화하려면**
+ **API를 사용하여**

  [CreateMalwareProtectionPlan](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_CreateMalwareProtectionPlan.html)을 실행하여 자신의 계정에 속하는 버킷에 대해 S3용 멀웨어 방지을 사용 설정합니다.
+ **를 사용하여 AWS CLI**

  S3용 맬웨어 보호를 활성화하는 방법에 따라 다음 목록은 특정 사용 사례에 대한 AWS CLI 예제 명령을 제공합니다. 이러한 명령을 실행할 때 *빨간색으로 표시된 자리 표시자 예제*를 계정에 적합한 값으로 바꿉니다.

**AWS CLI 예제 명령**
  + 다음 AWS CLI 명령을 사용하여 스캔한 S3 객체에 태그를 지정하지 않은 버킷에 대해 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 객체에 대한 태그 지정이 없는 버킷에 대해 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 객체 태그 지정이 활성화된 버킷에 대해 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"}
    ```

  이러한 명령을 성공적으로 실행하면 고유한 멀웨어 방지 요금제 ID가 생성됩니다. 버킷에 대한 보호 요금제를 업데이트하거나 비활성화하는 등의 작업을 수행하려면 이 멀웨어 방지 요금제 ID가 필요합니다.

IAM 역할 권한 관련 문제는 [IAM 역할 권한 오류 문제 해결](troubleshoot-malware-protection-s3-iam-role-permissions-error.md) 섹션을 참조하세요.

# 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 역할을 사용하려면 S3 객체를 스캔하고 (선택 사항) 태그를 추가하는 데 필요한 권한이 포함된 IAM 역할을 연결할 수 있습니다. 이러한 권한을 포함하려면 IAM 역할을 만들거나 기존 역할을 업데이트해야 합니다. 이러한 권한은 S3용 맬웨어 보호를 사용 설정하는 각 Amazon S3 버킷에 필요하므로 보호하려는 각 Amazon S3 버킷에 대해 이 단계를 수행해야 합니다.

다음 목록에서는 특정 권한이 GuardDuty가 사용자를 대신하여 멀웨어 검사를 수행하는 데 어떻게 도움이 되는지 설명합니다.
+ S3용 맬웨어 방지가 S3 객체 알림을 수신할 수 있도록 Amazon EventBridge 작업이 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 사용 설명서*에서 [Amazon EventBridge 활성화](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-event-notifications-eventbridge.html)를 참조하세요.
+ Amazon S3 작업이 업로드된 S3 객체에 액세스하고 스캔된 S3 객체에 사전 정의된 태그인 `GuardDutyMalwareScanStatus`를 추가할 수 있도록 허용합니다. 객체 접두사를 사용하는 경우 대상 접두사에만 `s3:prefix` 조건을 추가합니다. 이렇게 하면 GuardDuty가 버킷의 모든 S3 객체에 액세스하지 못합니다.
+ 지원되는 DSSE-KMS 및 SSE-KMS 암호화를 사용하여 테스트 객체를 스캔하고 버킷에 넣기 전에 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을 추가하기 전에 쉼표(,)를 추가해야 합니다. 정책 템플릿에서 S3 버킷 `Resource`을 참조할 때마다 이 작업을 수행합니다.
+ *111122223333* 의 경우, AWS 계정 아이디로 대체합니다.
+ *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>

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 역할에는 S3용 맬웨어 보호를 허용하는 데 필요한 권한이 있어야 합니다.
+ GuardDuty는 `"s3:ListBucket"` 권한을 사용하여 버킷 소유권을 검증합니다. 이는 사용하는 IAM 역할에 있어야 합니다.
권한에 관한 사항은 [IAM 역할 정책 생성 또는 업데이트](malware-protection-s3-iam-policy-prerequisite.md) 섹션을 참조하세요.

**IAM 역할 가용성**  
+ 새 IAM 역할을 생성할 때 S3용 맬웨어 보호를 활성화하기 전에 변경 사항이 최종 일관성에 도달할 때까지 몇 분 정도 기다립니다. 역할을 생성한 직후 보호 계획을 활성화하려고 하면 검증이 실패할 수 있습니다.
+ 코드형 인프라(IaC) 배포의 경우 GuardDuty는 IAM 역할이 최종 일관성에 도달하도록 리소스 종속성을 선언할 것을 권장합니다.

  이 작업을 수행하는 방법에 대한 샘플 템플릿은 [GuardDuty GitHub 리포지토리](https://github.com/aws-samples/guardduty-malware-protection/tree/main/cdk)를 참조하세요.

**교차 리전 활성화**  
Amazon S3 버킷이 GuardDuty에서 S3에 대한 맬웨어 보호를 활성화하는 리전과 동일한 리전에 있는지 확인합니다.