

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

# AWS IoT SiteWise Edge 게이트웨이용 OPC UA 데이터 소스
<a name="configure-sources-opcua"></a>

 AWS IoT SiteWise Edge 게이트웨이를 설정한 후 SiteWise Edge 게이트웨이가 로컬 산업 장비에서 데이터를 수집할 수 있도록 데이터 소스를 구성할 수 있습니다 AWS IoT SiteWise. 각 소스는 SiteWise Edge 게이트웨이가 산업 데이터 스트림을 연결하고 검색하는 OPC UA 서버와 같은 로컬 서버를 나타냅니다. SiteWise Edge 게이트웨이 설정에 대한 자세한 내용은 [자체 호스팅 SiteWise Edge 게이트웨이 생성](create-gateway-ggv2.md)을 참조하세요.

게이트웨이 유형인 MQTT 지원 V3 게이트웨이와 클래식 스트림인 V2 게이트웨이는 OPC UA 데이터 처리 방식에 영향을 미칩니다. 클래식 스트림, V2 게이트웨이에서 OPC UA 데이터 소스는 게이트웨이 IoT SiteWise 게시자 구성에 직접 추가됩니다. 각 데이터 소스는 게이트웨이와 결합되고 데이터 라우팅은 각 소스에 대해 개별적으로 구성됩니다. 반대로 MQTT 지원 V3 게이트웨이를 사용하면 OPC UA 데이터 소스가 MQTT 주제로 변환되고 중앙 집중식 대상을 통해 관리됩니다. 각 유형에 대한 자세한 내용은 [AWS IoT SiteWise Edge용 MQTT 지원 V3 게이트웨이](mqtt-enabled-v3-gateway.md) 및 단원을 참조하십시오[클래식 스트림, AWS IoT SiteWise Edge용 V2 게이트웨이](classic-streams-v2-gateway.md).

**참고**  
AWS IoT SiteWise 는 소스를 추가하거나 편집할 때마다 SiteWise Edge 게이트웨이를 다시 시작합니다. SiteWise Edge 게이트웨이는 소스 구성을 업데이트하는 동안 데이터를 수집하지 않습니다. SiteWise Edge 게이트웨이를 다시 시작하는 시간은 SiteWise Edge 게이트웨이 소스의 태그 수에 따라 달라집니다. 다시 시작 시간은 몇 초(태그가 거의 없는 SiteWise Edge 게이트웨이)에서 몇 분(태그가 많은 SiteWise Edge 게이트웨이)에 이르기까지 다양할 수 있습니다.

소스를 생성한 후에는 데이터 스트림을 자산 속성과 연결할 수 있습니다. 자산을 만들고 사용하는 방법에 대한 자세한 내용은 [산업 자산 모델링](industrial-asset-models.md) 단원을 참조하십시오.

CloudWatch 지표를 확인하여 데이터 소스가 AWS IoT SiteWise에 연결되어 있는지 확인할 수 있습니다. 자세한 내용은 [AWS IoT Greengrass Version 2 게이트웨이 지표](monitor-cloudwatch-metrics.md#gateway-metrics-ggv2) 단원을 참조하십시오.

현재는 다음 데이터 소스 프로토콜을 AWS IoT SiteWise 지원합니다.
+ [OPC UA](https://en.wikipedia.org/wiki/OPC_Unified_Architecture) – 산업 자동화를 위한 Machine-to-Machine(M2M) 통신 프로토콜입니다.

## 추가 산업 프로토콜 지원
<a name="additional-protocols"></a>

SiteWise Edge는 데이터 소스 파트너와의 통합을 통해 광범위한 산업 프로토콜을 지원합니다. 이러한 파트너십을 통해 200개 이상의 서로 다른 프로토콜과 연결할 수 있으며 다양한 산업 시스템과 디바이스를 수용할 수 있습니다.

사용 가능한 데이터 소스 파트너 목록은 섹션을 참조하세요[SiteWise Edge 게이트웨이 파트너 데이터 소스 옵션](connect-partner-data-source.md).

# SiteWise Edge에서 OPC UA 소스 설정
<a name="configure-opcua-source"></a>

 AWS IoT SiteWise 콘솔 또는 SiteWise Edge 게이트웨이 기능을 사용하여 OPC UA 소스를 정의하고 SiteWise Edge 게이트웨이에 추가하여 로컬 OPC UA 서버를 나타낼 수 있습니다.

**Topics**
+ [OPC UA 소스 구성(콘솔)](#config-opcua-source-console)
+ [OPC UA 소스 구성(AWS CLI)](#configure-opc-ua-source-cli)

## OPC UA 소스 구성(콘솔)
<a name="config-opcua-source-console"></a>

콘솔을 사용하여 다음 절차에 따라 OPC UA 소스를 구성할 수 있습니다.

**참고**  
경고: TQVs 중복되면 이중 충전이 발생할 수 있습니다.

**AWS IoT SiteWise 콘솔을 사용하여 OPC UA 소스를 구성하려면**

1. [AWS IoT SiteWise 콘솔](https://console.aws.amazon.com/iotsitewise/)로 이동합니다.

1. 왼쪽 탐색의 엣지 **섹션에서 엣지 게이트웨이**를 선택합니다. **** 

1. OPC UA 소스를 추가할 SiteWise Edge 게이트웨이를 선택합니다.

1. **데이터 소스 추가**를 선택합니다.

1. 소스 이름을 입력합니다.

1. 데이터 소스 서버의 **로컬 엔드포인트**를 입력합니다. 엔드포인트는 IP 주소 또는 호스트 이름일 수 있습니다. 로컬 엔드포인트에 포트 번호를 추가할 수도 있습니다. 로컬 엔드포인트를 예를 들면 **opc.tcp://203.0.113.0:49320**과 같습니다.

1. (선택 사항) **선택할 노드 ID**의 경우 노드 필터를 추가하여 AWS 클라우드에 수집되는 데이터 스트림을 제한합니다. 기본적으로 SiteWise Edge 게이트웨이는 서버의 루트 노드를 사용하여 모든 데이터 스트림을 수집합니다. 노드 필터를 사용하면 AWS IoT SiteWise에서 모델링하는 데이터에 대한 경로만 포함하여 SiteWise Edge 게이트웨이의 시작 시간과 CPU 사용량을 줄일 수 있습니다. 기본적으로 SiteWise Edge 게이트웨이는 `/Server/`로 시작하는 경로를 제외한 모든 OPC UA 경로를 업로드합니다. OPC UA 노드 필터를 정의하려면 노드 경로와 `*` 및 `**` 와일드카드 문자를 사용하면 됩니다. 자세한 내용은 [SiteWise Edge에서 OPC UA 노드 필터 사용](opc-ua-node-filters.md) 단원을 참조하십시오.

1. **대상은** MQTT 지원 V3 게이트웨이와 Classic 스트림 V2 게이트웨이 간에 다릅니다.
   + **클래식 스트림인 V2 게이트웨이 대상**은 소스와 1:1 관계를 갖습니다. 각 소스는 특정 대상으로 데이터를 전송합니다.
   + 허브 및 스포크 모델을 사용하면 여러 게이트웨이에서 여러 데이터 소스의 구성 및 관리를 중앙 집중화할 수 있으므로 **MQTT를 사용하는 V3 게이트웨이 대상**은 별도로 설정됩니다. V3 게이트웨이에서 대상을 설정하려면 섹션을 참조하세요[AWS IoT SiteWise 엣지 대상 이해](gw-destinations.md#source-destination).

------
#### [ Classic steams, V2 gateway destinations ]
   + **AWS IoT SiteWise 실시간** - 스토리지로 직접 데이터를 보내려면 AWS IoT SiteWise 선택합니다. 엣지에서 실시간으로 데이터를 수집하고 모니터링합니다.
   + **AWS IoT SiteWise Amazon S3를 사용하여 버퍼링** - Parquet 형식의 데이터를 Amazon S3로 전송한 다음 스토리지로 AWS IoT SiteWise 가져옵니다. 데이터를 배치로 수집하고 기록 데이터를 비용 효과적인 방식으로 저장하려면 이 옵션을 선택합니다. 원하는 Amazon S3 버킷 위치와 데이터를 Amazon S3에 업로드할 빈도를 구성할 수 있습니다. AWS IoT SiteWise에 수집한 후 데이터로 수행할 작업을 선택할 수도 있습니다. AWS IoT SiteWise 및 Amazon S3 모두에서 데이터를 사용할 수 있도록 선택하거나 로 가져온 후 Amazon S3에서 자동으로 삭제하도록 선택할 수 있습니다 AWS IoT SiteWise.
     + Amazon S3 버킷은 스테이징 및 버퍼링 메커니즘이며 Parquet 형식의 파일을 지원합니다.
     + **스토리지로 AWS IoT SiteWise 데이터 가져오기** 확인란을 선택하면 데이터가 먼저 Amazon S3에 업로드된 다음 AWS IoT SiteWise 스토리지에 업로드됩니다.
       + **Amazon S3에서 데이터 삭제** 확인란을 선택하면 SiteWise 스토리지로 가져온 후 Amazon S3에서 데이터가 삭제됩니다.
       + **Amazon S3에서 데이터 삭제** 확인란을 선택 취소하면 데이터가 Amazon S3와 SiteWise 스토리지 모두에 저장됩니다.
     + ** AWS IoT SiteWise 스토리지로 데이터 가져오기** 확인란을 선택 취소하면 데이터가 Amazon S3에만 저장됩니다. 데이터를 SiteWise 스토리지로 가져오지 않습니다.

      AWS IoT SiteWise 에서 제공하는 다양한 스토리지 옵션에 대한 자세한 내용을 [데이터 스토리지 관리](manage-data-storage.md) 섹션을 참조하세요. 요금 옵션에 대한 자세한 내용은 [AWS IoT SiteWise 요금](https://aws.amazon.com/iot-sitewise/pricing/)을 참조하세요.

      
   + **AWS IoT Greengrass 스트림 관리자** - AWS IoT Greengrass 스트림 관리자를 사용하여의 채널 AWS IoT 분석, Amazon Kinesis Data Streams의 스트림,의 자산 속성 AWS IoT SiteWise또는 Amazon Simple Storage Service(Amazon S3)의 객체와 같은 AWS 클라우드 대상으로 데이터를 전송합니다. 자세한 내용은 *AWS IoT Greengrass Version 2 개발자 안내서*[의 AWS IoT Greengrass 코어에서 데이터 스트림 관리를 참조하세요](https://docs.aws.amazon.com/greengrass/v2/developerguide/manage-data-streams.html).

      AWS IoT Greengrass 스트림의 이름을 입력합니다.

------
#### [ MQTT-enabled, V3 gateway destinations ]

   1. 관련 대상 추가에 [AWS IoT SiteWise Edge용 MQTT 지원 V3 게이트웨이](mqtt-enabled-v3-gateway.md) 대한 자세한 내용은 섹션을 참조하세요.

   1. 소스 대상을 추가한 후이 절차로 돌아갑니다.

------

1. **고급 구성** 창에서 다음을 수행할 수 있습니다.

   1. 소스 서버와 SiteWise Edge 게이트웨이 간의 연결 및 전송 중 데이터에 대해 **메시지 보안 모드**를 선택합니다. 이 필드는 OPC UA 보안 정책과 메시지 보안 모드의 조합입니다. OPC UA 서버에 지정한 것과 동일한 보안 정책 및 메시지 보안 모드를 선택합니다.

   1. 소스에 인증이 필요한 경우 **인증 구성** 목록에서 AWS Secrets Manager 암호를 선택합니다. SiteWise Edge 게이트웨이는 이 데이터 소스에 연결할 때 이 암호에 있는 인증 자격 증명을 사용합니다. 데이터 소스 인증에 사용하려면 SiteWise Edge 게이트웨이의 AWS IoT Greengrass 구성 요소에 보안 암호를 연결해야 합니다. 자세한 내용은 [SiteWise Edge에 대한 데이터 소스 인증 구성](configure-source-authentication-ggv2.md) 단원을 참조하십시오.
**작은 정보**  
데이터 서버에는 [**Allow anonymous login(익명 로그인 허용)**]이라는 옵션이 있을 수 있습니다. 이 옵션이 [**Yes(예)**]인 경우 원본에 인증이 필요하지 않습니다.

   1. (선택 사항) **데이터 스트림 접두사 활성화 - *선택 사항***을 선택하여 데이터 스트림 접두사를 활성화할 수 있습니다.

      1. **데이터 스트림 접두사**를 입력합니다. SiteWise Edge 게이트웨이는 이 접두사를 이 소스의 모든 데이터 스트림에 추가합니다. 데이터 스트림 접두사를 사용하여 서로 다른 소스에서 이름이 같은 데이터 스트림을 구분합니다. 각 데이터 스트림은 계정 내에서 고유한 이름을 가져야 합니다.

   1. (선택 사항) 지원되지 않는 OPC UA 데이터 유형을 AWS IoT SiteWise로 수집하기 전에 문자열로 변환하려면 **데이터 유형 변환** 옵션을 선택합니다. 간단한 데이터 형식의 배열 값을 JSON 문자열로 변환하고 DateTime 데이터 형식을 ISO 8601 문자열로 변환합니다. 자세한 내용은 [지원되지 않는 데이터 유형 변환](string-conversion.md) 단원을 참조하십시오.

   1. 사용자 정의 속성 그룹에 포함되지 않은 노드에 대해 **기본 데이터 변경 트리거**를 선택합니다. 기본 데이터 변경 트리거는 OPC UA 서버가 업데이트된 값을 게이트웨이로 전송하는 시기를 결정합니다. 다음 옵션 중 하나를 선택할 수 있습니다.
      + **상태** - 상태가 변경될 때만 데이터를 수신합니다.
      + **StatusValue** - 상태 또는 값이 변경될 때 데이터를 수신합니다.
      + **StatusValueTimestamp** - 상태, 값 또는 타임스탬프가 변경될 때 데이터를 수신합니다.

   1. (선택 사항) MQTT 지원 V3 게이트웨이에서 **검색 구성을** 사용하여 OPC UA 노드 검색 프로세스를 구성할 수 있습니다. 검색 구성은 이러한 옵션에 대한 이전 구성 재정의 파일 시스템을 게이트웨이를 다시 시작할 필요 없이 동적으로 업데이트되는 콘솔 기반 설정으로 대체합니다.
**참고**  
**기본 데이터 변경 트리거**에는 IoT SiteWise OPC UA 수집기 구성 요소의 버전 3.1.0 이상이 필요합니다. 자세한 내용은 [AWS IoT SiteWise 구성 요소의 버전 업데이트](manage-gateways-ggv2.md#update-component-version) 단원을 참조하십시오.

      1. **최대 동시 찾아보기 요청 수**에 OPC UA 서버가 동시에 처리할 수 있는 최대 찾아보기 요청 수를 입력합니다. 데이터 소스당 최대 500개의 동시 찾아보기 요청을 구성할 수 있습니다.

      1. **찾아보기 요청당 최대 노드 수**에 각 찾아보기 요청에서 OPC UA 서버로 보낼 최대 노드 수를 입력합니다. 찾아보기 요청당 최대 1,000개의 노드를 전송할 수 있습니다.

      1. OPC UA 서버의 구조를 탐색할 때 게이트웨이가 순환 참조에 멈춰 있지 않도록 **하려면 노드 트리 루프 방지**를 선택합니다. 이 옵션을 선택하면 게이트웨이는 방문 위치를 추적하여 서버 노드가 원형 패턴으로 서로를 참조할 때 발생할 수 있는 무한 루프를 방지합니다.

      1. **노드 순회 활성화**를 선택하면 게이트웨이가 OPC UA 서버의 전체 구조를 탐색하여 장비 및 디바이스에서 사용 가능한 모든 데이터 포인트를 검색할 수 있습니다. 선택하면 게이트웨이가 루트 수준 이상으로 장비의 데이터 조직을 탐색하여 모든 센서, 컨트롤 및 측정 지점을 자동으로 찾습니다.

      1. **정기 검색 활성화**를 선택하여 정기적으로 검색 작업을 자동으로 실행하여 OPC UA 서버 구조의 변경 사항을 감지합니다. 선택하면 게이트웨이가 새로 추가된 장비 또는 데이터 포인트를 지속적으로 모니터링하여 자동으로 감지되고 데이터 수집에 사용할 수 있도록 합니다.

         1. **정기 검색 간격**의 경우 정기 검색이 실행 중일 때 자동 검색 작업 간의 시간 간격을 설정합니다. 최소 주기적 검색 간격은 30초이고 최대 검색 간격은 30일입니다.

         1. **간격당 검색된 최대 노드**의 경우 검색 간격당 검색해야 하는 최대 노드 수를 설정합니다. 이렇게 하면 검색 작업 중에 게이트웨이와 OPC UA 서버 모두에서 로드를 제어할 수 있습니다.

   1. (선택 사항) **속성 그룹**의 경우 **새 그룹 추가**를 선택합니다.

      1. 속성 그룹의 **이름**을 입력합니다.

      1. **속성**의 경우:

         1. **노드 경로**의 경우 OPC UA 노드 필터를 추가하여 AWS IoT SiteWise에 업로드되는 OPC UA 경로를 제한합니다. 형식은 **선택할 노드 ID**와 유사합니다.

      1. **그룹 설정**에서 다음을 수행합니다.

         1. **데이터 품질 설정**에서 AWS IoT SiteWise 수집기가 수집할 데이터 품질 유형을 선택합니다.

         1. **스캔 모드 설정**의 경우 **스캔 모드**를 사용하여 표준 구독 속성을 구성합니다. **구독** 또는 **폴링**을 선택할 수 있습니다. 스캔 모드에 대한 자세한 내용은 [OPC UA를 사용하여 데이터 수집 범위 필터링](opcua-data-acquisition.md)을 참조하세요.

------
#### [ Subscribe ]

**모든 데이터 포인트를 보내려면**

            1. **구독**을 선택하고 다음을 설정합니다.

               1. **[데이터 변경 트리거](https://reference.opcfoundation.org/v104/Core/docs/Part4/7.17.2/)** - 데이터 변경 알림을 시작하는 조건입니다.

               1. **[구독 대기열 크기](https://reference.opcfoundation.org/v104/Core/docs/Part4/7.16/)** - 모니터링되는 항목에 대한 알림이 대기열에 저장되는 특정 지표에 대한 OPC UA 서버의 대기열 깊이입니다.

               1. **[구독 게시 간격](https://reference.opcfoundation.org/v104/Core/docs/Part4/5.13.2/)** - 구독이 생성될 때 지정된 게시 주기의 간격(밀리초)입니다.

               1. **스냅샷 간격 - *선택*** 사항 - AWS IoT SiteWise Edge가 안정적인 데이터 스트림을 수집하도록 하는 스냅샷 빈도 제한 시간 설정입니다.

               1. **스캔 속도** - SiteWise Edge 게이트웨이가 registers를 읽도록 하려는 속도입니다.는 SiteWise Edge 게이트웨이에 허용되는 최소 스캔 속도를 AWS IoT SiteWise 자동으로 계산합니다.

               1. **타임스탬프** - OPC UA 데이터 포인트에 포함할 타임스탬프입니다. 서버 타임스탬프 또는 디바이스의 타임스탬프를 사용할 수 있습니다.
**참고**  
IoT SiteWise OPC UA 수집기 구성 요소의 버전 2.5.0 이상을 사용합니다. 이전 버전에서 타임스탬프 기능을 사용하는 경우 구성 업데이트가 실패합니다. 자세한 내용은 [AWS IoT SiteWise 구성 요소의 버전 업데이트](manage-gateways-ggv2.md#update-component-version) 단원을 참조하십시오.

            1. **데드밴드 설정**에서 **데드밴드 유형**을 구성합니다. 데드밴드 유형은 소스가에 전송하는 데이터와 폐기하는 AWS IoT SiteWise데이터를 제어합니다. 데드밴드 설정에 대한 자세한 내용은 [OPC UA를 사용하여 데이터 수집 범위 필터링](opcua-data-acquisition.md)을 참조하세요.
               + **없음** – 연결된 서버가 이 속성 그룹에 대한 모든 데이터 포인트를 전송합니다.
               + **백분율** - 연결된 서버는 데이터 범위의 지정된 백분율을 벗어나는 데이터만 전송합니다. 이 범위는 각 노드에 대해 정의된 엔지니어링 단위 최소값 및 최대값을 기준으로 서버에서 계산합니다. 서버가 백분율 데드밴드를 지원하지 않거나 정의된 엔지니어링 단위가 없는 경우 게이트웨이는 아래에 제공된 최소값과 최대값을 사용하여 범위를 계산합니다.
               + **절대** - 연결된 서버는 특정 범위를 벗어나는 데이터만 전송합니다.

               1. **데드밴드 값**을 데드밴드에 대한 데이터 범위의 백분율로 설정합니다.

               1. (선택 사항) **최소 범위 - *선택 사항*** 및 **최대 범위 - *선택 사항***을 사용하여 데드밴드 범위의 최소값 및 최대값을 지정합니다.

------
#### [ Poll ]

**특정 간격으로 데이터 포인트를 보내려면**
            + **폴링**을 선택하고 다음을 설정합니다.

              1. **스캔 속도** - SiteWise Edge 게이트웨이가 registers를 읽도록 하려는 속도입니다.는 SiteWise Edge 게이트웨이에 허용되는 최소 스캔 속도를 AWS IoT SiteWise 자동으로 계산합니다.

              1. **타임스탬프** - OPC UA 데이터 포인트에 포함할 타임스탬프입니다. 서버 타임스탬프 또는 디바이스의 타임스탬프를 사용할 수 있습니다.
**참고**  
IoT SiteWise OPC UA 수집기 구성 요소의 버전 3.1.0 이상을 사용합니다. 이전 버전에서 타임스탬프 기능을 사용하는 경우 구성 업데이트가 실패합니다. 자세한 내용은 [AWS IoT SiteWise 구성 요소의 버전 업데이트](manage-gateways-ggv2.md#update-component-version) 단원을 참조하십시오.

**참고**  
**데드밴드 설정**은 **스캔 모드 설정**에서 **구독**을 선택한 경우에 적용됩니다.

------

1. **저장**을 선택합니다.

## OPC UA 소스 구성(AWS CLI)
<a name="configure-opc-ua-source-cli"></a>

 AWS CLI를 사용하여 SiteWise Edge 게이트웨이에 대한 OPC UA 데이터 소스를 정의할 수 있습니다. 이렇게 하려면 OPC UA 기능 구성 JSON 파일을 생성하고 [update-gateway-capability-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotsitewise/update-gateway-capability-configuration.html#) 명령을 사용하여 SiteWise Edge 게이트웨이 구성을 업데이트합니다. 단일 기능 구성에서 모든 OPC UA 소스를 정의해야 합니다.

------
#### [ MQTT-enabled, V3 gateway ]

이 기능에는 다음과 같은 네임스페이스가 있습니다.
+ `iotsitewise:opcuacollector:3`

```
{
  "sources": [
    {
      "name": "string",
      "endpoint": {
        "certificateTrust": {
          "type": "TrustAny" | "X509",
          "certificateBody": "string",
          "certificateChain": "string",
        },
        "endpointUri": "string",
        "securityPolicy": "NONE" | "BASIC128_RSA15" | "BASIC256" | "BASIC256_SHA256" | "AES128_SHA256_RSAOAEP" | "AES256_SHA256_RSAPSS",
        "messageSecurityMode": "NONE" | "SIGN" | "SIGN_AND_ENCRYPT",
        "identityProvider": {
          "type": "Anonymous" | "Username",
          "usernameSecretArn": "string"
        },
        "nodeFilterRules": [
          {
            "action": "INCLUDE",
            "definition": {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          }
        ]
      },
      "measurementDataStreamPrefix": "string",
      "typeConversions": {
        "array": "JsonArray",
        "datetime": "ISO8601String"
        },
      "destination": {
        {
          "type":"MQTT"
        }           
      },
      "defaultPropertyGroupConfig": {
        "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP"
      },
      "discoveryConfig": {
        "enableNodeTraversal": true | false,
        "avoidNodeTreeLoops": true | false,
        "maxConcurrentBrowseRequests": integer,
        "maxNodesPerBrowseRequest": integer,
        "periodicDiscovery": {
          "interval": "string",
          "maxNodesDiscoveredPerInterval": integer
        }
      },
      "propertyGroups": [
        {
          "name": "string",
          "nodeFilterRuleDefinitions": [
            {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          ],
          "deadband": {
            "type": "PERCENT" | "ABSOLUTE",
            "value": double,
            "eguMin": double,
            "eguMax": double,
            "timeoutMilliseconds": integer
          },
          "scanMode": {
            "type": "EXCEPTION" | "POLL",
            "rate": integer,
            "timestampToReturn": "SOURCE_TIME" | "SERVER_TIME"
          },
          "dataQuality": {
            "allowGoodQuality": true | false,
            "allowBadQuality": true | false,
            "allowUncertainQuality": true | false
          },
          "subscription": {
            "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP",
            "queueSize": integer,
            "publishingIntervalMilliseconds": integer,
            "snapshotFrequencyMilliseconds": integer
          }  
        }  
      ]  
    }  
  ]  
}
```

------
#### [ Classic streams, V2 gateway ]

이 기능에는 다음과 같은 네임스페이스가 있습니다.
+ `iotsitewise:opcuacollector:2`

요청 구문

```
{
  "sources": [
    {
      "name": "string",
      "endpoint": {
        "certificateTrust": {
          "type": "TrustAny" | "X509",
          "certificateBody": "string",
          "certificateChain": "string",
        },
        "endpointUri": "string",
        "securityPolicy": "NONE" | "BASIC128_RSA15" | "BASIC256" | "BASIC256_SHA256" | "AES128_SHA256_RSAOAEP" | "AES256_SHA256_RSAPSS",
        "messageSecurityMode": "NONE" | "SIGN" | "SIGN_AND_ENCRYPT",
        "identityProvider": {
          "type": "Anonymous" | "Username",
          "usernameSecretArn": "string"
        },
        "nodeFilterRules": [
          {
            "action": "INCLUDE",
            "definition": {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          }
        ]
      },
      "measurementDataStreamPrefix": "string",
      "typeConversions": {
        "array": "JsonArray",
        "datetime": "ISO8601String"
        },
      "destination": {
        "type": "StreamManager",
        "streamName": "string",
        "streamBufferSize": integer,                      
      },
      "propertyGroups": [
        {
          "name": "string",
          "nodeFilterRuleDefinitions": [
            {
              "type": "OpcUaRootPath",
              "rootPath": "string"
            }
          ],
          "deadband": {
            "type": "PERCENT" | "ABSOLUTE",
            "value": double,
            "eguMin": double,
            "eguMax": double,
            "timeoutMilliseconds": integer
          },
          "scanMode": {
            "type": "EXCEPTION" | "POLL",
            "rate": integer,
            "timestampToReturn": "SOURCE_TIME" | "SERVER_TIME"
          },
          "dataQuality": {
            "allowGoodQuality": true | false,
            "allowBadQuality": true | false,
            "allowUncertainQuality": true | false
          },
          "subscription": {
            "dataChangeTrigger": "STATUS" | "STATUS_VALUE" | "STATUS_VALUE_TIMESTAMP",
            "queueSize": integer,
            "publishingIntervalMilliseconds": integer,
            "snapshotFrequencyMilliseconds": integer
          }  
        }  
      ]  
    }  
  ]  
}
```

------

### 요청 본문
<a name="opcua-request-body"></a>

`sources`  
다음 정보를 포함하는 각 OPC UA 소스 정의 구조의 목록입니다.    
`name`  
고유하고 친숙한 원본 이름입니다.  
`endpoint`  
다음 정보가 포함된 엔드포인트 구조입니다.    
`certificateTrust`  
다음 정보가 포함된 인증서 신뢰 정책 구조:    
`type`  
원본에 대한 인증서 신뢰 모드입니다. 다음 중 하나를 선택합니다.  
+ `TrustAny` – SiteWise Edge 게이트웨이는 OPC UA 소스에 연결될 때 모든 인증서를 신뢰합니다.
+ `X509` – SiteWise Edge 게이트웨이는 OPC UA 소스에 연결될 때 X.509 인증서를 신뢰합니다. 이 옵션을 선택하는 경우, `certificateTrust`에 `certificateBody`을 정의해야 합니다. `certificateTrust`에 `certificateChain`을 정의할 수도 있습니다.  
`certificateBody`  
(선택 사항) X.509 인증서의 본문입니다.  
`certificateTrust`에서 `type`에 대해 `X509`을 선택하는 경우, 이 필드는 필수입니다.  
`certificateChain`  
(선택 사항) X.509 인증서에 대한 신뢰 체인입니다.  
이 필드는 `certificateTrust`에서 `type`에 대해 `X509`를 선택할 때만 사용합니다.  
`endpointUri`  
OPC UA 소스의 로컬 엔드포인트입니다. 로컬 엔드포인트를 예를 들면 `opc.tcp://203.0.113.0:49320`과 같습니다.  
`securityPolicy`  
OPC UA 소스에서 읽은 메시지를 보호할 수 있도록 사용할 보안 정책입니다. 다음 중 하나를 선택합니다.  
+ `NONE` – SiteWise Edge 게이트웨이는 OPC UA 소스의 메시지를 보호하지 않습니다. 다른 보안 정책을 선택하는 것이 좋습니다. 이 옵션을 선택하는 경우, `messageSecurityMode`에 대해 `NONE`을 선택해야 합니다
+ `BASIC256_SHA256`— `Basic256Sha256` 보안 정책.
+ `AES128_SHA256_RSAOAEP`— `Aes128_Sha256_RsaOaep` 보안 정책.
+ `AES256_SHA256_RSAPSS`— `Aes256_Sha256_RsaPss` 보안 정책.
+ `BASIC128_RSA15` – (더 이상 사용되지 않음) `Basic128Rsa15` 보안 정책은 더 이상 안전한 것으로 간주되지 않으므로 OPC UA 사양에서 더 이상 사용되지 않습니다. 다른 보안 정책을 선택하는 것이 좋습니다. 자세한 내용은 [Profile SecurityPolicy – Basic128Rsa15](https://profiles.opcfoundation.org/profile/1532)를 참조하세요.
+ `BASIC256` – (더 이상 사용되지 않음) `Basic256` 보안 정책은 더 이상 안전한 것으로 간주되지 않으므로 OPC UA 사양에서 더 이상 사용되지 않습니다. 다른 보안 정책을 선택하는 것이 좋습니다. 자세한 내용은 [SecurityPolicy – Basic256](https://profiles.opcfoundation.org/profile/1536)을 참조하세요.
이외의 `NONE` 보안 정책을 선택하는 경우 `SIGN` 또는 `SIGN_AND_ENCRYPT` 정책을 선택해야 합니다`messageSecurityMode`. 또한 SiteWise Edge 게이트웨이를 신뢰하도록 소스 서버를 구성해야 합니다. 자세한 내용은 [AWS IoT SiteWise Edge 게이트웨이를 신뢰하도록 OPC UA 서버 설정](enable-source-trust.md) 단원을 참조하십시오.  
`messageSecurityMode`  
OPC UA 소스에 대한 연결을 보호하는 데 사용할 메시지 보안 모드입니다. 다음 중 하나를 선택합니다.  
+ `NONE` – SiteWise Edge 게이트웨이는 OPC UA 소스에 대한 연결을 보호하지 않습니다. 다른 메시지 보안 모드를 선택하는 것이 좋습니다. 이 옵션을 선택하는 경우, `securityPolicy`에 대해 `NONE`을 선택해야 합니다
+ `SIGN` – SiteWise Edge 게이트웨이와 OPC UA 소스 간 전송 중 데이터는 서명되지만 암호화되지는 않습니다.
+ `SIGN_AND_ENCRYPT` – 게이트웨이와 OPC UA 소스 간 전송 중 데이터는 서명되고 암호화됩니다.
`NONE` 이외의 메시지 보안 모드를 선택하는 경우 `NONE` 이외의 `securityPolicy`를 선택해야 합니다. 또한 SiteWise Edge 게이트웨이를 신뢰하도록 소스 서버를 구성해야 합니다. 자세한 내용은 [AWS IoT SiteWise Edge 게이트웨이를 신뢰하도록 OPC UA 서버 설정](enable-source-trust.md) 단원을 참조하십시오.  
`identityProvider`  
다음 정보가 포함된 자격 증명 공급자 구조입니다.    
`type`  
원본에 필요한 인증 보안 인증의 유형입니다. 다음 중 하나를 선택합니다.  
+ `Anonymous` – 원본에 연결하려면 인증이 필요하지 않습니다.
+ `Username` – 원본에 연결하려면 사용자 이름과 암호가 필요합니다. 이 옵션을 선택하는 경우, `identityProvider`에 `usernameSecretArn`을 정의해야 합니다.  
`usernameSecretArn`  
(선택 사항) AWS Secrets Manager 보안 암호의 ARN입니다. SiteWise Edge 게이트웨이는 이 소스에 연결할 때 이 암호에 있는 인증 자격 증명을 사용합니다. 소스 인증에 사용하려면 SiteWise Edge 게이트웨이의 IoT SiteWise 커넥터에 암호를 첨부해야 합니다. 자세한 내용은 [SiteWise Edge에 대한 데이터 소스 인증 구성](configure-source-authentication-ggv2.md) 단원을 참조하십시오.  
`identityProvider`에서 `type`에 대해 `Username`을 선택하는 경우, 이 필드는 필수입니다.  
`nodeFilterRules`  
 AWS 클라우드로 전송할 OPC UA 데이터 스트림 경로를 정의하는 노드 필터 규칙 구조의 목록입니다. 노드 필터를 사용하면 AWS IoT SiteWise에서 모델링하는 데이터에 대한 경로만 포함하여 SiteWise Edge 게이트웨이의 시작 시간과 CPU 사용량을 줄일 수 있습니다. 기본적으로 SiteWise Edge 게이트웨이는 `/Server/`로 시작하는 경로를 제외한 모든 OPC UA 경로를 업로드합니다. OPC UA 노드 필터를 정의하려면 노드 경로와 `*` 및 `**` 와일드카드 문자를 사용하면 됩니다. 자세한 내용은 [SiteWise Edge에서 OPC UA 노드 필터 사용](opc-ua-node-filters.md) 단원을 참조하십시오.  
각 목록 구조에는 다음 정보가 포함되어야 합니다.    
`action`  
이 노드 필터 규칙에 대한 작업입니다. 다음과 같은 옵션을 선택할 수 있습니다.  
+ `INCLUDE` – SiteWise Edge 게이트웨이에는 이 규칙과 일치하는 데이터 스트림만 포함됩니다.  
`definition`  
다음 정보가 포함된 노드 필터 규칙 구조:    
`type`  
이 규칙의 노드 필터 경로 유형입니다. 다음과 같은 옵션을 선택할 수 있습니다.  
+ `OpcUaRootPath` – SiteWise Edge 게이트웨이는 OPC UA 경로 계층의 루트에 대해 이 노드 필터 경로를 평가합니다.  
`rootPath`  
OPC UA 경로 계층의 루트에 대해 평가할 노드 필터 경로입니다. 이 경로는 `/`로 시작되어야 합니다.  
`measurementDataStreamPrefix`  
원본의 모든 데이터 스트림 앞에 추가할 문자열입니다. SiteWise Edge 게이트웨이는 이 접두사를 이 소스의 모든 데이터 스트림에 추가합니다. 데이터 스트림 접두사를 사용하여 서로 다른 소스에서 이름이 같은 데이터 스트림을 구분합니다. 각 데이터 스트림은 계정 내에서 고유한 이름을 가져야 합니다.  
`typeConversions`  
지원되지 않는 OPC UA 데이터 유형에 사용할 수 있는 변환 유형입니다. 각 데이터 유형은 문자열로 변환됩니다. 자세한 내용은 [지원되지 않는 데이터 유형 변환](string-conversion.md) 단원을 참조하십시오.    
`array`  
문자열로 변환되는 단순 배열 데이터 유형입니다. 다음과 같은 옵션을 선택할 수 있습니다.  
+ `JsonArray` - 단순 배열 데이터 유형을 문자열로 변환하도록 선택했음을 나타냅니다.  
`datetime`  
문자열로 변환되는 DateTime 데이터 유형입니다. 다음과 같은 옵션을 선택할 수 있습니다.  
+ `ISO8601String` – ISO 8601 데이터 유형을 문자열로 변환하도록 선택했음을 나타냅니다.  
`destination`  
OPC UA 태그의 대상에 대한 구성입니다. 클래식 스트림, v2 및 MQTT 지원 V3 게이트웨이는 대상에 대해 구성이 다릅니다.    
`type`  
목적지의 유형입니다.  
`streamName` - *Classic 스트림, V2 게이트웨이에만 해당*  
 스트림의 이름입니다. 스트림 이름은 고유해야 합니다.  
`streamBufferSize` - *Classic 스트림, V2 게이트웨이에만 해당*  
스트림 버퍼의 크기입니다. 이는 OPC UA 소스의 데이터 흐름을 관리하는 데 중요합니다.  
`defaultPropertyGroupConfig` *- MQTT 지원, V3 게이트웨이만* 해당  
(선택 사항) 기본 속성 그룹에 대한 구성입니다. 기본 속성 그룹에는 사용자 정의 속성 그룹에 포함되지 않은 모든 노드가 포함됩니다.    
`dataChangeTrigger`  
기본 속성 그룹에서 사용할 기본 데이터 변경 트리거입니다. 유효한 값은 `STATUS_VALUE_TIMESTAMP`, `STATUS_VALUE`또는 `STATUS`입니다.
`defaultPropertyGroupConfig` 에는 IoT SiteWise OPC UA 수집기 구성 요소의 버전 3.1.0 이상이 필요합니다. 자세한 내용은 [AWS IoT SiteWise 구성 요소의 버전 업데이트](manage-gateways-ggv2.md#update-component-version) 단원을 참조하십시오.  
`discoveryConfig` *- MQTT 지원, V3 게이트웨이만* 해당  
(선택 사항) OPC UA 노드 검색 프로세스에 대한 구성입니다.    
`enableNodeTraversal`  
데이터 소스의 노드 필터로 정의된 루트 노드의 하위 노드를 계속 통과할지 여부를 지정합니다. 로 설정하면 루트 노드에서 `false`검색이 중지됩니다.  
`avoidNodeTreeLoops`  
OPC UA 노드 브라우징 프로세스 중에 무한 루프를 피할지 여부를 지정합니다. 로 설정하면 게이트웨이는 방문한 노드`true`를 추적하여 순환 참조를 방지합니다.  
`maxConcurrentBrowseRequests`  
OPC UA 서버가 동시에 처리할 수 있는 최대 동시 찾아보기 요청 수입니다. 유효한 범위는 1\$1500입니다.  
`maxNodesPerBrowseRequest`  
각 찾아보기 요청에서 OPC UA 서버로 전송할 최대 노드 수입니다. 유효한 범위는 1\$11,000입니다.  
`periodicDiscovery`  
고정된 간격으로 검색을 주기적으로 실행하기 위한 구성입니다. 이 구성이 제공되면 주기적 검색이 활성화됩니다.    
`interval`  
정기 검색 작업 사이의 시간입니다. `m`를 분, `h`를 시간,를 일 `d` 동안 사용할 수 있습니다. 예: `90m` 또는 `1h`. 최소 간격은 30초입니다.  
`maxNodesDiscoveredPerInterval`  
검색 간격당 검색해야 하는 최대 노드 수입니다. 이렇게 하면 게이트웨이와 OPC UA 서버 모두에서 로드를 제어할 수 있습니다.
`periodicDiscovery` 에는 IoT SiteWise OPC UA 수집기 구성 요소의 버전 3.1.0 이상이 필요합니다. 자세한 내용은 [AWS IoT SiteWise 구성 요소의 버전 업데이트](manage-gateways-ggv2.md#update-component-version) 단원을 참조하십시오.
검색이 무한 반복되는 경우를 활성화합니다`avoidNodeTreeLoops`. `aws.iot.SiteWiseOpcUaCollector` 구성 요소 아래의 CloudWatch 로그에서 검색 진행 상황을 모니터링합니다.

`propertyGroups`  
(선택 사항) 프로토콜에서 요청한 `deadband` 및 `scanMode`을 정의하는 속성 그룹 목록입니다.    
`name`  
속성 그룹의 이름입니다. 고유 식별자여야 합니다.  
`deadband`  
`deadband` 값은 데이터가 클라우드로 전송되기 전에 발생해야 하는 데이터 포인트 값의 최소 변화를 정의합니다. 여기에는 다음 정보가 포함됩니다.    
`type`  
지원되는 데드밴드 유형입니다. 다음과 같은 옵션을 선택할 수 있습니다.  
+ `ABSOLUTE` - 클라우드로 전송하기에 충분히 중요한 데이터 포인트를 고려하는 데 필요한 최소 절대 변화를 지정하는 고정 값입니다.
+ `PERCENT` – 필요한 최소 변화를 마지막으로 전송된 데이터 포인트 값의 백분율로 지정하는 동적 값입니다. 이러한 유형의 데드밴드는 데이터 값이 시간이 지남에 따라 크게 달라질 때 유용합니다.  
`value`  
데드밴드의 값입니다. `type`가 `ABSOLUTE`인 경우 이 값은 단위가 없는 이중 값입니다. `type`가 `PERCENT`인 경우 이 값은 `1`과 `100` 사이의 두 배입니다.  
`eguMin`  
(선택 사항) `PERCENT` 데드밴드를 사용할 때의 엔지니어링 단위 최소값입니다. OPC UA 서버에 엔지니어링 단위가 구성되어 있지 않은 경우 이를 설정합니다.  
`eguMax`  
(선택 사항) `PERCENT` 데드밴드를 사용할 때의 엔지니어링 단위 최대값입니다. OPC UA 서버에 엔지니어링 단위가 구성되어 있지 않은 경우 이를 설정합니다.  
`timeoutMilliseconds`  
타임아웃까지 남은 시간 (밀리초). 최소값은 `100`입니다.  
`scanMode`  
`scanMode` 구조에는 다음 정보가 포함되어 있습니다.    
`type`  
`scanMode`의 지원되는 유형입니다. 허용되는 값은 `POLL` 및 `EXCEPTION`입니다.  
`rate`  
스캔 모드의 샘플링 간격입니다.  
`timestampToReturn`  
타임스탬프의 소스입니다. 다음과 같은 옵션을 선택할 수 있습니다.  
+ `SOURCE_TIME` - 디바이스의 타임스탬프를 사용합니다.
+ `SERVER_TIME` - 서버의 타임스탬프를 사용합니다.
IoT SiteWise OPC UA 수집기 구성 요소의 `TimestampToReturn` 버전 2.5.0 이상에서를 사용합니다. 이전 버전에서이 기능을 사용하는 경우 구성 업데이트가 실패합니다. 자세한 내용은 [AWS IoT SiteWise 구성 요소의 버전 업데이트](manage-gateways-ggv2.md#update-component-version) 단원을 참조하십시오.  
`nodeFilterRuleDefinitions`  
(선택 사항) 속성 그룹에 포함할 노드 경로 목록입니다. 속성 그룹은 겹칠 수 없습니다. 이 필드에 값을 지정하지 않으면 그룹에 루트 아래의 모든 경로가 포함되므로 추가 속성 그룹을 생성할 수 없습니다. `nodeFilterRuleDefinitions` 구조에는 다음 정보가 포함되어 있습니다.    
`type`  
지원되는 유형은 `OpcUaRootPath`뿐입니다. `rootPath` 값이 OPC UA 브라우징 스페이스의 루트에 상대적인 경로임을 지정합니다.  
`rootPath`  
속성 그룹에 포함할 경로(루트에 대한 경로)를 지정하는 쉼표로 구분된 목록입니다.

### Classic 스트림, V2 게이트웨이(AWS CLI)에 대한 추가 기능 구성 예제
<a name="opc-ua-source-example-cli"></a>

다음 예시에서는 JSON 파일에 저장된 페이로드에서 OPC UA SiteWise Edge 게이트웨이 기능 구성을 정의합니다.

```
aws iotsitewise update-gateway-capability-configuration \
--capability-namespace "iotsitewise:opcuacollector:2" \
--capability-configuration file://opc-ua-configuration.json
```

**Example : OPC UA 소스 구성**  
다음 `opc-ua-configuration.json` 파일은 안전하지 않은 기본 OPC UA 소스 구성을 정의합니다.  

```
{
    "sources": [
        {
            "name": "Wind Farm #1",
            "endpoint": {
                "certificateTrust": {
                    "type": "TrustAny"
                },
                "endpointUri": "opc.tcp://203.0.113.0:49320",
                "securityPolicy": "NONE",
                "messageSecurityMode": "NONE",
                "identityProvider": {
                    "type": "Anonymous"
                },
                "nodeFilterRules": []
            },
            "measurementDataStreamPrefix": ""
        }
    ]
}
```

**Example : 정의된 속성 그룹이 있는 OPC UA 소스 구성**  
다음 `opc-ua-configuration.json` 파일은 정의된 속성 그룹이 있는 안전하지 않은 기본 OPC UA 소스 구성을 정의합니다.  

```
{
    "sources": [
        {
            "name": "source1",
            "endpoint": {
                "certificateTrust": {
                    "type": "TrustAny"
                },
                "endpointUri": "opc.tcp://10.0.0.9:49320",
                "securityPolicy": "NONE",
                "messageSecurityMode": "NONE",
                "identityProvider": {
                    "type": "Anonymous"
                },
                "nodeFilterRules": [
                    {
                        "action": "INCLUDE",
                        "definition": {
                            "type": "OpcUaRootPath",
                            "rootPath": "/Utilities/Tank"
                        }
                    }
                ]
            },
            "measurementDataStreamPrefix": "propertyGroups",
            "propertyGroups": [
                 {
                     "name": "Deadband_Abs_5",
                     "nodeFilterRuleDefinitions": [
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Temperature/TT-001"
                         },
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Temperature/TT-002"
                         }
                     ],
                     "deadband": {
                         "type":"ABSOLUTE",
                         "value": 5.0,
                         "timeoutMilliseconds": 120000
                     }
                 },
                 {
                     "name": "Polling_10s",
                     "nodeFilterRuleDefinitions": [
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Pressure/PT-001"
                         }
                     ],
                     "scanMode": {
                         "type": "POLL",
                         "rate": 10000
                     }
                 },
                 {
                     "name": "Percent_Deadband_Timeout_90s",
                     "nodeFilterRuleDefinitions": [
                         {
                             "type": "OpcUaRootPath",
                             "rootPath": "/Utilities/Tank/Flow/FT-*"
                         }
                     ],
                     "deadband": {
                         "type":"PERCENT",
                         "value": 5.0,
                         "eguMin": -100,
                         "eguMax": 100,
                         "timeoutMilliseconds": 90000
                     }
                 }
             ]
        }
    ]
}
```

**Example : 속성을 포함한 OPC UA 소스 구성**  
`opc-ua-configuration.json`에 대한 다음 JSON 예시는 다음 속성을 가진 OPC UA 소스 구성을 정의합니다.  
+ 모든 인증서를 신뢰합니다.
+ `BASIC256` 보안 정책을 사용하여 메시지를 보호합니다.
+ `SIGN_AND_ENCRYPT` 모드를 사용하여 연결을 보호합니다.
+ Secrets Manager 암호에 저장된 인증 보안 인증을 사용합니다.
+ 경로가 `/WindFarm/2/WindTurbine/`로 시작하는 데이터 스트림을 제외한 데이터 스트림을 필터링합니다.
+ 모든 데이터 스트림 경로의 첫 부분에 `/Washington`을 추가하여 다른 영역에서 이 “Wind Farm \$12”와 “Wind Farm \$12”를 구분합니다.

```
{
    "sources": [
        {
            "name": "Wind Farm #2",
            "endpoint": {
                "certificateTrust": {
                    "type": "TrustAny"
                },
                "endpointUri": "opc.tcp://203.0.113.1:49320",
                "securityPolicy": "BASIC256",
                "messageSecurityMode": "SIGN_AND_ENCRYPT",
                "identityProvider": {
                    "type": "Username",
                    "usernameSecretArn": "arn:aws:secretsmanager:region:123456789012:secret:greengrass-windfarm2-auth-1ABCDE"
                },
                "nodeFilterRules": [
                  {
                      "action": "INCLUDE",
                      "definition": {
                          "type": "OpcUaRootPath",
                          "rootPath": "/WindFarm/2/WindTurbine/"
                    }
                  }
                ]
            },
            "measurementDataStreamPrefix": "/Washington"
        }
    ]
}
```

**Example : 인증서 신뢰가 있는 OPC UA 소스 구성**  
`opc-ua-configuration.json`에 대한 다음 JSON 예시는 다음 속성을 가진 OPC UA 소스 구성을 정의합니다.  
+ 지정된 X.509 인증서를 신뢰합니다.
+ `BASIC256` 보안 정책을 사용하여 메시지를 보호합니다.
+ `SIGN_AND_ENCRYPT` 모드를 사용하여 연결을 보호합니다.

```
{
    "sources": [
        {
            "name": "Wind Farm #3",
            "endpoint": {
                "certificateTrust": {
                    "type": "X509",
                    "certificateBody": "-----BEGIN CERTIFICATE-----
          MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
 WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
 EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
 MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
 WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
 HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
 BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
 k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
 ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
 AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
 KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
 EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
 3rrszlaEXAMPLE=
          -----END CERTIFICATE-----",
                    "certificateChain": "-----BEGIN CERTIFICATE-----
          MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
 WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
 EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
 MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
 WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
 HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
 BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
 k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
 ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
 AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
 KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
 EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
 3rrszlaEXAMPLE=
          -----END CERTIFICATE-----"
                },
                "endpointUri": "opc.tcp://203.0.113.2:49320",
                "securityPolicy": "BASIC256",
                "messageSecurityMode": "SIGN_AND_ENCRYPT",
                "identityProvider": {
                    "type": "Anonymous"
                },
                "nodeFilterRules": []
              },
            "measurementDataStreamPrefix": ""
              
        }
    ]
}
```

# AWS IoT SiteWise Edge 게이트웨이를 신뢰하도록 OPC UA 서버 설정
<a name="enable-source-trust"></a>

OPC UA 소스를 구성할 때 **없음** `messageSecurityMode` 이외의를 선택하는 경우 소스 서버가 AWS IoT SiteWise Edge 게이트웨이를 신뢰하도록 활성화해야 합니다. SiteWise Edge 게이트웨이는 소스 서버에 필요할 수 있는 인증서를 생성합니다. 프로세스는 소스 서버에 따라 다릅니다. 자세한 내용은 서버에 대한 설명서를 참조하세요.

다음 절차에서는 기본 단계를 간략하게 설명합니다.

**OPC UA 서버에서 SiteWise Edge 게이트웨이를 신뢰하도록 설정하려면 다음을 수행하세요.**

1. OPC UA 서버를 구성하기 위한 인터페이스를 엽니다.

1. OPC UA 서버 관리자의 사용자 이름과 암호를 입력합니다.

1. 인터페이스에서 **신뢰할 수 있는 클라이언트**를 찾은 다음, **AWS IoT SiteWise 게이트웨이 클라이언트**를 선택합니다.

1. **신뢰**를 선택하세요.

## OPC UA 클라이언트 인증서 내보내기
<a name="export-opc-ua-client-certificate"></a>

일부 OPC UA 서버는 SiteWise Edge 게이트웨이를 신뢰하기 위해 OPC UA 클라이언트 인증서 파일에 액세스해야 합니다. OPC UA 서버에 적용되는 경우, 다음 절차를 사용하여 SiteWise Edge 게이트웨이에서 OPC UA 클라이언트 인증서를 내보낼 수 있습니다. 그런 다음 OPC UA 서버에서 인증서를 가져올 수 있습니다.

**소스에 대한 OPC UA 클라이언트 인증서 파일을 내보내려면**

1. 다음 명령을 실행하여 인증서 파일이 있는 디렉터리로 변경합니다. *sitewise-work*를 *aws.iot.SiteWiseEdgeCollectorOpcua* Greengrass 작업 폴더의 로컬 스토리지 경로로 바꾸고 *source-name*을 데이터 소스의 이름으로 바꿉니다.

   기본적으로 Greengrass 작업 폴더는 Linux의 경우 */greengrass/v2/work/aws.iot.SiteWiseEdgeCollectorOpcua*이고의 경우 *C:/greengrass/v2/work/aws.iot.SiteWiseEdgeCollectorOpcua*입니다Microsoft Windows.

   ```
   cd /sitewise-work/source-name/opcua-certificate-store
   ```

1. 이 소스에 대한 SiteWise Edge 게이트웨이의 OPC UA 클라이언트 인증서가 `aws-iot-opcua-client.pfx` 파일에 있습니다.

   다음 명령을 실행하여 인증서를 `aws-iot-opcua-client-certificate.pem`라는 `.pem` 파일로 내보냅니다

   ```
   keytool -exportcert -v -alias aws-iot-opcua-client -keystore aws-iot-opcua-client.pfx -storepass amazon -storetype PKCS12 -rfc > aws-iot-opcua-client-certificate.pem
   ```

1. SiteWise Edge 게이트웨이에서 OPC UA 서버로 인증서 파일(`aws-iot-opcua-client-certificate.pem`)을 전송합니다.

   그러려면 SSH 프로토콜을 사용하여 파일을 전송하는 `scp` 프로그램과 같은 일반적인 소프트웨어를 사용하면 됩니다. 자세한 내용은 *Wikipedia*에서 [비밀번호 복사](https://en.wikipedia.org/wiki/Secure_copy)를 참조하세요.
**참고**  
SiteWise Edge 게이트웨이가 Amazon Elastic Compute Cloud(Amazon EC2)에서 실행 중이며 SiteWise Edge 게이트웨이에 처음 연결하는 경우, 연결하기 위한 필수 조건을 구성해야 합니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [SSH를 사용하여 Linux 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-to-linux-instance.html)을 참조하세요.

1. SiteWise Edge 게이트웨이를 신뢰하기 위해 OPC UA 서버에서 인증서 파일(`aws-iot-opcua-client-certificate.pem`)을 가져옵니다. 사용하는 원본 서버에 따라 단계가 다를 수 있습니다. 서버 설명서를 참조하세요.

# OPC UA를 사용하여 데이터 수집 범위 필터링
<a name="opcua-data-acquisition"></a>

스캔 모드 및 데드밴드 범위를 사용하여 OPC UA 소스로 데이터를 수집하는 방식을 제어할 수 있습니다. 이러한 기능을 통해 수집할 데이터의 종류와 서버 및 SiteWise Edge 게이트웨이가 이 정보를 교환하는 방법과 시기를 제어할 수 있습니다.

## 품질을 기반으로 데이터 수집 또는 필터링
<a name="opcua-data-quality"></a>

OPC UA 소스에서 수집되는 데이터를 제어하도록 데이터 품질 설정을 구성할 수 있습니다. 데이터 소스에는 전송 시 품질 등급이 메타데이터로 포함됩니다. 다음 옵션 중 하나 또는 전부를 선택할 수 있습니다.
+ `Good`
+ `Bad`
+ `Uncertain`

### NaN 또는 null 값 처리
<a name="nan-null"></a>

SiteWise Edge는 NaN 및 null 값의 수집 및 처리를 지원합니다.
+ *NaN(숫자가 아님):* 정의되지 않았거나 대표할 수 없는 숫자 결과를 나타냅니다.
+ *Null:* 누락된 데이터를 나타냅니다.

IoT SiteWise OPC UA 수집기는 BAD 또는 UNCERTAIN 품질로 NaN 및 Null 값을 캡처합니다. 이러한 특수 값은 로컬 스트림에 기록되므로 보다 포괄적인 데이터 수집이 가능합니다.

## 스캔 모드로 데이터 수집 빈도 제어
<a name="opcua-scanmode"></a>

OPC UA 스캔 모드를 구성하여 OPC UA 소스에서 데이터를 수집하는 방식을 제어할 수 있습니다. 구독 또는 폴링 모드를 선택할 수 있습니다.
+ 구독 모드 – OPC UA 소스는 스캔 속도에 정의된 빈도로 SiteWise Edge 게이트웨이로 보낼 데이터를 수집합니다. 서버는 값이 변경된 경우에만 데이터를 전송하므로 이 빈도는 SiteWise Edge 게이트웨이가 데이터를 수신하는 최대 빈도입니다.
+ 폴링 모드 – SiteWise Edge 게이트웨이는 스캔 속도에 정의된 설정된 빈도로 OPC UA 소스를 폴링합니다. 서버는 값 변경 여부에 관계없이 데이터를 전송하므로 SiteWise Edge 게이트웨이는 항상 이 간격으로 데이터를 수신합니다.
**참고**  
폴링 모드 옵션은 이 소스의 데드밴드 설정보다 우선 적용됩니다.

## 데드밴드 범위를 사용하여 OPC UA 데이터 수집 필터링
<a name="opcua-deadbanding"></a>

 OPC UA 소스 속성 그룹에 데드밴드를 적용하여 특정 데이터를 AWS 클라우드로 보내는 대신 필터링하여 폐기할 수 있습니다. 데드밴드는 OPC UA 소스에서 들어오는 데이터 값의 예상 변동 기간을 지정합니다. 값이이 기간 내에 있으면 OPC UA 서버가 해당 값을 AWS 클라우드로 전송하지 않습니다. 데드밴드 필터링을 사용하여 처리하여 AWS 클라우드로 전송하는 데이터의 양을 줄일 수 있습니다. SiteWise Edge 게이트웨이에 대한 OPC UA 소스를 설정하는 방법은 [AWS IoT SiteWise Edge 게이트웨이용 OPC UA 데이터 소스](configure-sources-opcua.md) 섹션을 참조하세요.

**참고**  
 서버는 데드밴드에서 지정한 기간 내에 있는 모든 데이터를 삭제합니다. 이러한 폐기된 데이터는 복구할 수 없습니다.

### 데드밴드 유형
<a name="deadband-types"></a>

 OPC UA 서버 속성 그룹에 두 가지 유형의 데드밴드를 지정할 수 있습니다. 이를 통해 AWS 클라우드로 전송할 데이터의 양과 폐기할 데이터의 양을 선택할 수 있습니다.
+ 백분율 — 측정값의 예상 변동 비율을 사용하여 기간을 지정합니다. 서버는이 백분율에서 정확한 기간을 계산하고를 초과하는 데이터를 AWS 클라우드로 전송합니다. 예를 들어 화씨 -100도에서 화씨 \$1100도 범위의 센서에 2% 데드밴드 값을 지정하면 값이 화씨 4도 이상으로 변경될 때 AWS 클라우드로 데이터를 보내도록 서버에 지시합니다.
**참고**  
 소스 서버에서 엔지니어링 단위를 정의하지 않는 경우 이 기간의 최소 및 최대 데드밴드 값을 선택적으로 지정할 수 있습니다. 엔지니어링 단위 범위가 제공되지 않은 경우 OPC UA 서버는 측정 데이터 유형의 전체 범위를 기본적으로 사용합니다.
+ 절대 — 정확한 단위를 사용하여 기간을 지정합니다. 예를 들어 센서에서 데드밴드 값을 2로 지정하면 값이 2단위 이상 변경될 때 AWS 클라우드로 데이터를 보내도록 서버에 지시합니다. 정상 작동 중에 변동이 정기적으로 예상되는 동적 환경에는 절대 데드밴딩을 사용할 수 있습니다.

### 데드밴드 타임아웃
<a name="deadband-timeout"></a>

 데드밴드 타임아웃 설정을 선택적으로 구성할 수 있습니다. 이 타임아웃이 지나면 OPC UA 서버는 예상 데드밴드 변동 범위 내에 있더라도 현재 측정값을 전송합니다. 제한 시간 설정을 사용하면 값이 정의된 데드밴드 기간을 초과하지 않더라도 AWS IoT SiteWise 가 항상 안정적인 데이터 스트림을 수집하도록 할 수 있습니다.

# SiteWise Edge에서 OPC UA 노드 필터 사용
<a name="opc-ua-node-filters"></a>

SiteWise Edge 게이트웨이에 대한 OPC UA 데이터 소스를 정의할 때 노드 필터를 정의할 수 있습니다. 노드 필터를 사용하면 SiteWise Edge 게이트웨이가 클라우드로 보내는 데이터 스트림 경로를 제한할 수 있습니다. 노드 필터를 사용하면 AWS IoT SiteWise에서 모델링하는 데이터에 대한 경로만 포함하여 SiteWise Edge 게이트웨이의 시작 시간과 CPU 사용량을 줄일 수 있습니다. 기본적으로 SiteWise Edge 게이트웨이는 `/Server/`로 시작하는 경로를 제외한 모든 OPC UA 경로를 업로드합니다. 노드 필터에 `*` 및 `**` 와일드카드 문자를 사용하여 하나의 필터에 여러 데이터 스트림 경로를 포함할 수 있습니다. SiteWise Edge 게이트웨이에 대한 OPC UA 소스를 설정하는 방법은 [AWS IoT SiteWise Edge 게이트웨이용 OPC UA 데이터 소스](configure-sources-opcua.md) 섹션을 참조하세요.

**참고**  
AWS IoT SiteWise 는 소스를 추가하거나 편집할 때마다 SiteWise Edge 게이트웨이를 다시 시작합니다. SiteWise Edge 게이트웨이는 소스 구성을 업데이트하는 동안 데이터를 수집하지 않습니다. SiteWise Edge 게이트웨이를 다시 시작하는 시간은 SiteWise Edge 게이트웨이 소스의 태그 수에 따라 달라집니다. 다시 시작 시간은 몇 초(태그가 거의 없는 SiteWise Edge 게이트웨이)에서 몇 분(태그가 많은 SiteWise Edge 게이트웨이)에 이르기까지 다양할 수 있습니다.

다음 표에는 OPC UA 데이터 소스를 필터링하는 데 사용할 수 있는 와일드카드가 나열되어 있습니다.


**OPC UA 노드 필터 와일드카드**  

| 와일드카드 | 설명 | 
| --- | --- | 
| \$1 | 데이터 스트림 경로의 단일 레벨과 일치합니다. | 
| \$1\$1 | 데이터 스트림 경로의 여러 레벨을 일치합니다. | 

**참고**  
광범위한 필터로 소스를 구성한 다음 나중에 보다 제한적인 필터를 사용하도록 소스를 변경하면는 새 필터와 일치하지 않는 데이터 저장을 AWS IoT SiteWise 중지합니다.

**Example : 노드 필터를 사용한 시나리오**  
다음의 가상 데이터 스트림을 고려하세요.  
+ `/WA/Factory 1/Line 1/PLC1`
+ `/WA/Factory 1/Line 1/PLC2`
+ `/WA/Factory 1/Line 2/Counter1`
+ `/WA/Factory 1/Line 2/PLC1`
+ `/OR/Factory 1/Line 1/PLC1`
+ `/OR/Factory 1/Line 2/Counter2`
이전 데이터 스트림을 사용해 노드 필터를 정의하여 OPC UA 소스에서 포함할 데이터를 제한할 수 있습니다.  
+ 이 예제에서 모든 노드를 선택하려면 `/` 또는 `/**/`를 사용합니다. `**` 와일드카드 문자가 있는 여러 디렉터리 또는 폴더를 포함할 수 있습니다.
+ 모든 `PLC` 데이터 스트림을 선택하려면 `/*/*/*/PLC*` 또는 `/**/PLC*`을 사용합니다.
+ 이 예제에서 모든 카운터를 선택하려면 `/**/Counter*` 또는 `/*/*/*/Counter*`를 사용합니다.
+ `Line 2`의 모든 카운터를 선택하려면 `/**/Line 2/Counter*`를 사용합니다.

# 지원되지 않는 데이터 유형 변환
<a name="string-conversion"></a>

선택적으로 단순 배열 및 DateTime 데이터 형식에 AWS IoT SiteWise 대해에서 데이터 형식 변환을 활성화합니다. AWS IoT SiteWise 모든 OPC UA 데이터 형식을 지원하지는 않습니다. 지원되지 않는 데이터를 AWS IoT Greengrass 데이터 스트림으로 보내면 해당 데이터가 손실됩니다. 그러나 지원되지 않는 기본 데이터 형식을 문자열로 변환하면 데이터를 삭제 AWS IoT SiteWise 하지 않고 로 수집할 수 있습니다.는 나중에 필요한 경우 자체 함수를 사용하여 문자열을 다시 원래 데이터 유형 다운스트림으로 변환할 수 있도록 변환된 데이터를 AWS IoT SiteWise 직렬화합니다.

언제든지 데이터 소스에 대한 데이터 유형 변환 설정을 업데이트할 수 있으며 각 데이터 소스에는 고유한 설정이 있을 수 있습니다.

에 데이터 소스를 추가하면 **고급 구성**의 **데이터 유형 변환** 아래에 두 개의 확인란 AWS IoT SiteWise Console이 있습니다. 문자열로 변환할 데이터 유형을 지정할 수 있습니다.

또한 IoT SiteWise OPC UA 수집기는 엣지에서 NaN 또는 null 값을 수락할 수 있습니다.
+ 간단한 데이터 유형의 배열 값을 JSON 문자열로 변환
+ DateTime 값을 ISO 8601 문자열로 변환

## 사전 조건
<a name="string-conversion-prereq"></a>
+ [IoT SiteWise OPC UA 수집기](https://docs.aws.amazon.com/greengrass/v2/developerguide/iotsitewise-opcua-collector-component.html)의 버전 2.5.0 이상을 사용합니다.

## 제한 사항
<a name="string-conversion-limits"></a>

다음은 AWS IoT SiteWise에서 OPC UA 데이터 유형을 문자열로 변환하는 데 따르는 제한 사항입니다.
+ 복잡한 데이터 유형 변환은 지원되지 않습니다.
+ 변환 후 문자열 제한은 1,024바이트입니다. 문자열이 1024바이트보다 길면가 문자열을 거부합니다 AWS IoT SiteWise.

# SiteWise Edge에 대한 데이터 소스 인증 구성
<a name="configure-source-authentication-ggv2"></a>

OPC UA 서버에 연결하기 위해 인증 자격 증명이 필요한 경우 AWS Secrets Manager 를 사용하여 SiteWise Edge 게이트웨이에 보안 암호를 생성하고 배포할 수 있습니다.는 디바이스에서 보안 암호를 AWS Secrets Manager 암호화하여 사용자 이름과 암호를 사용해야 할 때까지 안전하게 유지합니다. AWS IoT Greengrass 보안 암호 관리자 구성 요소에 대한 자세한 내용은 *AWS IoT Greengrass Version 2 개발자 안내서*의 [보안 암호 관리자](https://docs.aws.amazon.com/greengrass/v2/developerguide/secret-manager-component.html)를 참조하세요.

Secrets Manager 보안 암호에 대한 액세스 관리에 대한 자세한 내용은 다음을 참조하세요.
+ [AWS Secrets Manager 보안 암호에 대한 권한이 있는 사용자.](https://docs.aws.amazon.com/secretsmanager/latest/userguide/determine-acccess_examine-iam-policies.html)
+ [ 계정 내에서 요청이 허용되는지 또는 거부되는지 여부를 결정합니다](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow).

## 1단계: 소스 인증 암호 만들기
<a name="create-secrets-ggv2"></a>

 AWS Secrets Manager 를 사용하여 데이터 소스에 대한 인증 암호를 생성할 수 있습니다. 암호에서 데이터 소스에 대한 인증 세부 정보를 포함하는 **username** 및 **password** 키-값 쌍을 정의합니다.

**보안 암호(콘솔) 생성**

1. [AWS Secrets Manager 콘솔](https://console.aws.amazon.com/secretsmanager/)로 이동합니다.

1. **새 보안 암호 저장**을 선택합니다.

1. **암호 유형**에서 **다른 암호 유형**을 선택합니다.

1. **키/값 페어**에서 다음을 수행합니다.

   1. 첫 번째 입력 상자에 **username**을 입력하고 두 번째 입력 상자에 사용자 이름을 입력합니다.

   1. **Add row(행 추가)**를 선택합니다.

   1. 첫 번째 입력 상자에 **password**를 입력하고 두 번째 입력 상자에 암호를 입력합니다.

1. **암호화 키**로 **aws/secretsmanager**를 선택하고 **다음**을 선택합니다.

1. **새 암호 저장** 페이지에서 **암호 이름**을 입력합니다.

1. (선택 사항) 이 암호를 식별하는 데 도움이 되는 **설명**을 입력하고 **다음**을 선택합니다.

1. (선택 사항) **새 암호 저장** 페이지에서 **자동 교체**를 켤 수 있습니다. 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [비밀번호 교체](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html)를 참조하세요.

1. 교체 일정을 지정합니다.

1. 이 암호를 교체할 수 있는 Lambda 함수를 선택한 후 **다음**을 선택합니다.

1. 보안 구성을 검토한 다음 **저장**을 선택합니다.

SiteWise Edge 게이트웨이가 상호 작용할 수 있는 권한을 부여하려면 SiteWise Edge 게이트웨이 AWS Secrets Manager의 IAM 역할이 `secretsmanager:GetSecretValue` 작업을 허용해야 합니다. **Greengrass 코어 디바이스**를 사용하여 IAM 정책을 검색할 수 있습니다. IAM 정책 업데이트에 대한 자세한 내용은 *AWS Identity and Access Management 사용 설명서*의 [IAM 정책 편집](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)을 참조하세요.

**Example 정책**  
*secret-arn*을 이전 단계에서 생성한 암호의 Amazon 리소스 이름(ARN)으로 변경합니다. 보안 암호의 ARN을 가져오는 방법에 대한 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [에서 보안 암호 찾기 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html)를 참조하세요.    
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement":[
  {
     "Action":[
        "secretsmanager:GetSecretValue"
     ],
     "Effect":"Allow",
     "Resource":[
        "arn:aws:secretsmanager:us-east-1:123456789012:secret/*"
     ]
  }
]
}
```

## 2단계: SiteWise Edge 게이트웨이 디바이스에 암호 배포
<a name="deploy-secrets-ggv2"></a>

 AWS IoT SiteWise 콘솔을 사용하여 SiteWise Edge 게이트웨이에 보안 암호를 배포할 수 있습니다.

**암호를 업데이트하려면(콘솔) 다음을 수행하세요.**

1. [AWS IoT SiteWise 콘솔](https://console.aws.amazon.com/iotsitewise/)로 이동합니다.

1. 탐색 창에서 **게이트웨이**를 선택합니다.

1. **게이트웨이** 목록에서 대상 SiteWise Edge 게이트웨이를 선택합니다.

1. **게이트웨이 구성** 섹션에서 **Greengrass 코어 디바이스** 링크를 선택하여 SiteWise Edge 게이트웨이와 연결된 AWS IoT Greengrass 코어를 엽니다.

1. 탐색 창에서 **배포**를 선택합니다.

1. 대상 배포를 선택한 다음 **수정**을 선택합니다.

1. **대상 지정** 페이지에서 **다음**을 선택합니다.

1. **구성 요소 선택** 페이지의 **공용 구성 요소** 섹션에서 **선택한 구성 요소만 표시**를 끕니다.

1. **AWS.Greengrass.SecretManager** 구성 요소를 검색하여 선택한 후 **다음**을 선택합니다.

1. **선택한 구성 요소** 목록에서 **aws.greengrass.SecretManager** 구성 요소를 선택한 다음 **구성 요소 구성**을 선택합니다.

1. **병합할 구성** 필드에 다음 JSON 객체를 추가합니다.
**참고**  
*secret-arn*을 이전 단계에서 생성한 암호의 ARN으로 변경합니다. 보안 암호의 ARN을 가져오는 방법에 대한 자세한 내용은 *AWS Secrets Manager 사용 설명서*의 [에서 보안 암호 찾기 AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_search-secret.html)를 참조하세요.

   ```
   {
   "cloudSecrets":[
     {
        "arn":"secret-arn"
     }
   ]
   }
   ```

1. **확인**을 선택합니다.

1. **다음**을 선택합니다.

1. **구성 고급 설정** 페이지에서 **다음**을 선택합니다.

1. **배포 구성을 검토한 다음 배포**를 선택합니다.

## 3단계: 인증 구성 추가
<a name="add-authentication-configurations"></a>

 AWS IoT SiteWise 콘솔을 사용하여 SiteWise Edge 게이트웨이에 인증 구성을 추가할 수 있습니다.

**인증 구성을 추가하려면(콘솔) 다음을 수행하세요.**

1. [AWS IoT SiteWise 콘솔](https://console.aws.amazon.com/iotsitewise/)로 이동합니다.

1. **게이트웨이** 목록에서 대상 SiteWise Edge 게이트웨이를 선택합니다.

1. **데이터 소스** 목록에서 대상 데이터 소스를 선택한 다음 **편집**을 선택합니다.

1. **데이터 소스 추가** 페이지에서 **고급 구성**을 선택합니다.

1. **인증 구성**의 경우 이전 단계에서 배포한 암호를 선택합니다.

1. **저장**을 선택합니다.