

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

# AWS IoT Device Defender
<a name="device-defender-component"></a>

 AWS IoT Device Defender 구성 요소(`aws.greengrass.DeviceDefender`)는 Greengrass 코어 디바이스의 상태 변경에 대해 관리자에게 알립니다. 그러면 손상된 장치를 나타낼 수 있는 비정상적인 동작을 식별할 수 있습니다. 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [AWS IoT Device Defender](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender.html) 섹션을 참조하세요.

이 구성 요소에서는 코어 디바이스의 시스템 지표를 읽습니다. 그런 다음에 지표를 AWS IoT Device Defender에 게시합니다. 이 구성 요소에서 보고되는 지표를 읽고 해석하는 방법에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [디바이스 지표 문서 사양](https://docs.aws.amazon.com/iot/latest/developerguide/detect-device-side-metrics.html#DetectMetricsMessagesSpec)을 참조하세요.

**참고**  
이 구성 요소는의 Device Defender 커넥터와 유사한 기능을 제공합니다 AWS IoT Greengrass V1. 자세한 내용은 *AWS IoT Greengrass V1 개발자 안내서*의 [Device Defender 커넥터](https://docs.aws.amazon.com/greengrass/latest/developerguide/device-defender-connector.html)를 참조하세요.

**Topics**
+ [버전](#device-defender-component-versions)
+ [Type](#device-defender-component-type)
+ [운영 체제](#device-defender-component-os-support)
+ [요구 사항](#device-defender-component-requirements)
+ [종속성](#device-defender-component-dependencies)
+ [구성](#device-defender-component-configuration)
+ [입력 데이터](#device-defender-component-input-data)
+ [출력 데이터](#device-defender-component-output-data)
+ [로컬 로그 파일](#device-defender-component-log-file)
+ [라이선스](#device-defender-component-licenses)
+ [Changelog](#device-defender-component-changelog)

## 버전
<a name="device-defender-component-versions"></a>

이 구성 요소에는 다음과 같은 버전이 있습니다.
+ 4.0.x
+ 3.1.x
+ 3.0.x
+ 2.0.x

각 구성 요소 버전의 변경 사항에 대한 내용은 [changelog](#device-defender-component-changelog)를 참조하세요.

## Type
<a name="device-defender-component-type"></a>

------
#### [ v4.x - v3.x ]

<a name="public-component-type-generic"></a>이 <a name="public-component-type-generic-phrase"></a>구성 요소는 일반 구성 요소(`aws.greengrass.generic`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)는 구성 요소의 수명 주기 스크립트를 실행합니다.

------
#### [ v2.x ]

<a name="public-component-type-lambda"></a>이 <a name="public-component-type-lambda-phrase"></a>구성 요소는 Lambda 구성 요소(`aws.greengrass.lambda`)입니다. [Greengrass nucleus](greengrass-nucleus-component.md)에서는 [Lambda 런처 구성 요소](lambda-launcher-component.md)를 사용하여 이 구성 요소의 Lambda 함수를 실행합니다.

------

<a name="public-component-type-more-information"></a>자세한 내용은 [구성 요소 유형](develop-greengrass-components.md#component-types) 단원을 참조하십시오.

## 운영 체제
<a name="device-defender-component-os-support"></a>

------
#### [ v4.x - v3.x ]

이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
+ Linux
+ Windows

------
#### [ v2.x ]

이 구성 요소는 Linux 코어 디바이스에만 설치할 수 있습니다.

------

## 요구 사항
<a name="device-defender-component-requirements"></a>

이 구성 요소의 요구 사항은 다음과 같습니다.

------
#### [ v4.x - v3.x ]
+ <a name="public-component-python3-requirement"></a>코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7입니다.
+ 종속성을 포함하여 다음 Python 라이브러리를 설치하고 구성 요소를 실행하는 사용자가 사용할 수 있어야 합니다.
  + [Python용AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-python-v2)
  + [cbor](https://pypi.org/project/cbor/) 라이브러리입니다. 버전 1.0.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
  + [psutil](https://pypi.org/project/psutil/) 라이브러리입니다. 버전 5.7.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
**참고**  
이러한 라이브러리를 제공된 Python 환경에 자동으로 설치`true`하도록 `UseInstaller` 구성을 로 설정할 수 있습니다.
+ AWS IoT Device Defender Detect 기능을 사용하여 위반을 모니터링하도록 구성되었습니다. 자세한 정보는 *AWS IoT Core 개발자 안내서*의 [감지](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html)를 참조하세요.

------
#### [ v2.x ]
+ <a name="core-device-lambda-function-requirements"></a>Lambda 함수를 실행하려면 코어 디바이스가 요구 사항을 충족해야 합니다. 코어 디바이스에서 컨테이너화된 Lambda 함수를 실행하려면 디바이스가 요구 사항을 충족해야 합니다. 자세한 내용은 [Lambda 함수 요구 사항](setting-up.md#greengrass-v2-lambda-requirements) 단원을 참조하십시오.
+ <a name="public-component-python3-requirement"></a>코어 장치에 설치되고 PATH 환경 변수에 추가된 [Python](https://www.python.org/) 버전 3.7입니다.
+ AWS IoT Device Defender Detect 기능을 사용하여 위반을 모니터링하도록 구성되었습니다. 자세한 정보는 *AWS IoT Core 개발자 안내서*의 [감지](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-detect.html)를 참조하세요.
+ 코어 디바이스에 설치된 [psutil](https://pypi.org/project/psutil/) 라이브러리입니다. 버전 5.7.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
+ 코어 디바이스에 설치된 [cbor](https://pypi.org/project/cbor/) 라이브러리입니다. 버전 1.0.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
+ <a name="connector-component-legacy-subscription-router-dependency"></a>이 구성 요소의 출력 데이터를 수신하려면 이 구성 요소를 배포할 때 [레거시 구독 라우터 구성 요소](legacy-subscription-router-component.md)(`aws.greengrass.LegacySubscriptionRouter`)에 대한 다음 구성 업데이트를 병합해야 합니다. 이 구성에서는 이 구성 요소가 응답을 게시하는 주제를 지정합니다.

------
#### [ Legacy subscription router v2.1.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-device-defender": {
        "id": "aws-greengrass-device-defender",
        "source": "component:aws.greengrass.DeviceDefender",
        "subject": "$aws/things/+/defender/metrics/json",
        "target": "cloud"
      }
    }
  }
  ```

------
#### [ Legacy subscription router v2.0.x ]

  ```
  {
    "subscriptions": {
      "aws-greengrass-device-defender": {
        "id": "aws-greengrass-device-defender",
        "source": "arn:aws:lambda:region:aws:function:aws-greengrass-device-defender:version",
        "subject": "$aws/things/+/defender/metrics/json",
        "target": "cloud"
      }
    }
  }
  ```<a name="connector-component-legacy-subscription-router-dependency-replace"></a>
  + *region*을 사용하는 AWS 리전 로 바꿉니다.
  + *버전*을 이 구성 요소에서 실행되는 Lambda 함수의 버전으로 바꿉니다. Lambda 함수 버전을 찾으려면 배포하려는 이 구성 요소의 버전에 대한 레시피를 확인해야 합니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서 이 구성 요소의 세부 정보 페이지를 열고 **Lambda 함수** 키-값 페어를 찾습니다. 이 키-값 페어에는 Lambda 함수의 이름과 버전이 포함되어 있습니다.

**중요**  <a name="connector-component-legacy-subscription-router-dependency-note"></a>
이 구성 요소를 배포할 때마다 레거시 구독 라우터의 Lambda 함수 버전을 업데이트해야 합니다. 이를 통해 배포하는 구성 요소 버전에 맞는 올바른 Lambda 함수 버전을 사용할 수 있습니다.

------

  <a name="connector-component-create-deployments"></a>자세한 내용은 [배포 만들기](create-deployments.md) 단원을 참조하십시오.

------

## 종속성
<a name="device-defender-component-dependencies"></a>

구성 요소를 배포할 때는 호환되는 버전의 종속성 AWS IoT Greengrass 도 배포합니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 모든 해당 종속성에 대한 요구 사항을 충족해야 합니다. 이 섹션에는 이 구성 요소의 [릴리스된 버전](#device-defender-component-changelog)에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 의미 체계 버전 제약 조건이 나열되어 있습니다. [AWS IoT Greengrass 콘솔](https://console.aws.amazon.com//greengrass)에서도 각 구성 요소 버전에 대한 종속성을 볼 수 있습니다. 구성 요소 세부 정보 페이지에서 **종속성** 목록을 찾습니다.

------
#### [ 4.0.0 - 3.0.0 ]

다음 표에는이 구성 요소의 버전 4.0.0\$13.0.0에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0 | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=0.0.0 | 하드 | 

------
#### [ 2.0.12 - 2.0.17 ]

다음 표에는이 구성 요소의 버전 2.0.12\$12.0.17에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.12 - 2.0.16 ]

다음 표에는 이 구성 요소의 버전 2.0.16에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <3.0.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.10 - 2.0.11 ]

다음 표에는 이 구성 요소의 버전 2.0.10 및 2.0.11에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.8.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.9 ]

다음 표에는 이 구성 요소의 버전 2.0.9에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.7.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.8 ]

다음 표에는 이 구성 요소의 버전 2.0.8에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.6.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.7 ]

다음 표에는 이 구성 요소의 버전 2.0.7에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.5.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.6 ]

다음 표에는 이 구성 요소의 버전 2.0.6에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.4.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.5 ]

다음 표에는 이 구성 요소의 버전 2.0.5에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.3.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.4 ]

다음 표에는 이 구성 요소의 버전 2.0.4에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.0 <2.2.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | ^2.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | ^2.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | ^2.0.0  | 하드 | 

------
#### [ 2.0.3 ]

다음 표에는 이 구성 요소의 버전 2.0.3에 대한 종속성이 나열되어 있습니다.


| 종속성 | 호환 버전 | 종속성 유형 | 
| --- | --- | --- | 
| [Greengrass nucleus](greengrass-nucleus-component.md) | >=2.0.3 <2.1.0  | 하드 | 
| [Lambda 런처](lambda-launcher-component.md) | >=1.0.0  | 하드 | 
| [Lambda 런타임](lambda-runtimes-component.md) | >=1.0.0  | 소프트 | 
| [토큰 교환 서비스](token-exchange-service-component.md) | >=1.0.0  | 하드 | 

------

구성 요소 종속성에 대한 자세한 내용은 [구성 요소 레시피 참조](component-recipe-reference.md#recipe-reference-component-dependencies)를 참조하세요.

## 구성
<a name="device-defender-component-configuration"></a>

이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음 구성 파라미터를 제공합니다.

------
#### [ v4.x ]

`PublishRetryCount`  
게시가 재시도되는 시간 간격입니다.  
최소는 0입니다.  
최대는 72입니다.  
기본값: 5

`SampleIntervalSeconds`  
(선택 사항) 구성 요소에서 지표를 수집하고 보고하는 각 주기 간 시간(초)입니다.  
최소값은 300초(5분)입니다.  
기본값: 300초

 `UseInstaller`   
(선택 사항) 설치 프로그램 스크립트를 사용하여이 구성 요소의 Python 종속성을 제공된 Python 환경에 설치할지 여부를 정의하는 부울 값입니다.  
이 구성 요소의 Python 종속성을 자동으로 설치`true`하려면이 값을 로 설정합니다. 로 설정`false`하면 종속성을 포함하여 다음 라이브러리를 설치하고 구성 요소를 실행하는 사용자에게 제공된 Python 환경에서 사용할 수 있도록 해야 합니다.  
+ [Python용AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [cbor](https://pypi.org/project/cbor/) 라이브러리입니다. 버전 1.0.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
+ [psutil](https://pypi.org/project/psutil/) 라이브러리입니다. 버전 5.7.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
기본값: `false`

------
#### [ v3.x ]

`PublishRetryCount`  
게시가 재시도되는 시간 간격입니다. 이 기능은 버전 3.1.1에서 사용할 수 있습니다.  
최소는 0입니다.  
최대는 72입니다.  
기본값: 5

`SampleIntervalSeconds`  
(선택 사항) 구성 요소에서 지표를 수집하고 보고하는 각 주기 간 시간(초)입니다.  
최소값은 300초(5분)입니다.  
기본값: 300초

 `UseInstaller`   
(선택 사항) 설치 프로그램 스크립트를 사용하여이 구성 요소의 Python 종속성을 제공된 Python 환경에 설치할지 여부를 정의하는 부울 값입니다.  
사용자 지정 스크립트를 사용하거나 종속성을 수동으로 설치`false`하려면이 값을 로 설정합니다. 로 설정`false`하면 종속성을 포함하여 다음 라이브러리를 설치하고 구성 요소를 실행하는 사용자에게 제공된 Python 환경에서 사용할 수 있도록 해야 합니다.  
+ [Python용AWS IoT Device SDK v2](https://github.com/aws/aws-iot-device-sdk-python-v2)
+ [cbor](https://pypi.org/project/cbor/) 라이브러리입니다. 버전 1.0.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
+ [psutil](https://pypi.org/project/psutil/) 라이브러리입니다. 버전 5.7.0이 구성 요소와 연동하는 것으로 확인된 최신 버전입니다.
HTTPS 프록시를 사용하도록 구성한 코어 디바이스에서 이 구성 요소의 버전 3.0.0 또는 3.0.1을 사용하는 경우 이 값을 `false`로 설정해야 합니다. 설치 프로그램 스크립트에서는 이 구성 요소의 이러한 버전에서 HTTPS 프록시 이면의 작업을 지원하지 않습니다.
기본값: `true`

------
#### [ v2.x ]

**참고**  <a name="connector-component-lambda-parameters"></a>
이 구성 요소의 기본 구성에는 Lambda 함수 파라미터가 포함되어 있습니다. 디바이스에서 다음 파라미터만 사용하여 이 구성 요소를 구성하는 것이 좋습니다.

`lambdaParams`  
이 구성 요소의 Lambda 함수에 대한 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`EnvironmentVariables`  
Lambda 함수의 파라미터를 포함하는 객체입니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`PROCFS_PATH`  
(선택 사항) `/proc` 폴더의 경로입니다.  
+ 이 구성 요소를 컨테이너에서 실행하려면 기본값(`/host-proc`)을 사용합니다. 기본적으로 컨테이너에서 구성 요소가 실행됩니다.
+ 컨테이너 없음 모드에서 이 구성 요소를 실행하려면 이 파라미터에 `/proc`를 지정합니다.
기본값: `/host-proc`. 이 구성 요소에서 컨테이너에 `/proc` 폴더를 탑재하는 기본 경로입니다.  
이 구성 요소에는 이 폴더에 대한 읽기 전용 액세스 권한이 있습니다.  
`SAMPLE_INTERVAL_SECONDS`  
(선택 사항) 구성 요소에서 지표를 수집하고 보고하는 각 주기 간 시간 간격(초)입니다.  
최소값은 300초(5분)입니다.  
기본값: 300초

`containerMode`  
(선택 사항) 이 구성 요소에 대한 컨테이너화 모드입니다. 다음 옵션 중 하나를 선택합니다.  
+ `GreengrassContainer` - 구성 요소는 AWS IoT Greengrass 컨테이너 내의 격리된 런타임 환경에서 실행됩니다.
+ `NoContainer` – 구성 요소가 격리된 런타임 환경에서 실행되지 않습니다.

  이 옵션을 지정하는 경우 `PROCFS_PATH` 환경 변수 파라미터에 `/proc`를 지정해야 합니다.
기본값: `GreengrassContainer`

`containerParams`  
<a name="connector-component-container-params-description"></a>(선택 사항) 이 구성 요소에 대한 컨테이너 파라미터를 포함하는 객체입니다. `containerMode`에 `GreengrassContainer`를 지정하면 구성 요소에서 이러한 파라미터를 사용합니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`memorySize`  
<a name="connector-component-container-params-memory-size-description"></a>(선택 사항) 구성 요소에 할당되는 메모리 양(킬로바이트)입니다.  
기본값은 50,000KB입니다.

`pubsubTopics`  <a name="connector-component-pubsub-topics-parameter"></a>
(선택 사항) 구성 요소에서 메시지를 수신하려고 구독하는 주제를 포함하는 객체입니다. 각 주제와 구성 요소가 AWS IoT Core 또는 로컬 게시/구독 주제에서 MQTT 주제를 구독하는지 여부를 지정할 수 있습니다.  
이 객체에는 다음 정보가 포함되어 있어야 합니다.    
`0` – 문자열 형태의 배열 인덱스입니다.  
다음 정보를 포함하는 객체입니다.    
`type`  
(선택 사항) 이 구성 요소에서 메시지 구독에 사용하는 게시/구독 메시징의 유형입니다. 다음 옵션 중 하나를 선택합니다.  
+ `PUB_SUB` – 로컬 게시/구독 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [로컬 메시지 게시/구독](ipc-publish-subscribe.md) 섹션을 참조하세요.
+ `IOT_CORE` - AWS IoT Core MQTT 메시지를 구독합니다. 이 옵션을 선택하면 주제에 MQTT 와일드카드를 포함할 수 없습니다. 이 옵션을 지정할 때 사용자 지정 구성 요소에서 메시지를 보내는 방법에 대한 자세한 내용은 [AWS IoT Core MQTT 메시지 게시/구독](ipc-iot-core-mqtt.md) 섹션을 참조하세요.
기본값: `PUB_SUB`  
`topic`  
(선택 사항) 구성 요소가 메시지를 수신하기 위해 구독하는 주제입니다. `type`에 `IotCore`를 지정하면 이 주제에서 MQTT 와일드카드(`+` 및 `#`)를 사용할 수 있습니다.

**Example 예: 구성 병합 업데이트(컨테이너 모드)**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "PROCFS_PATH": "/host_proc"
    }
  },
  "containerMode": "GreengrassContainer"
}
```

**Example 예: 구성 병합 업데이트(컨테이너 없음 모드)**  

```
{
  "lambdaExecutionParameters": {
    "EnvironmentVariables": {
      "PROCFS_PATH": "/proc"
    }
  },
  "containerMode": "NoContainer"
}
```

------

## 입력 데이터
<a name="device-defender-component-input-data"></a>

이 구성 요소에서는 메시지를 입력 데이터로 수락하지 않습니다.

## 출력 데이터
<a name="device-defender-component-output-data"></a>

이 구성 요소는 다음 예약 주제에 대한 보안 지표를 게시합니다 AWS IoT Device Defender. 이 구성 요소에서는 지표 게시될 때 *coreDeviceName*을 코어 디바이스의 이름으로 바뀝니다.

**주제(AWS IoT Core MQTT):** `$aws/things/coreDeviceName/defender/metrics/json`

**Example 출력 예시**  

```
{
  "header": {
    "report_id": 1529963534,
    "version": "1.0"
  },
  "metrics": {
    "listening_tcp_ports": {
      "ports": [
        {
          "interface": "eth0",
          "port": 24800
        },
        {
          "interface": "eth0",
          "port": 22
        },
        {
          "interface": "eth0",
          "port": 53
        }
      ],
      "total": 3
    },
    "listening_udp_ports": {
      "ports": [
        {
          "interface": "eth0",
          "port": 5353
        },
        {
          "interface": "eth0",
          "port": 67
        }
      ],
      "total": 2
    },
    "network_stats": {
      "bytes_in": 1157864729406,
      "bytes_out": 1170821865,
      "packets_in": 693092175031,
      "packets_out": 738917180
    },
    "tcp_connections": {
      "established_connections":{
        "connections": [
          {
            "local_interface": "eth0",
            "local_port": 80,
            "remote_addr": "192.168.0.1:8000"
          },
          {
            "local_interface": "eth0",
            "local_port": 80,
            "remote_addr": "192.168.0.1:8000"
          }
        ],
        "total": 2
      }
    }
  }
}
```

이 구성 요소에서 보고하는 지표에 대한 자세한 내용은 *AWS IoT Core 개발자 안내서*의 [디바이스 지표 문서 사양](https://docs.aws.amazon.com/iot/latest/developerguide/detect-device-side-metrics.html#DetectMetricsMessagesSpec)을 참조하세요.

## 로컬 로그 파일
<a name="device-defender-component-log-file"></a>

이 구성 요소는 다음 로그 파일을 사용합니다.

------
#### [ Linux ]

```
/greengrass/v2/logs/aws.greengrass.DeviceDefender.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log
```

------

**이 구성 요소의 로그를 보려면**
+ 코어 디바이스에서 다음 명령을 실행하여 실시간으로 이 구성 요소의 로그 파일을 봅니다. `/greengrass/v2` 또는 *C:\$1greengrass\$1v2*를 AWS IoT Greengrass 루트 폴더의 경로로 바꿉니다.

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/aws.greengrass.DeviceDefender.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\aws.greengrass.DeviceDefender.log -Tail 10 -Wait
  ```

------

## 라이선스
<a name="device-defender-component-licenses"></a>

<a name="component-core-software-license"></a>이 구성 요소는 [Greengrass 코어 소프트웨어 라이선스 계약](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)에 따라 릴리스됩니다.

## Changelog
<a name="device-defender-component-changelog"></a>

다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.

------
#### [ v4.x - v3.x ]


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  4.0.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/device-defender-component.html)  | 
|  3.1.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/device-defender-component.html)  | 
|  3.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/greengrass/v2/developerguide/device-defender-component.html)  | 
|  3.0.1  |  구성 요소에서 지표에 대한 델타 값을 계산하는 방식과 관련한 문제가 해결되었습니다.  | 
|  3.0.0  |   더는 이 버전을 사용할 수 없습니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다.  초기 버전입니다.  | 

------
#### [ v2.x ]


|  **버전**  |  **변경 사항**  | 
| --- | --- | 
|  2.0.17  |  Greengrass nucleus 버전 2.14.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.16  |  Greengrass nucleus 버전 2.13.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.11  |  Greengrass nucleus 버전 2.11.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.10  |  Greengrass nucleus 버전 2.7.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.9  |  Greengrass nucleus 버전 2.6.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.8  |  Greengrass nucleus 버전 2.5.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.7  |  Greengrass nucleus 버전 2.4.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.6  |  Greengrass nucleus 버전 2.3.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.5  |  Greengrass nucleus 버전 2.2.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.4  |  Greengrass nucleus 버전 2.1.0 릴리스용으로 업데이트된 버전입니다.  | 
|  2.0.3  |  초기 버전입니다.  | 

------