기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
클라이언트 장치 인증
클라이언트 장치 인증 구성 요소 (aws.greengrass.clientdevices.Auth
) 는 클라이언트 장치를 인증하고 클라이언트 장치 작업을 승인합니다.
참고
클라이언트 디바이스는 Greengrass 코어 디바이스에 연결하여 처리할 MQTT 메시지와 데이터를 전송하는 로컬 IoT 디바이스입니다. 자세한 내용은 로컬 IoT 기기와 상호작용 단원을 참조하십시오.
버전
참고
클라이언트 장치 인증 버전 2.3.0이 중단되었습니다. 클라이언트 장치 인증 버전 2.3.1 이상으로 업그레이드하는 것이 좋습니다.
이 구성 요소의 버전은 다음과 같습니다.
-
2.4.x
-
2.3.x
-
2.2.x
-
2.1.x
-
2.0.x
유형
이 구성 요소는 플러그인 구성 요소 () aws.greengrass.plugin
입니다. Greengrass 핵은 핵과 동일한 자바 가상 머신 (JVM) 에서 이 컴포넌트를 실행합니다. 코어 디바이스에서 이 구성 요소의 버전을 변경하면 NUCLEUS가 다시 시작됩니다.
이 구성 요소는 Greengrass 핵과 동일한 로그 파일을 사용합니다. 자세한 내용은 모니터 AWS IoT Greengrass 로그 단원을 참조하십시오.
자세한 내용은 구성 요소 유형 단원을 참조하십시오.
운영 체제
이 구성 요소는 다음 운영 체제를 실행하는 코어 디바이스에 설치할 수 있습니다.
Linux
Windows
요구 사항
이 구성 요소의 요구 사항은 다음과 같습니다.
-
Greengrass 서비스 역할은 사용자와 연결되어 있어야 AWS 계정 하며 권한을 허용해야 합니다.
iot:DescribeCertificate
-
코어 디바이스의 AWS IoT 정책은 다음 권한을 허용해야 합니다.
-
greengrass:GetConnectivityInfo
, 리소스에는 이 구성 요소를 실행하는 코어 ARN 장치의 리소스가 포함됩니다. -
greengrass:VerifyClientDeviceIoTCertificateAssociation
여기서 리소스에는 코어 디바이스에 연결되는 각 클라이언트 디바이스의 Amazon 리소스 이름 (ARN) 이 포함됩니다. -
greengrass:VerifyClientDeviceIdentity
-
greengrass:PutCertificateAuthorities
-
iot:Publish
, 여기서 리소스에는 다음 ARN MQTT 주제가 포함됩니다.-
$aws/things/
coreDeviceThingName
*-gci/shadow/get
-
-
iot:Subscribe
, 리소스에는 다음 ARNs MQTT 주제 필터가 포함됩니다.-
$aws/things/
coreDeviceThingName
*-gci/shadow/update/delta -
$aws/things/
coreDeviceThingName
*-gci/shadow/get/accepted
-
-
iot:Receive
, 리소스에 다음 ARNs MQTT 주제가 포함된 경우:-
$aws/things/
coreDeviceThingName
*-gci/shadow/update/delta -
$aws/things/
coreDeviceThingName
*-gci/shadow/get/accepted
-
자세한 내용은 데이터 영역 작업에 대한 AWS IoT 정책 및 클라이언트 AWS IoT 장치를 지원하기 위한 최소 정책 단원을 참조하세요.
-
-
(선택 사항) 오프라인 인증을 사용하려면 AWS IoT Greengrass 서비스에서 사용하는 AWS Identity and Access Management (IAM) 역할에 다음 권한이 포함되어야 합니다.
-
greengrass:ListClientDevicesAssociatedWithCoreDevice
코어 디바이스에서 오프라인 인증을 위한 클라이언트를 나열할 수 있도록 합니다.
-
-
클라이언트 장치 인증 구성 요소는 VPC a에서 실행되도록 지원됩니다. VPCa에 이 구성 요소를 배포하려면 다음이 필요합니다.
-
클라이언트 디바이스 인증 구성 요소는 AWS IoT data, AWS IoT 자격 증명 및 Amazon S3에 연결되어 있어야 합니다.
-
엔드포인트 및 포트
이 구성 요소는 기본 작업에 필요한 엔드포인트 및 포트 외에도 다음 엔드포인트 및 포트에 대한 아웃바운드 요청을 수행할 수 있어야 합니다. 자세한 내용은 프록시 또는 방화벽을 통한 장치 트래픽 허용 단원을 참조하십시오.
엔드포인트 | 포트 | 필수 | 설명 |
---|---|---|---|
|
443 | 예 |
사물 인증서에 대한 AWS IoT 정보를 가져오는 데 사용됩니다. |
의존성
구성 요소를 배포하면 호환되는 버전의 종속 AWS IoT Greengrass 항목도 배포됩니다. 즉, 구성 요소를 성공적으로 배포하려면 구성 요소 및 해당 종속성에 대한 요구 사항을 모두 충족해야 합니다. 이 섹션에는 이 구성 요소의 릴리스된 버전에 대한 종속성과 각 종속성에 대한 구성 요소 버전을 정의하는 시맨틱 버전 제약 조건이 나열되어 있습니다. 콘솔에서 구성 요소의 각 버전에 대한 종속성을 볼 수도 있습니다.AWS IoT Greengrass
- 2.5.1
-
다음 표에는 이 구성 요소의 버전 2.5.1에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.6.0 <2.14.0 소프트 - 2.4.4 - 2.5.0
-
다음 표에는 이 구성 요소의 버전 2.4.4에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.6.0 <2.13.0 소프트 - 2.4.3
-
다음 표에는 이 구성 요소의 버전 2.4.3에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.6.0 <2.12.0 소프트 - 2.4.1 and 2.4.2
-
다음 표에는 이 구성 요소의 버전 2.4.1 및 2.4.2에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.6.0 <2.11.0 소프트 - 2.3.0 – 2.4.0
-
다음 표에는 이 구성 요소의 버전 2.3.0 ~ 2.4.0에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.6.0 <2.10.0 소프트 - 2.3.0
-
다음 표에는 이 구성 요소의 버전 2.3.0에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.6.0 <2.10.0 소프트 - 2.2.3
-
다음 표에는 이 구성 요소의 버전 2.2.3에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.6.0 <=2.9.0 소프트 - 2.2.2
-
다음 표에는 이 구성 요소의 버전 2.2.2에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.6.0 <=2.8.0 소프트 - 2.2.1
-
다음 표에는 이 구성 요소의 버전 2.2.1에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.6.0 <2.8.0 소프트 - 2.2.0
-
다음 표에는 이 구성 요소의 버전 2.2.0에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.6.0 <2.7.0 소프트 - 2.1.0
-
다음 표에는 이 구성 요소의 버전 2.1.0에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.2.0 <2.7.0 소프트 - 2.0.4
-
다음 표에는 이 구성 요소의 버전 2.0.4에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.2.0 <2.6.0 소프트 - 2.0.2 and 2.0.3
-
다음 표에는 이 구성 요소의 버전 2.0.2 및 2.0.3에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.2.0 <2.5.0 소프트 - 2.0.1
-
다음 표에는 이 구성 요소의 버전 2.0.1에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.2.0 <2.4.0 소프트 - 2.0.0
-
다음 표에는 이 구성 요소의 버전 2.0.0에 대한 종속성이 나와 있습니다.
종속성 호환되는 버전 종속성 유형 그린그래스 핵 >=2.2.0 <2.3.0 소프트
구성 요소 종속성에 대한 자세한 내용은 구성 요소 레시피 참조를 참조하십시오.
구성
이 구성 요소는 구성 요소를 배포할 때 사용자 지정할 수 있는 다음과 같은 구성 매개 변수를 제공합니다.
참고
구독 권한은 로컬 MQTT 브로커에 대한 클라이언트 구독 요청 중에 평가됩니다. 클라이언트의 기존 구독 권한이 취소되면 클라이언트는 더 이상 주제를 구독할 수 없습니다. 하지만 이전에 구독한 주제의 메시지는 계속 수신됩니다. 이 동작을 방지하려면 구독 권한을 취소하여 클라이언트를 강제로 재인증한 후 로컬 MQTT 브로커를 다시 시작해야 합니다.
MQTT5 broker (EMQX) 구성 요소의 경우 restartIdentifier
구성을 업데이트하여 5 브로커를 다시 시작하십시오. MQTT
MQTT3.1.1 브로커 (Moquette) 구성 요소의 경우 기본적으로 서버 인증서가 변경되어 클라이언트가 재인증해야 하는 경우 매주 다시 시작됩니다. 코어 장치의 연결 정보 (IP 주소) 를 변경하거나 브로커 구성 요소를 제거한 다음 나중에 다시 배포하도록 배포하여 강제로 다시 시작할 수 있습니다.
- v2.5.0
-
deviceGroups
-
장치 그룹은 코어 장치에 연결하고 통신할 수 있는 권한이 있는 클라이언트 장치 그룹입니다. 선택 규칙을 사용하여 클라이언트 장치 그룹을 식별하고 각 장치 그룹에 대한 권한을 지정하는 클라이언트 장치 권한 부여 정책을 정의합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
formatVersion
-
이 구성 개체의 형식 버전입니다.
다음 옵션 중 하나를 선택합니다.
-
2021-03-05
-
definitions
-
이 코어 디바이스의 디바이스 그룹. 각 정의는 클라이언트 장치가 그룹의 구성원인지 평가하는 선택 규칙을 지정합니다. 또한 각 정의는 선택 규칙과 일치하는 클라이언트 장치에 적용할 권한 정책을 지정합니다. 클라이언트 장치가 여러 장치 그룹의 구성원인 경우 장치 권한은 각 그룹의 권한 정책으로 구성됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
groupNameKey
-
이 장치 그룹의 이름. Replace
groupNameKey
이 장치 그룹을 식별하는 데 도움이 되는 이름을 사용하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
selectionRule
-
이 장치 그룹의 구성원인 클라이언트 장치를 지정하는 쿼리입니다. 클라이언트 장치가 연결되면 코어 장치는 이 선택 규칙을 평가하여 클라이언트 장치가 이 장치 그룹의 구성원인지 확인합니다. 클라이언트 장치가 구성원인 경우 코어 장치는 이 장치 그룹의 정책을 사용하여 클라이언트 장치의 동작을 승인합니다.
각 선택 규칙은 클라이언트 장치와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 선택 규칙 조항으로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 AWS IoT Core 개발자 안내서의AWS IoT 플릿 인덱싱 쿼리 구문을 참조하십시오.
*
와일드카드를 사용하면 하나의 선택 규칙 조항으로 여러 클라이언트 장치를 일치시킬 수 있습니다. 사물 이름의 처음과 끝에 이 와일드카드를 사용하여 이름이 지정한 문자열로 시작하거나 끝나는 클라이언트 장치를 일치시킬 수 있습니다. 이 와일드카드를 사용하여 모든 클라이언트 디바이스를 일치시킬 수도 있습니다.참고
콜론 문자 () 가 포함된 값을 선택하려면 콜론을 이스케이프하여 백슬래시 문자 (
:
) 를 사용하십시오.\
와 같은 JSON 형식에서는 백슬래시 문자를 이스케이프 처리해야 하므로 콜론 문자 앞에 백슬래시 문자를 두 개 입력해야 합니다. 예를 들어, 이름이 다음과 같은 항목을thingName: MyTeam\\:ClientDevice1
선택하도록 지정합니다.MyTeam:ClientDevice1
다음 선택기를 지정할 수 있습니다.
-
thingName
— 클라이언트 장치 사물의 이름 AWS IoT .
예 선택 규칙 예시
다음 선택 규칙은 이름이
MyClientDevice1
또는 인 클라이언트 장치와MyClientDevice2
일치합니다.thingName: MyClientDevice1 OR thingName: MyClientDevice2
예 선택 규칙 예시 (와일드카드 사용)
다음 선택 규칙은 이름이 로 시작하는 클라이언트 디바이스와
MyClientDevice
일치합니다.thingName: MyClientDevice*
예 선택 규칙 예시 (와일드카드 사용)
다음 선택 규칙은 이름이 로
MyClientDevice
끝나는 클라이언트 장치와 일치합니다.thingName: *MyClientDevice
예 선택 규칙 예시 (모든 장치 매칭)
다음 선택 규칙은 모든 클라이언트 장치와 일치합니다.
thingName: *
-
policyName
-
이 장치 그룹의 클라이언트 장치에 적용되는 권한 정책.
policies
개체에 정의한 정책 이름을 지정합니다.
policies
-
코어 장치에 연결하는 클라이언트 장치에 대한 클라이언트 장치 권한 부여 정책. 각 권한 부여 정책은 클라이언트 장치가 이러한 작업을 수행할 수 있는 일련의 작업과 리소스를 지정합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
policyNameKey
-
이 권한 부여 정책의 이름. Replace
policyNameKey
이 권한 부여 정책을 식별하는 데 도움이 되는 이름을 사용하십시오. 이 정책 이름을 사용하여 장치 그룹에 적용할 정책을 정의할 수 있습니다.이 객체에는 다음 정보가 포함되어 있어야 합니다.
statementNameKey
-
이 정책 설명의 이름. Replace
statementNameKey
이 정책 설명을 식별하는 데 도움이 되는 이름을 포함하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
operations
-
이 정책에서 리소스를 허용하기 위한 작업 목록.
다음 작업 중 하나를 포함할 수 있습니다.
-
mqtt:connect
— 코어 디바이스에 연결할 수 있는 권한을 부여합니다. 클라이언트 장치에 코어 장치에 연결하려면 이 권한이 있어야 합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:clientId:
— 클라이언트 장치가 핵심 장치의 MQTT 브로커에 연결하는 데 사용하는 클라이언트 ID를 기반으로 액세스를 제한합니다. ReplacedeviceClientId
deviceClientId
사용할 클라이언트 ID와 함께.
-
-
mqtt:publish
— 주제에 MQTT 메시지를 게시할 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topic:
— 클라이언트 장치가 메시지를 게시하는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopic
mqttTopic
사용할 주제와 함께.이 리소스는 MQTT 주제 와일드카드를 지원하지 않습니다.
-
-
mqtt:subscribe
— MQTT 주제 필터를 구독하여 메시지를 받을 수 있는 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topicfilter:
— 클라이언트 장치가 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopicFilter
mqttTopicFilter
사용할 주제 필터와 함께.이 리소스는
+
및#
MQTT 주제 와일드카드를 지원합니다. 자세한 내용은 AWS IoT Core 개발자 안내서의 MQTT 주제를 참조하십시오.클라이언트 장치는 사용자가 허용하는 정확한 주제 필터를 구독할 수 있습니다. 예를 들어 클라이언트 장치가
mqtt:topicfilter:client/+/status
리소스를 구독하도록 허용하면 클라이언트 장치는 구독할 수client/+/status
있지만 구독할 수는 없습니다client/client1/status
.
-
*
와일드카드를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다. -
resources
-
이 정책에서 작업을 허용할 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정하십시오. 예를 들어
mqtt:publish
작업을 지정하는 정책에 MQTT 주제 리소스 목록 (mqtt:topic:
) 을 지정할 수 있습니다.mqttTopic
리소스 변수 내 아무 곳에나
*
와일드카드를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다. 예를 들어 해당 입력과 일치하는 리소스에 대한 액세스를mqtt:topic:my*
허용하도록 지정할 수 있습니다.지원되는 리소스 변수는 다음과 같습니다.
-
mqtt:topic:${iot:Connection.Thing.ThingName}
이는 정책이 평가되는 AWS IoT Core 레지스트리의 대상 사물의 이름으로 확인됩니다. AWS IoT Core 장치가 인증될 때 제공하는 인증서를 사용하여 연결을 확인하는 데 사용할 항목을 결정합니다. 이 정책 변수는 장치가 프로토콜을 통해 MQTT 또는 MQTT WebSocket 프로토콜을 통해 연결되는 경우에만 사용할 수 있습니다.
-
statementDescription
-
(선택 사항) 이 정책 설명에 대한 설명.
certificates
-
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
serverCertificateValiditySeconds
-
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간 (초). 이 옵션을 구성하여 클라이언트 장치의 연결을 끊었다가 코어 장치에 다시 연결하는 빈도를 사용자 지정할 수 있습니다.
이 구성 요소는 만료되기 24시간 전에 로컬 MQTT 서버 인증서를 교체합니다. Moquette MQTT Broker 구성 요소와 같은 MQTT 브로커가 새 인증서를 생성하고 다시 시작합니다. 이 경우 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 끊어집니다. 잠시 후 클라이언트 장치를 코어 장치에 다시 연결할 수 있습니다.
기본값:
604800
(7일)최소값:
172800
(2일)최대치:
864000
(10일)
performance
-
(선택 사항) 이 코어 디바이스의 성능 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
maxActiveAuthTokens
-
(선택 사항) 활성 클라이언트 장치 인증 토큰의 최대 수. 이 수를 늘리면 더 많은 수의 클라이언트 장치를 재인증하지 않고도 단일 코어 장치에 연결할 수 있습니다.
기본값:
2500
cloudRequestQueueSize
-
(선택 사항) 이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.
기본값:
100
maxConcurrentCloudRequests
-
(선택 사항) 에 전송할 최대 동시 요청 수입니다. AWS 클라우드이 수를 늘리면 많은 수의 클라이언트 장치를 연결하는 핵심 장치의 인증 성능을 향상시킬 수 있습니다.
기본값:
1
certificateAuthority
-
(선택 사항) 핵심 장치 중간 기관을 자체 중간 인증 기관으로 대체하기 위한 인증 기관 구성 옵션.
참고
사용자 지정 인증 기관 (CA) 으로 Greengrass 코어 디바이스를 구성하고 동일한 CA를 사용하여 클라이언트 디바이스 인증서를 발급하는 경우 Greengrass는 클라이언트 디바이스 작업에 대한 권한 부여 정책 검사를 우회합니다. MQTT 클라이언트 장치 인증 구성 요소는 사용하도록 구성된 CA에서 서명한 인증서를 사용하여 클라이언트를 완전히 신뢰합니다.
사용자 지정 CA를 사용할 때 이 동작을 제한하려면 다른 CA 또는 중간 CA를 사용하여 클라이언트 장치를 만들고 서명한 다음 올바른 중간 CA를 가리키도록
certificateUri
및certificateChainUri
필드를 조정하십시오.이 개체에는 다음 정보가 포함됩니다.
- certificateUri
-
인증서의 위치. 하드웨어 보안 모듈에 저장된 인증서를 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다. URI
certificateChainUri
-
코어 장치 CA의 인증서 체인 위치. 이는 루트 CA로 돌아가는 완전한 인증서 체인이어야 합니다. 하드웨어 보안 모듈에 저장된 인증서 URI 체인을 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다.
privateKeyUri
-
코어 디바이스의 개인 키 위치. 하드웨어 보안 모듈에 저장된 인증서 개인 키를 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다. URI
security
-
(선택 사항) 이 코어 디바이스의 보안 구성 옵션. 이 개체에는 다음 정보가 들어 있습니다.
clientDeviceTrustDurationMinutes
-
코어 장치를 사용하여 재인증해야 하기 전까지 클라이언트 장치의 인증 정보를 신뢰할 수 있는 기간 (분). 기본값은 1입니다.
metrics
-
(선택 사항) 이 코어 장치에 대한 메트릭 옵션. 오류 지표는 클라이언트 장치 인증에 오류가 있는 경우에만 표시됩니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
disableMetrics
-
disableMetrics
필드가 로true
설정된 경우 클라이언트 장치 인증은 지표를 수집하지 않습니다.기본값:
false
aggregatePeriodSeconds
-
집계 기간 (초) 은 클라이언트 장치 인증이 메트릭을 집계하여 원격 분석 에이전트로 보내는 빈도를 결정합니다. 원격 분석 에이전트가 여전히 하루에 한 번 메트릭을 게시하므로 메트릭이 게시되는 빈도는 변경되지 않습니다.
기본값:
3600
- startupTimeoutSeconds
-
(선택 사항) 구성 요소를 시작하는 데 걸리는 최대 시간 (초). 이 제한 시간을
BROKEN
초과하면 구성 요소의 상태가 로 변경됩니다.기본값:
120
예: 구성 병합 업데이트 (제한적 정책 사용)
다음 예제 구성에서는 이름이 로 시작하는 클라이언트 장치가 모든 주제에 대해 연결 및
MyClientDevice
게시/구독할 수 있도록 지정합니다.{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
예: 구성 병합 업데이트 (허용 정책 사용)
다음 예제 구성은 모든 클라이언트 장치가 모든 주제에 대해 연결 및 게시/구독할 수 있도록 지정합니다.
{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
예: 구성 병합 업데이트 (사물 이름 정책 사용)
다음 예제 구성을 사용하면 클라이언트 장치가 클라이언트 장치의 사물 이름으로 시작하고 문자열로 끝나는 주제를 게시할 수
topic
있습니다.{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "myThing": { "selectionRule": "thingName: *", "policyName": "MyThingNamePolicy" } }, "policies": { "MyThingNamePolicy": { "policyStatement": { "statementDescription": "mqtt publish", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:${iot:Connection.Thing.ThingName}/*/topic" ] } } } } }
- v2.4.5
-
deviceGroups
-
장치 그룹은 핵심 장치에 연결하고 통신할 수 있는 권한이 있는 클라이언트 장치 그룹입니다. 선택 규칙을 사용하여 클라이언트 장치 그룹을 식별하고 각 장치 그룹에 대한 권한을 지정하는 클라이언트 장치 권한 부여 정책을 정의합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
formatVersion
-
이 구성 개체의 형식 버전입니다.
다음 옵션 중 하나를 선택합니다.
-
2021-03-05
-
definitions
-
이 코어 디바이스의 디바이스 그룹. 각 정의는 클라이언트 장치가 그룹의 구성원인지 평가하는 선택 규칙을 지정합니다. 또한 각 정의는 선택 규칙과 일치하는 클라이언트 장치에 적용할 권한 정책을 지정합니다. 클라이언트 장치가 여러 장치 그룹의 구성원인 경우 장치 권한은 각 그룹의 권한 정책으로 구성됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
groupNameKey
-
이 장치 그룹의 이름. Replace
groupNameKey
이 장치 그룹을 식별하는 데 도움이 되는 이름을 사용하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
selectionRule
-
이 장치 그룹의 구성원인 클라이언트 장치를 지정하는 쿼리입니다. 클라이언트 장치가 연결되면 코어 장치는 이 선택 규칙을 평가하여 클라이언트 장치가 이 장치 그룹의 구성원인지 확인합니다. 클라이언트 장치가 구성원인 경우 코어 장치는 이 장치 그룹의 정책을 사용하여 클라이언트 장치의 동작을 승인합니다.
각 선택 규칙은 클라이언트 장치와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 선택 규칙 조항으로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 AWS IoT Core 개발자 안내서의AWS IoT 플릿 인덱싱 쿼리 구문을 참조하십시오.
*
와일드카드를 사용하면 하나의 선택 규칙 조항으로 여러 클라이언트 장치를 일치시킬 수 있습니다. 사물 이름의 처음과 끝에 이 와일드카드를 사용하여 이름이 지정한 문자열로 시작하거나 끝나는 클라이언트 장치를 일치시킬 수 있습니다. 이 와일드카드를 사용하여 모든 클라이언트 디바이스를 일치시킬 수도 있습니다.참고
콜론 문자 () 가 포함된 값을 선택하려면 콜론을 이스케이프하여 백슬래시 문자 (
:
) 를 사용하십시오.\
와 같은 JSON 형식에서는 백슬래시 문자를 이스케이프 처리해야 하므로 콜론 문자 앞에 백슬래시 문자를 두 개 입력해야 합니다. 예를 들어, 이름이 다음과 같은 항목을thingName: MyTeam\\:ClientDevice1
선택하도록 지정합니다.MyTeam:ClientDevice1
다음 선택기를 지정할 수 있습니다.
-
thingName
— 클라이언트 장치 사물의 이름 AWS IoT .
예 선택 규칙 예시
다음 선택 규칙은 이름이
MyClientDevice1
또는 인 클라이언트 장치와MyClientDevice2
일치합니다.thingName: MyClientDevice1 OR thingName: MyClientDevice2
예 선택 규칙 예시 (와일드카드 사용)
다음 선택 규칙은 이름이 로 시작하는 클라이언트 디바이스와
MyClientDevice
일치합니다.thingName: MyClientDevice*
예 선택 규칙 예시 (와일드카드 사용)
다음 선택 규칙은 이름이 로
MyClientDevice
끝나는 클라이언트 장치와 일치합니다.thingName: *MyClientDevice
예 선택 규칙 예시 (모든 장치 매칭)
다음 선택 규칙은 모든 클라이언트 장치와 일치합니다.
thingName: *
-
policyName
-
이 장치 그룹의 클라이언트 장치에 적용되는 권한 정책.
policies
개체에 정의한 정책 이름을 지정합니다.
policies
-
코어 장치에 연결하는 클라이언트 장치에 대한 클라이언트 장치 권한 부여 정책. 각 권한 부여 정책은 클라이언트 장치가 이러한 작업을 수행할 수 있는 일련의 작업과 리소스를 지정합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
policyNameKey
-
이 권한 부여 정책의 이름. Replace
policyNameKey
이 권한 부여 정책을 식별하는 데 도움이 되는 이름을 사용하십시오. 이 정책 이름을 사용하여 장치 그룹에 적용할 정책을 정의할 수 있습니다.이 객체에는 다음 정보가 포함되어 있어야 합니다.
statementNameKey
-
이 정책 설명의 이름. Replace
statementNameKey
이 정책 설명을 식별하는 데 도움이 되는 이름을 포함하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
operations
-
이 정책에서 리소스를 허용하기 위한 작업 목록.
다음 작업 중 하나를 포함할 수 있습니다.
-
mqtt:connect
— 코어 디바이스에 연결할 수 있는 권한을 부여합니다. 클라이언트 장치에 코어 장치에 연결하려면 이 권한이 있어야 합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:clientId:
— 클라이언트 장치가 핵심 장치의 MQTT 브로커에 연결하는 데 사용하는 클라이언트 ID를 기반으로 액세스를 제한합니다. ReplacedeviceClientId
deviceClientId
사용할 클라이언트 ID와 함께.
-
-
mqtt:publish
— 주제에 MQTT 메시지를 게시할 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topic:
— 클라이언트 장치가 메시지를 게시하는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopic
mqttTopic
사용할 주제와 함께.이 리소스는 MQTT 주제 와일드카드를 지원하지 않습니다.
-
-
mqtt:subscribe
— MQTT 주제 필터를 구독하여 메시지를 받을 수 있는 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topicfilter:
— 클라이언트 장치가 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopicFilter
mqttTopicFilter
사용할 주제 필터와 함께.이 리소스는
+
및#
MQTT 주제 와일드카드를 지원합니다. 자세한 내용은 AWS IoT Core 개발자 안내서의 MQTT 주제를 참조하십시오.클라이언트 장치는 사용자가 허용하는 정확한 주제 필터를 구독할 수 있습니다. 예를 들어 클라이언트 장치가
mqtt:topicfilter:client/+/status
리소스를 구독하도록 허용하면 클라이언트 장치는 구독할 수client/+/status
있지만 구독할 수는 없습니다client/client1/status
.
-
*
와일드카드를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다. -
resources
-
이 정책에서 작업을 허용할 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정하십시오. 예를 들어
mqtt:publish
작업을 지정하는 정책에 MQTT 주제 리소스 목록 (mqtt:topic:
) 을 지정할 수 있습니다.mqttTopic
*
와일드카드를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다.*
와일드카드를 사용하여 부분 리소스 식별자를 일치시킬 수는 없습니다. 예를 들어 지정할 수는 있지만 지정할"resources": "*"
수는 없습니다."resources": "mqtt:clientId:*"
statementDescription
-
(선택 사항) 이 정책 설명에 대한 설명.
certificates
-
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
serverCertificateValiditySeconds
-
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간 (초). 이 옵션을 구성하여 클라이언트 장치의 연결을 끊었다가 코어 장치에 다시 연결하는 빈도를 사용자 지정할 수 있습니다.
이 구성 요소는 만료되기 24시간 전에 로컬 MQTT 서버 인증서를 교체합니다. Moquette MQTT Broker 구성 요소와 같은 MQTT 브로커가 새 인증서를 생성하고 다시 시작합니다. 이 경우 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 끊어집니다. 잠시 후 클라이언트 장치를 코어 장치에 다시 연결할 수 있습니다.
기본값:
604800
(7일)최소값:
172800
(2일)최대치:
864000
(10일)
performance
-
(선택 사항) 이 코어 디바이스의 성능 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
maxActiveAuthTokens
-
(선택 사항) 활성 클라이언트 장치 인증 토큰의 최대 수. 이 수를 늘리면 더 많은 수의 클라이언트 장치를 재인증하지 않고도 단일 코어 장치에 연결할 수 있습니다.
기본값:
2500
cloudRequestQueueSize
-
(선택 사항) 이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.
기본값:
100
maxConcurrentCloudRequests
-
(선택 사항) 에 전송할 최대 동시 요청 수입니다. AWS 클라우드이 수를 늘리면 많은 수의 클라이언트 장치를 연결하는 핵심 장치의 인증 성능을 향상시킬 수 있습니다.
기본값:
1
certificateAuthority
-
(선택 사항) 핵심 장치 중간 기관을 자체 중간 인증 기관으로 대체하기 위한 인증 기관 구성 옵션.
참고
사용자 지정 인증 기관 (CA) 으로 Greengrass 코어 디바이스를 구성하고 동일한 CA를 사용하여 클라이언트 디바이스 인증서를 발급하는 경우 Greengrass는 클라이언트 디바이스 작업에 대한 권한 부여 정책 검사를 우회합니다. MQTT 클라이언트 장치 인증 구성 요소는 사용하도록 구성된 CA에서 서명한 인증서를 사용하여 클라이언트를 완전히 신뢰합니다.
사용자 지정 CA를 사용할 때 이 동작을 제한하려면 다른 CA 또는 중간 CA를 사용하여 클라이언트 장치를 만들고 서명한 다음 올바른 중간 CA를 가리키도록
certificateUri
및certificateChainUri
필드를 조정하십시오.이 개체에는 다음 정보가 포함됩니다.
- certificateUri
-
인증서의 위치. 하드웨어 보안 모듈에 저장된 인증서를 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다. URI
certificateChainUri
-
코어 장치 CA의 인증서 체인 위치. 이는 루트 CA로 돌아가는 완전한 인증서 체인이어야 합니다. 하드웨어 보안 모듈에 저장된 인증서 URI 체인을 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다.
privateKeyUri
-
코어 디바이스의 개인 키 위치. 하드웨어 보안 모듈에 저장된 인증서 개인 키를 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다. URI
security
-
(선택 사항) 이 코어 디바이스의 보안 구성 옵션. 이 개체에는 다음 정보가 들어 있습니다.
clientDeviceTrustDurationMinutes
-
코어 장치를 사용하여 재인증해야 하기 전까지 클라이언트 장치의 인증 정보를 신뢰할 수 있는 기간 (분). 기본값은 1입니다.
metrics
-
(선택 사항) 이 코어 장치에 대한 메트릭 옵션. 오류 지표는 클라이언트 장치 인증에 오류가 있는 경우에만 표시됩니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
disableMetrics
-
disableMetrics
필드가 로true
설정된 경우 클라이언트 장치 인증은 지표를 수집하지 않습니다.기본값:
false
aggregatePeriodSeconds
-
집계 기간 (초) 은 클라이언트 장치 인증이 메트릭을 집계하여 원격 분석 에이전트로 보내는 빈도를 결정합니다. 원격 분석 에이전트가 여전히 하루에 한 번 메트릭을 게시하므로 메트릭이 게시되는 빈도는 변경되지 않습니다.
기본값:
3600
- startupTimeoutSeconds
-
(선택 사항) 구성 요소를 시작하는 데 걸리는 최대 시간 (초). 이 제한 시간을
BROKEN
초과하면 구성 요소의 상태가 로 변경됩니다.기본값:
120
예: 구성 병합 업데이트 (제한적 정책 사용)
다음 예제 구성에서는 이름이 로 시작하는 클라이언트 장치가 모든 주제에 대해 연결 및
MyClientDevice
게시/구독할 수 있도록 지정합니다.{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
예: 구성 병합 업데이트 (허용 정책 사용)
다음 예제 구성은 모든 클라이언트 장치가 모든 주제에 대해 연결 및 게시/구독할 수 있도록 지정합니다.
{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
- v2.4.2 - v2.4.4
-
deviceGroups
-
장치 그룹은 코어 장치에 연결하고 통신할 수 있는 권한이 있는 클라이언트 장치 그룹입니다. 선택 규칙을 사용하여 클라이언트 장치 그룹을 식별하고 각 장치 그룹에 대한 권한을 지정하는 클라이언트 장치 권한 부여 정책을 정의합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
formatVersion
-
이 구성 개체의 형식 버전입니다.
다음 옵션 중 하나를 선택합니다.
-
2021-03-05
-
definitions
-
이 코어 디바이스의 디바이스 그룹. 각 정의는 클라이언트 장치가 그룹의 구성원인지 평가하는 선택 규칙을 지정합니다. 또한 각 정의는 선택 규칙과 일치하는 클라이언트 장치에 적용할 권한 정책을 지정합니다. 클라이언트 장치가 여러 장치 그룹의 구성원인 경우 장치 권한은 각 그룹의 권한 정책으로 구성됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
groupNameKey
-
이 장치 그룹의 이름. Replace
groupNameKey
이 장치 그룹을 식별하는 데 도움이 되는 이름을 사용하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
selectionRule
-
이 장치 그룹의 구성원인 클라이언트 장치를 지정하는 쿼리입니다. 클라이언트 장치가 연결되면 코어 장치는 이 선택 규칙을 평가하여 클라이언트 장치가 이 장치 그룹의 구성원인지 확인합니다. 클라이언트 장치가 구성원인 경우 코어 장치는 이 장치 그룹의 정책을 사용하여 클라이언트 장치의 동작을 승인합니다.
각 선택 규칙은 클라이언트 장치와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 선택 규칙 조항으로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 AWS IoT Core 개발자 안내서의AWS IoT 플릿 인덱싱 쿼리 구문을 참조하십시오.
*
와일드카드를 사용하면 하나의 선택 규칙 조항으로 여러 클라이언트 장치를 일치시킬 수 있습니다. 사물 이름 끝에 이 와일드카드를 사용하여 이름이 지정한 문자열로 시작하는 클라이언트 장치를 일치시킬 수 있습니다. 이 와일드카드를 사용하여 모든 클라이언트 디바이스를 일치시킬 수도 있습니다.참고
콜론 문자 () 가 포함된 값을 선택하려면 콜론을 이스케이프하여 백슬래시 문자 (
:
) 를 사용하십시오.\\
와 같은 JSON 형식에서는 백슬래시 문자를 이스케이프 처리해야 하므로 콜론 문자 앞에 백슬래시 문자를 두 개 입력해야 합니다. 예를 들어, 이름이 다음과 같은 항목을thingName: MyTeam\\\\:ClientDevice1
선택하도록 지정합니다.MyTeam:ClientDevice1
다음 선택기를 지정할 수 있습니다.
-
thingName
— 클라이언트 장치 사물의 이름 AWS IoT .
예 선택 규칙 예시
다음 선택 규칙은 이름이
MyClientDevice1
또는 인 클라이언트 장치와MyClientDevice2
일치합니다.thingName: MyClientDevice1 OR thingName: MyClientDevice2
예 선택 규칙 예시 (와일드카드 사용)
다음 선택 규칙은 이름이 로 시작하는 클라이언트 디바이스와
MyClientDevice
일치합니다.thingName: MyClientDevice*
예 선택 규칙 예시 (모든 장치 매칭)
다음 선택 규칙은 모든 클라이언트 장치와 일치합니다.
thingName: *
-
policyName
-
이 장치 그룹의 클라이언트 장치에 적용되는 권한 정책.
policies
개체에 정의한 정책 이름을 지정합니다.
policies
-
코어 장치에 연결하는 클라이언트 장치에 대한 클라이언트 장치 권한 부여 정책. 각 권한 부여 정책은 클라이언트 장치가 이러한 작업을 수행할 수 있는 일련의 작업과 리소스를 지정합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
policyNameKey
-
이 권한 부여 정책의 이름. Replace
policyNameKey
이 권한 부여 정책을 식별하는 데 도움이 되는 이름을 사용하십시오. 이 정책 이름을 사용하여 장치 그룹에 적용할 정책을 정의할 수 있습니다.이 객체에는 다음 정보가 포함되어 있어야 합니다.
statementNameKey
-
이 정책 설명의 이름. Replace
statementNameKey
이 정책 설명을 식별하는 데 도움이 되는 이름을 포함하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
operations
-
이 정책에서 리소스를 허용하기 위한 작업 목록.
다음 작업 중 하나를 포함할 수 있습니다.
-
mqtt:connect
— 코어 디바이스에 연결할 수 있는 권한을 부여합니다. 클라이언트 장치에 코어 장치에 연결하려면 이 권한이 있어야 합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:clientId:
— 클라이언트 장치가 핵심 장치의 MQTT 브로커에 연결하는 데 사용하는 클라이언트 ID를 기반으로 액세스를 제한합니다. ReplacedeviceClientId
deviceClientId
사용할 클라이언트 ID와 함께.
-
-
mqtt:publish
— 주제에 MQTT 메시지를 게시할 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topic:
— 클라이언트 장치가 메시지를 게시하는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopic
mqttTopic
사용할 주제와 함께.이 리소스는 MQTT 주제 와일드카드를 지원하지 않습니다.
-
-
mqtt:subscribe
— MQTT 주제 필터를 구독하여 메시지를 받을 수 있는 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topicfilter:
— 클라이언트 장치가 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopicFilter
mqttTopicFilter
사용할 주제 필터와 함께.이 리소스는
+
및#
MQTT 주제 와일드카드를 지원합니다. 자세한 내용은 AWS IoT Core 개발자 안내서의 MQTT 주제를 참조하십시오.클라이언트 장치는 사용자가 허용하는 정확한 주제 필터를 구독할 수 있습니다. 예를 들어 클라이언트 장치가
mqtt:topicfilter:client/+/status
리소스를 구독하도록 허용하면 클라이언트 장치는 구독할 수client/+/status
있지만 구독할 수는 없습니다client/client1/status
.
-
*
와일드카드를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다. -
resources
-
이 정책에서 작업을 허용할 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정하십시오. 예를 들어
mqtt:publish
작업을 지정하는 정책에 MQTT 주제 리소스 목록 (mqtt:topic:
) 을 지정할 수 있습니다.mqttTopic
*
와일드카드를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다.*
와일드카드를 사용하여 부분 리소스 식별자를 일치시킬 수는 없습니다. 예를 들어 지정할 수는 있지만 지정할"resources": "*"
수는 없습니다."resources": "mqtt:clientId:*"
statementDescription
-
(선택 사항) 이 정책 설명에 대한 설명.
certificates
-
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
serverCertificateValiditySeconds
-
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간 (초). 이 옵션을 구성하여 클라이언트 장치의 연결을 끊었다가 코어 장치에 다시 연결하는 빈도를 사용자 지정할 수 있습니다.
이 구성 요소는 만료되기 24시간 전에 로컬 MQTT 서버 인증서를 교체합니다. Moquette MQTT Broker 구성 요소와 같은 MQTT 브로커가 새 인증서를 생성하고 다시 시작합니다. 이 경우 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 끊어집니다. 잠시 후 클라이언트 장치를 코어 장치에 다시 연결할 수 있습니다.
기본값:
604800
(7일)최소값:
172800
(2일)최대치:
864000
(10일)
performance
-
(선택 사항) 이 코어 디바이스의 성능 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
maxActiveAuthTokens
-
(선택 사항) 활성 클라이언트 장치 인증 토큰의 최대 수. 이 수를 늘리면 더 많은 수의 클라이언트 장치를 재인증하지 않고도 단일 코어 장치에 연결할 수 있습니다.
기본값:
2500
cloudRequestQueueSize
-
(선택 사항) 이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.
기본값:
100
maxConcurrentCloudRequests
-
(선택 사항) 에 전송할 최대 동시 요청 수입니다. AWS 클라우드이 수를 늘리면 많은 수의 클라이언트 장치를 연결하는 핵심 장치의 인증 성능을 향상시킬 수 있습니다.
기본값:
1
certificateAuthority
-
(선택 사항) 핵심 장치 중간 기관을 자체 중간 인증 기관으로 대체하기 위한 인증 기관 구성 옵션.
참고
사용자 지정 인증 기관 (CA) 으로 Greengrass 코어 디바이스를 구성하고 동일한 CA를 사용하여 클라이언트 디바이스 인증서를 발급하는 경우 Greengrass는 클라이언트 디바이스 작업에 대한 권한 부여 정책 검사를 우회합니다. MQTT 클라이언트 장치 인증 구성 요소는 사용하도록 구성된 CA에서 서명한 인증서를 사용하여 클라이언트를 완전히 신뢰합니다.
사용자 지정 CA를 사용할 때 이 동작을 제한하려면 다른 CA 또는 중간 CA를 사용하여 클라이언트 장치를 만들고 서명한 다음 올바른 중간 CA를 가리키도록
certificateUri
및certificateChainUri
필드를 조정하십시오.이 개체에는 다음 정보가 포함됩니다.
- certificateUri
-
인증서의 위치. 하드웨어 보안 모듈에 저장된 인증서를 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다. URI
certificateChainUri
-
코어 장치 CA의 인증서 체인 위치. 이는 루트 CA로 돌아가는 완전한 인증서 체인이어야 합니다. 하드웨어 보안 모듈에 저장된 인증서 URI 체인을 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다.
privateKeyUri
-
코어 디바이스의 개인 키 위치. 하드웨어 보안 모듈에 저장된 인증서 개인 키를 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다. URI
security
-
(선택 사항) 이 코어 디바이스의 보안 구성 옵션. 이 개체에는 다음 정보가 들어 있습니다.
clientDeviceTrustDurationMinutes
-
코어 장치를 사용하여 재인증해야 하기 전까지 클라이언트 장치의 인증 정보를 신뢰할 수 있는 기간 (분). 기본값은 1입니다.
metrics
-
(선택 사항) 이 코어 장치에 대한 메트릭 옵션. 오류 지표는 클라이언트 장치 인증에 오류가 있는 경우에만 표시됩니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
disableMetrics
-
disableMetrics
필드가 로true
설정된 경우 클라이언트 장치 인증은 지표를 수집하지 않습니다.기본값:
false
aggregatePeriodSeconds
-
집계 기간 (초) 은 클라이언트 장치 인증이 메트릭을 집계하여 원격 분석 에이전트로 보내는 빈도를 결정합니다. 원격 분석 에이전트가 여전히 하루에 한 번 메트릭을 게시하므로 메트릭이 게시되는 빈도는 변경되지 않습니다.
기본값:
3600
- startupTimeoutSeconds
-
(선택 사항) 구성 요소를 시작하는 데 걸리는 최대 시간 (초). 이 제한 시간을
BROKEN
초과하면 구성 요소의 상태가 로 변경됩니다.기본값:
120
예: 구성 병합 업데이트 (제한적 정책 사용)
다음 예제 구성에서는 이름이 로 시작하는 클라이언트 장치가 모든 주제에 대해 연결 및
MyClientDevice
게시/구독할 수 있도록 지정합니다.{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
예: 구성 병합 업데이트 (허용 정책 사용)
다음 예제 구성은 모든 클라이언트 장치가 모든 주제에 대해 연결 및 게시/구독할 수 있도록 지정합니다.
{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
- v2.4.0 - v2.4.1
-
deviceGroups
-
장치 그룹은 코어 장치에 연결하고 통신할 수 있는 권한이 있는 클라이언트 장치 그룹입니다. 선택 규칙을 사용하여 클라이언트 장치 그룹을 식별하고 각 장치 그룹에 대한 권한을 지정하는 클라이언트 장치 권한 부여 정책을 정의합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
formatVersion
-
이 구성 개체의 형식 버전입니다.
다음 옵션 중 하나를 선택합니다.
-
2021-03-05
-
definitions
-
이 코어 디바이스의 디바이스 그룹. 각 정의는 클라이언트 장치가 그룹의 구성원인지 평가하는 선택 규칙을 지정합니다. 또한 각 정의는 선택 규칙과 일치하는 클라이언트 장치에 적용할 권한 정책을 지정합니다. 클라이언트 장치가 여러 장치 그룹의 구성원인 경우 장치 권한은 각 그룹의 권한 정책으로 구성됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
groupNameKey
-
이 장치 그룹의 이름. Replace
groupNameKey
이 장치 그룹을 식별하는 데 도움이 되는 이름을 사용하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
selectionRule
-
이 장치 그룹의 구성원인 클라이언트 장치를 지정하는 쿼리입니다. 클라이언트 장치가 연결되면 코어 장치는 이 선택 규칙을 평가하여 클라이언트 장치가 이 장치 그룹의 구성원인지 확인합니다. 클라이언트 장치가 구성원인 경우 코어 장치는 이 장치 그룹의 정책을 사용하여 클라이언트 장치의 동작을 승인합니다.
각 선택 규칙은 클라이언트 장치와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 선택 규칙 조항으로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 AWS IoT Core 개발자 안내서의AWS IoT 플릿 인덱싱 쿼리 구문을 참조하십시오.
*
와일드카드를 사용하면 하나의 선택 규칙 조항으로 여러 클라이언트 장치를 일치시킬 수 있습니다. 사물 이름 끝에 이 와일드카드를 사용하여 이름이 지정한 문자열로 시작하는 클라이언트 장치를 일치시킬 수 있습니다. 이 와일드카드를 사용하여 모든 클라이언트 디바이스를 일치시킬 수도 있습니다.참고
콜론 문자 () 가 포함된 값을 선택하려면 콜론을 이스케이프하여 백슬래시 문자 (
:
) 를 사용하십시오.\\
와 같은 JSON 형식에서는 백슬래시 문자를 이스케이프 처리해야 하므로 콜론 문자 앞에 백슬래시 문자를 두 개 입력해야 합니다. 예를 들어, 이름이 다음과 같은 항목을thingName: MyTeam\\\\:ClientDevice1
선택하도록 지정합니다.MyTeam:ClientDevice1
다음 선택기를 지정할 수 있습니다.
-
thingName
— 클라이언트 장치 사물의 이름 AWS IoT .
예 선택 규칙 예시
다음 선택 규칙은 이름이
MyClientDevice1
또는 인 클라이언트 장치와MyClientDevice2
일치합니다.thingName: MyClientDevice1 OR thingName: MyClientDevice2
예 선택 규칙 예시 (와일드카드 사용)
다음 선택 규칙은 이름이 로 시작하는 클라이언트 디바이스와
MyClientDevice
일치합니다.thingName: MyClientDevice*
예 선택 규칙 예시 (모든 장치 매칭)
다음 선택 규칙은 모든 클라이언트 장치와 일치합니다.
thingName: *
-
policyName
-
이 장치 그룹의 클라이언트 장치에 적용되는 권한 정책.
policies
개체에 정의한 정책 이름을 지정합니다.
policies
-
코어 장치에 연결하는 클라이언트 장치에 대한 클라이언트 장치 권한 부여 정책. 각 권한 부여 정책은 클라이언트 장치가 이러한 작업을 수행할 수 있는 일련의 작업과 리소스를 지정합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
policyNameKey
-
이 권한 부여 정책의 이름. Replace
policyNameKey
이 권한 부여 정책을 식별하는 데 도움이 되는 이름을 사용하십시오. 이 정책 이름을 사용하여 장치 그룹에 적용할 정책을 정의할 수 있습니다.이 객체에는 다음 정보가 포함되어 있어야 합니다.
statementNameKey
-
이 정책 설명의 이름. Replace
statementNameKey
이 정책 설명을 식별하는 데 도움이 되는 이름을 포함하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
operations
-
이 정책에서 리소스를 허용하기 위한 작업 목록.
다음 작업 중 하나를 포함할 수 있습니다.
-
mqtt:connect
— 코어 디바이스에 연결할 수 있는 권한을 부여합니다. 클라이언트 장치에 코어 장치에 연결하려면 이 권한이 있어야 합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:clientId:
— 클라이언트 장치가 핵심 장치의 MQTT 브로커에 연결하는 데 사용하는 클라이언트 ID를 기반으로 액세스를 제한합니다. ReplacedeviceClientId
deviceClientId
사용할 클라이언트 ID와 함께.
-
-
mqtt:publish
— 주제에 MQTT 메시지를 게시할 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topic:
— 클라이언트 장치가 메시지를 게시하는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopic
mqttTopic
사용할 주제와 함께.이 리소스는 MQTT 주제 와일드카드를 지원하지 않습니다.
-
-
mqtt:subscribe
— MQTT 주제 필터를 구독하여 메시지를 받을 수 있는 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topicfilter:
— 클라이언트 장치가 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopicFilter
mqttTopicFilter
사용할 주제 필터와 함께.이 리소스는
+
및#
MQTT 주제 와일드카드를 지원합니다. 자세한 내용은 AWS IoT Core 개발자 안내서의 MQTT 주제를 참조하십시오.클라이언트 장치는 사용자가 허용하는 정확한 주제 필터를 구독할 수 있습니다. 예를 들어 클라이언트 장치가
mqtt:topicfilter:client/+/status
리소스를 구독하도록 허용하면 클라이언트 장치는 구독할 수client/+/status
있지만 구독할 수는 없습니다client/client1/status
.
-
*
와일드카드를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다. -
resources
-
이 정책에서 작업을 허용할 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정하십시오. 예를 들어
mqtt:publish
작업을 지정하는 정책에 MQTT 주제 리소스 목록 (mqtt:topic:
) 을 지정할 수 있습니다.mqttTopic
*
와일드카드를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다.*
와일드카드를 사용하여 부분 리소스 식별자를 일치시킬 수는 없습니다. 예를 들어 지정할 수는 있지만 지정할"resources": "*"
수는 없습니다."resources": "mqtt:clientId:*"
statementDescription
-
(선택 사항) 이 정책 설명에 대한 설명.
certificates
-
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
serverCertificateValiditySeconds
-
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간 (초). 이 옵션을 구성하여 클라이언트 장치의 연결을 끊었다가 코어 장치에 다시 연결하는 빈도를 사용자 지정할 수 있습니다.
이 구성 요소는 만료되기 24시간 전에 로컬 MQTT 서버 인증서를 교체합니다. Moquette MQTT Broker 구성 요소와 같은 MQTT 브로커가 새 인증서를 생성하고 다시 시작합니다. 이 경우 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 끊어집니다. 잠시 후 클라이언트 장치를 코어 장치에 다시 연결할 수 있습니다.
기본값:
604800
(7일)최소값:
172800
(2일)최대치:
864000
(10일)
performance
-
(선택 사항) 이 코어 디바이스의 성능 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
maxActiveAuthTokens
-
(선택 사항) 활성 클라이언트 장치 인증 토큰의 최대 수. 이 수를 늘리면 더 많은 수의 클라이언트 장치를 재인증하지 않고도 단일 코어 장치에 연결할 수 있습니다.
기본값:
2500
cloudRequestQueueSize
-
(선택 사항) 이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.
기본값:
100
maxConcurrentCloudRequests
-
(선택 사항) 에 전송할 최대 동시 요청 수입니다. AWS 클라우드이 수를 늘리면 많은 수의 클라이언트 장치를 연결하는 핵심 장치의 인증 성능을 향상시킬 수 있습니다.
기본값:
1
certificateAuthority
-
(선택 사항) 핵심 장치 중간 기관을 자체 중간 인증 기관으로 대체하기 위한 인증 기관 구성 옵션. 이 개체에는 다음 정보가 들어 있습니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
- certificateUri
-
인증서의 위치. 하드웨어 보안 모듈에 저장된 인증서를 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다. URI
certificateChainUri
-
코어 장치 CA의 인증서 체인 위치. 이는 루트 CA로 돌아가는 완전한 인증서 체인이어야 합니다. 하드웨어 보안 모듈에 저장된 인증서 URI 체인을 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다.
privateKeyUri
-
코어 디바이스의 개인 키 위치. 하드웨어 보안 모듈에 저장된 인증서 개인 키를 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다. URI
security
-
(선택 사항) 이 코어 디바이스의 보안 구성 옵션. 이 개체에는 다음 정보가 들어 있습니다.
clientDeviceTrustDurationMinutes
-
코어 장치를 사용하여 재인증해야 하기 전까지 클라이언트 장치의 인증 정보를 신뢰할 수 있는 기간 (분). 기본값은 1입니다.
metrics
-
(선택 사항) 이 코어 장치에 대한 메트릭 옵션. 오류 지표는 클라이언트 장치 인증에 오류가 있는 경우에만 표시됩니다. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
disableMetrics
-
disableMetrics
필드가 로true
설정된 경우 클라이언트 장치 인증은 지표를 수집하지 않습니다.기본값:
false
aggregatePeriodSeconds
-
집계 기간 (초) 은 클라이언트 장치 인증이 메트릭을 집계하여 원격 분석 에이전트로 보내는 빈도를 결정합니다. 원격 분석 에이전트가 여전히 하루에 한 번 메트릭을 게시하므로 메트릭이 게시되는 빈도는 변경되지 않습니다.
기본값:
3600
예: 구성 병합 업데이트 (제한적 정책 사용)
다음 예제 구성에서는 이름이 로 시작하는 클라이언트 장치가 모든 주제에 대해 연결 및
MyClientDevice
게시/구독할 수 있도록 지정합니다.{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
예: 구성 병합 업데이트 (허용 정책 사용)
다음 예제 구성은 모든 클라이언트 장치가 모든 주제에 대해 연결 및 게시/구독할 수 있도록 지정합니다.
{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
- v2.3.x
-
deviceGroups
-
장치 그룹은 코어 장치에 연결하고 통신할 수 있는 권한이 있는 클라이언트 장치 그룹입니다. 선택 규칙을 사용하여 클라이언트 장치 그룹을 식별하고 각 장치 그룹에 대한 권한을 지정하는 클라이언트 장치 권한 부여 정책을 정의합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
formatVersion
-
이 구성 개체의 형식 버전입니다.
다음 옵션 중 하나를 선택합니다.
-
2021-03-05
-
definitions
-
이 코어 디바이스의 디바이스 그룹. 각 정의는 클라이언트 장치가 그룹의 구성원인지 평가하는 선택 규칙을 지정합니다. 또한 각 정의는 선택 규칙과 일치하는 클라이언트 장치에 적용할 권한 정책을 지정합니다. 클라이언트 장치가 여러 장치 그룹의 구성원인 경우 장치 권한은 각 그룹의 권한 정책으로 구성됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
groupNameKey
-
이 장치 그룹의 이름. Replace
groupNameKey
이 장치 그룹을 식별하는 데 도움이 되는 이름을 사용하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
selectionRule
-
이 장치 그룹의 구성원인 클라이언트 장치를 지정하는 쿼리입니다. 클라이언트 장치가 연결되면 코어 장치는 이 선택 규칙을 평가하여 클라이언트 장치가 이 장치 그룹의 구성원인지 확인합니다. 클라이언트 장치가 구성원인 경우 코어 장치는 이 장치 그룹의 정책을 사용하여 클라이언트 장치의 동작을 승인합니다.
각 선택 규칙은 클라이언트 장치와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 선택 규칙 조항으로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 AWS IoT Core 개발자 안내서의AWS IoT 플릿 인덱싱 쿼리 구문을 참조하십시오.
*
와일드카드를 사용하면 하나의 선택 규칙 조항으로 여러 클라이언트 장치를 일치시킬 수 있습니다. 사물 이름 끝에 이 와일드카드를 사용하여 이름이 지정한 문자열로 시작하는 클라이언트 장치를 일치시킬 수 있습니다. 이 와일드카드를 사용하여 모든 클라이언트 디바이스를 일치시킬 수도 있습니다.참고
콜론 문자 () 가 포함된 값을 선택하려면 콜론을 이스케이프하여 백슬래시 문자 (
:
) 를 사용하십시오.\\
와 같은 JSON 형식에서는 백슬래시 문자를 이스케이프 처리해야 하므로 콜론 문자 앞에 백슬래시 문자를 두 개 입력해야 합니다. 예를 들어, 이름이 다음과 같은 항목을thingName: MyTeam\\\\:ClientDevice1
선택하도록 지정합니다.MyTeam:ClientDevice1
다음 선택기를 지정할 수 있습니다.
-
thingName
— 클라이언트 장치 사물의 이름 AWS IoT .
예 선택 규칙 예시
다음 선택 규칙은 이름이
MyClientDevice1
또는 인 클라이언트 장치와MyClientDevice2
일치합니다.thingName: MyClientDevice1 OR thingName: MyClientDevice2
예 선택 규칙 예시 (와일드카드 사용)
다음 선택 규칙은 이름이 로 시작하는 클라이언트 디바이스와
MyClientDevice
일치합니다.thingName: MyClientDevice*
예 선택 규칙 예시 (모든 장치 매칭)
다음 선택 규칙은 모든 클라이언트 장치와 일치합니다.
thingName: *
-
policyName
-
이 장치 그룹의 클라이언트 장치에 적용되는 권한 정책.
policies
개체에 정의한 정책 이름을 지정합니다.
policies
-
코어 장치에 연결하는 클라이언트 장치에 대한 클라이언트 장치 권한 부여 정책. 각 권한 부여 정책은 클라이언트 장치가 이러한 작업을 수행할 수 있는 일련의 작업과 리소스를 지정합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
policyNameKey
-
이 권한 부여 정책의 이름. Replace
policyNameKey
이 권한 부여 정책을 식별하는 데 도움이 되는 이름을 사용하십시오. 이 정책 이름을 사용하여 장치 그룹에 적용할 정책을 정의할 수 있습니다.이 객체에는 다음 정보가 포함되어 있어야 합니다.
statementNameKey
-
이 정책 설명의 이름. Replace
statementNameKey
이 정책 설명을 식별하는 데 도움이 되는 이름을 포함하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
operations
-
이 정책에서 리소스를 허용하기 위한 작업 목록.
다음 작업 중 하나를 포함할 수 있습니다.
-
mqtt:connect
— 코어 디바이스에 연결할 수 있는 권한을 부여합니다. 클라이언트 장치에 코어 장치에 연결하려면 이 권한이 있어야 합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:clientId:
— 클라이언트 장치가 핵심 장치의 MQTT 브로커에 연결하는 데 사용하는 클라이언트 ID를 기반으로 액세스를 제한합니다. ReplacedeviceClientId
deviceClientId
사용할 클라이언트 ID와 함께.
-
-
mqtt:publish
— 주제에 MQTT 메시지를 게시할 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topic:
— 클라이언트 장치가 메시지를 게시하는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopic
mqttTopic
사용할 주제와 함께.이 리소스는 MQTT 주제 와일드카드를 지원하지 않습니다.
-
-
mqtt:subscribe
— MQTT 주제 필터를 구독하여 메시지를 받을 수 있는 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topicfilter:
— 클라이언트 장치가 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopicFilter
mqttTopicFilter
사용할 주제 필터와 함께.이 리소스는
+
및#
MQTT 주제 와일드카드를 지원합니다. 자세한 내용은 AWS IoT Core 개발자 안내서의 MQTT 주제를 참조하십시오.클라이언트 장치는 사용자가 허용하는 정확한 주제 필터를 구독할 수 있습니다. 예를 들어 클라이언트 장치가
mqtt:topicfilter:client/+/status
리소스를 구독하도록 허용하면 클라이언트 장치는 구독할 수client/+/status
있지만 구독할 수는 없습니다client/client1/status
.
-
*
와일드카드를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다. -
resources
-
이 정책에서 작업을 허용할 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정하십시오. 예를 들어
mqtt:publish
작업을 지정하는 정책에 MQTT 주제 리소스 목록 (mqtt:topic:
) 을 지정할 수 있습니다.mqttTopic
*
와일드카드를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다.*
와일드카드를 사용하여 부분 리소스 식별자를 일치시킬 수는 없습니다. 예를 들어 지정할 수는 있지만 지정할"resources": "*"
수는 없습니다."resources": "mqtt:clientId:*"
statementDescription
-
(선택 사항) 이 정책 설명에 대한 설명.
certificates
-
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
serverCertificateValiditySeconds
-
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간 (초). 이 옵션을 구성하여 클라이언트 장치의 연결을 끊었다가 코어 장치에 다시 연결하는 빈도를 사용자 지정할 수 있습니다.
이 구성 요소는 만료되기 24시간 전에 로컬 MQTT 서버 인증서를 교체합니다. Moquette MQTT Broker 구성 요소와 같은 MQTT 브로커가 새 인증서를 생성하고 다시 시작합니다. 이 경우 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 끊어집니다. 잠시 후 클라이언트 장치를 코어 장치에 다시 연결할 수 있습니다.
기본값:
604800
(7일)최소값:
172800
(2일)최대치:
864000
(10일)
performance
-
(선택 사항) 이 코어 디바이스의 성능 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
maxActiveAuthTokens
-
(선택 사항) 활성 클라이언트 장치 인증 토큰의 최대 수. 이 수를 늘리면 더 많은 수의 클라이언트 장치를 재인증하지 않고도 단일 코어 장치에 연결할 수 있습니다.
기본값:
2500
cloudRequestQueueSize
-
(선택 사항) 이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.
기본값:
100
maxConcurrentCloudRequests
-
(선택 사항) 에 전송할 최대 동시 요청 수입니다. AWS 클라우드이 수를 늘리면 많은 수의 클라이언트 장치를 연결하는 핵심 장치의 인증 성능을 향상시킬 수 있습니다.
기본값:
1
certificateAuthority
-
(선택 사항) 핵심 장치 중간 기관을 자체 중간 인증 기관으로 대체하기 위한 인증 기관 구성 옵션. 이 개체에는 다음 정보가 들어 있습니다.
- certificateUri
-
인증서의 위치. 하드웨어 보안 모듈에 저장된 인증서를 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다. URI
certificateChainUri
-
코어 장치 CA의 인증서 체인 위치. 이는 루트 CA로 돌아가는 완전한 인증서 체인이어야 합니다. 하드웨어 보안 모듈에 저장된 인증서 URI 체인을 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다.
privateKeyUri
-
코어 디바이스의 개인 키 위치. 하드웨어 보안 모듈에 저장된 인증서 개인 키를 가리키는 파일 URI 시스템이거나 파일 시스템일 수 있습니다. URI
security
-
(선택 사항) 이 코어 디바이스의 보안 구성 옵션. 이 개체에는 다음 정보가 들어 있습니다.
clientDeviceTrustDurationMinutes
-
코어 장치를 사용하여 재인증해야 하기 전까지 클라이언트 장치의 인증 정보를 신뢰할 수 있는 기간 (분). 기본값은 1입니다.
예: 구성 병합 업데이트 (제한적 정책 사용)
다음 예제 구성에서는 이름이 로 시작하는 클라이언트 장치가 모든 주제에 대해 연결 및
MyClientDevice
게시/구독할 수 있도록 지정합니다.{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
예: 구성 병합 업데이트 (허용 정책 사용)
다음 예제 구성은 모든 클라이언트 장치가 모든 주제에 대해 연결 및 게시/구독할 수 있도록 지정합니다.
{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
- v2.2.x
-
deviceGroups
-
장치 그룹은 코어 장치에 연결하고 통신할 수 있는 권한이 있는 클라이언트 장치 그룹입니다. 선택 규칙을 사용하여 클라이언트 장치 그룹을 식별하고 각 장치 그룹에 대한 권한을 지정하는 클라이언트 장치 권한 부여 정책을 정의합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
formatVersion
-
이 구성 개체의 형식 버전입니다.
다음 옵션 중 하나를 선택합니다.
-
2021-03-05
-
definitions
-
이 코어 디바이스의 디바이스 그룹. 각 정의는 클라이언트 장치가 그룹의 구성원인지 평가하는 선택 규칙을 지정합니다. 또한 각 정의는 선택 규칙과 일치하는 클라이언트 장치에 적용할 권한 정책을 지정합니다. 클라이언트 장치가 여러 장치 그룹의 구성원인 경우 장치 권한은 각 그룹의 권한 정책으로 구성됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
groupNameKey
-
이 장치 그룹의 이름. Replace
groupNameKey
이 장치 그룹을 식별하는 데 도움이 되는 이름을 사용하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
selectionRule
-
이 장치 그룹의 구성원인 클라이언트 장치를 지정하는 쿼리입니다. 클라이언트 장치가 연결되면 코어 장치는 이 선택 규칙을 평가하여 클라이언트 장치가 이 장치 그룹의 구성원인지 확인합니다. 클라이언트 장치가 구성원인 경우 코어 장치는 이 장치 그룹의 정책을 사용하여 클라이언트 장치의 동작을 승인합니다.
각 선택 규칙은 클라이언트 장치와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 선택 규칙 조항으로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 AWS IoT Core 개발자 안내서의AWS IoT 플릿 인덱싱 쿼리 구문을 참조하십시오.
*
와일드카드를 사용하면 하나의 선택 규칙 조항으로 여러 클라이언트 장치를 일치시킬 수 있습니다. 사물 이름 끝에 이 와일드카드를 사용하여 이름이 지정한 문자열로 시작하는 클라이언트 장치를 일치시킬 수 있습니다. 이 와일드카드를 사용하여 모든 클라이언트 디바이스를 일치시킬 수도 있습니다.참고
콜론 문자 () 가 포함된 값을 선택하려면 콜론을 이스케이프하여 백슬래시 문자 (
:
) 를 사용하십시오.\\
와 같은 JSON 형식에서는 백슬래시 문자를 이스케이프 처리해야 하므로 콜론 문자 앞에 백슬래시 문자를 두 개 입력해야 합니다. 예를 들어, 이름이 다음과 같은 항목을thingName: MyTeam\\\\:ClientDevice1
선택하도록 지정합니다.MyTeam:ClientDevice1
다음 선택기를 지정할 수 있습니다.
-
thingName
— 클라이언트 장치 사물의 이름 AWS IoT .
예 선택 규칙 예시
다음 선택 규칙은 이름이
MyClientDevice1
또는 인 클라이언트 장치와MyClientDevice2
일치합니다.thingName: MyClientDevice1 OR thingName: MyClientDevice2
예 선택 규칙 예시 (와일드카드 사용)
다음 선택 규칙은 이름이 로 시작하는 클라이언트 디바이스와
MyClientDevice
일치합니다.thingName: MyClientDevice*
예 선택 규칙 예시 (모든 장치 매칭)
다음 선택 규칙은 모든 클라이언트 장치와 일치합니다.
thingName: *
-
policyName
-
이 장치 그룹의 클라이언트 장치에 적용되는 권한 정책.
policies
개체에 정의한 정책 이름을 지정합니다.
policies
-
코어 장치에 연결하는 클라이언트 장치에 대한 클라이언트 장치 권한 부여 정책. 각 권한 부여 정책은 클라이언트 장치가 이러한 작업을 수행할 수 있는 일련의 작업과 리소스를 지정합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
policyNameKey
-
이 권한 부여 정책의 이름. Replace
policyNameKey
이 권한 부여 정책을 식별하는 데 도움이 되는 이름을 사용하십시오. 이 정책 이름을 사용하여 장치 그룹에 적용할 정책을 정의할 수 있습니다.이 객체에는 다음 정보가 포함되어 있어야 합니다.
statementNameKey
-
이 정책 설명의 이름. Replace
statementNameKey
이 정책 설명을 식별하는 데 도움이 되는 이름을 포함하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
operations
-
이 정책에서 리소스를 허용하기 위한 작업 목록.
다음 작업 중 하나를 포함할 수 있습니다.
-
mqtt:connect
— 코어 디바이스에 연결할 수 있는 권한을 부여합니다. 클라이언트 장치에 코어 장치에 연결하려면 이 권한이 있어야 합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:clientId:
— 클라이언트 장치가 핵심 장치의 MQTT 브로커에 연결하는 데 사용하는 클라이언트 ID를 기반으로 액세스를 제한합니다. ReplacedeviceClientId
deviceClientId
사용할 클라이언트 ID와 함께.
-
-
mqtt:publish
— 주제에 MQTT 메시지를 게시할 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topic:
— 클라이언트 장치가 메시지를 게시하는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopic
mqttTopic
사용할 주제와 함께.이 리소스는 MQTT 주제 와일드카드를 지원하지 않습니다.
-
-
mqtt:subscribe
— MQTT 주제 필터를 구독하여 메시지를 받을 수 있는 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topicfilter:
— 클라이언트 장치가 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopicFilter
mqttTopicFilter
사용할 주제 필터와 함께.이 리소스는
+
및#
MQTT 주제 와일드카드를 지원합니다. 자세한 내용은 AWS IoT Core 개발자 안내서의 MQTT 주제를 참조하십시오.클라이언트 장치는 사용자가 허용하는 정확한 주제 필터를 구독할 수 있습니다. 예를 들어 클라이언트 장치가
mqtt:topicfilter:client/+/status
리소스를 구독하도록 허용하면 클라이언트 장치는 구독할 수client/+/status
있지만 구독할 수는 없습니다client/client1/status
.
-
*
와일드카드를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다. -
resources
-
이 정책에서 작업을 허용할 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정하십시오. 예를 들어
mqtt:publish
작업을 지정하는 정책에 MQTT 주제 리소스 목록 (mqtt:topic:
) 을 지정할 수 있습니다.mqttTopic
*
와일드카드를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다.*
와일드카드를 사용하여 부분 리소스 식별자를 일치시킬 수는 없습니다. 예를 들어 지정할 수는 있지만 지정할"resources": "*"
수는 없습니다."resources": "mqtt:clientId:*"
statementDescription
-
(선택 사항) 이 정책 설명에 대한 설명.
certificates
-
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
serverCertificateValiditySeconds
-
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간 (초). 이 옵션을 구성하여 클라이언트 장치의 연결을 끊었다가 코어 장치에 다시 연결하는 빈도를 사용자 지정할 수 있습니다.
이 구성 요소는 만료되기 24시간 전에 로컬 MQTT 서버 인증서를 교체합니다. Moquette MQTT Broker 구성 요소와 같은 MQTT 브로커가 새 인증서를 생성하고 다시 시작합니다. 이 경우 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 끊어집니다. 잠시 후 클라이언트 장치를 코어 장치에 다시 연결할 수 있습니다.
기본값:
604800
(7일)최소값:
172800
(2일)최대치:
864000
(10일)
performance
-
(선택 사항) 이 코어 디바이스의 성능 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
maxActiveAuthTokens
-
(선택 사항) 활성 클라이언트 장치 인증 토큰의 최대 수. 이 수를 늘리면 더 많은 수의 클라이언트 장치를 재인증하지 않고도 단일 코어 장치에 연결할 수 있습니다.
기본값:
2500
cloudRequestQueueSize
-
(선택 사항) 이 구성 요소가 AWS 클라우드 요청을 거부하기 전에 대기열에 추가할 최대 요청 수입니다.
기본값:
100
maxConcurrentCloudRequests
-
(선택 사항) 에 전송할 최대 동시 요청 수입니다. AWS 클라우드이 수를 늘리면 많은 수의 클라이언트 장치를 연결하는 핵심 장치의 인증 성능을 향상시킬 수 있습니다.
기본값:
1
예: 구성 병합 업데이트 (제한적 정책 사용)
다음 예제 구성에서는 이름이 로 시작하는 클라이언트 장치가 모든 주제에 대해 연결 및
MyClientDevice
게시/구독할 수 있도록 지정합니다.{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
예: 구성 병합 업데이트 (허용 정책 사용)
다음 예제 구성은 모든 클라이언트 장치가 모든 주제에 대해 연결 및 게시/구독할 수 있도록 지정합니다.
{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
- v2.1.x
-
deviceGroups
-
장치 그룹은 코어 장치에 연결하고 통신할 수 있는 권한이 있는 클라이언트 장치 그룹입니다. 선택 규칙을 사용하여 클라이언트 장치 그룹을 식별하고 각 장치 그룹에 대한 권한을 지정하는 클라이언트 장치 권한 부여 정책을 정의합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
formatVersion
-
이 구성 개체의 형식 버전입니다.
다음 옵션 중 하나를 선택합니다.
-
2021-03-05
-
definitions
-
이 코어 디바이스의 디바이스 그룹. 각 정의는 클라이언트 장치가 그룹의 구성원인지 평가하는 선택 규칙을 지정합니다. 또한 각 정의는 선택 규칙과 일치하는 클라이언트 장치에 적용할 권한 정책을 지정합니다. 클라이언트 장치가 여러 장치 그룹의 구성원인 경우 장치 권한은 각 그룹의 권한 정책으로 구성됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
groupNameKey
-
이 장치 그룹의 이름. Replace
groupNameKey
이 장치 그룹을 식별하는 데 도움이 되는 이름을 사용하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
selectionRule
-
이 장치 그룹의 구성원인 클라이언트 장치를 지정하는 쿼리입니다. 클라이언트 장치가 연결되면 코어 장치는 이 선택 규칙을 평가하여 클라이언트 장치가 이 장치 그룹의 구성원인지 확인합니다. 클라이언트 장치가 구성원인 경우 코어 장치는 이 장치 그룹의 정책을 사용하여 클라이언트 장치의 동작을 승인합니다.
각 선택 규칙은 클라이언트 장치와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 선택 규칙 조항으로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 AWS IoT Core 개발자 안내서의AWS IoT 플릿 인덱싱 쿼리 구문을 참조하십시오.
*
와일드카드를 사용하면 하나의 선택 규칙 조항으로 여러 클라이언트 장치를 일치시킬 수 있습니다. 사물 이름 끝에 이 와일드카드를 사용하여 이름이 지정한 문자열로 시작하는 클라이언트 장치를 일치시킬 수 있습니다. 이 와일드카드를 사용하여 모든 클라이언트 디바이스를 일치시킬 수도 있습니다.참고
콜론 문자 () 가 포함된 값을 선택하려면 콜론을 이스케이프하여 백슬래시 문자 (
:
) 를 사용하십시오.\\
와 같은 JSON 형식에서는 백슬래시 문자를 이스케이프 처리해야 하므로 콜론 문자 앞에 백슬래시 문자를 두 개 입력해야 합니다. 예를 들어, 이름이 다음과 같은 항목을thingName: MyTeam\\\\:ClientDevice1
선택하도록 지정합니다.MyTeam:ClientDevice1
다음 선택기를 지정할 수 있습니다.
-
thingName
— 클라이언트 장치 사물의 이름 AWS IoT .
예 선택 규칙 예시
다음 선택 규칙은 이름이
MyClientDevice1
또는 인 클라이언트 장치와MyClientDevice2
일치합니다.thingName: MyClientDevice1 OR thingName: MyClientDevice2
예 선택 규칙 예시 (와일드카드 사용)
다음 선택 규칙은 이름이 로 시작하는 클라이언트 디바이스와
MyClientDevice
일치합니다.thingName: MyClientDevice*
예 선택 규칙 예시 (모든 장치 매칭)
다음 선택 규칙은 모든 클라이언트 장치와 일치합니다.
thingName: *
-
policyName
-
이 장치 그룹의 클라이언트 장치에 적용되는 권한 정책.
policies
개체에 정의한 정책 이름을 지정합니다.
policies
-
코어 장치에 연결하는 클라이언트 장치에 대한 클라이언트 장치 권한 부여 정책. 각 권한 부여 정책은 클라이언트 장치가 이러한 작업을 수행할 수 있는 일련의 작업과 리소스를 지정합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
policyNameKey
-
이 권한 부여 정책의 이름. Replace
policyNameKey
이 권한 부여 정책을 식별하는 데 도움이 되는 이름을 사용하십시오. 이 정책 이름을 사용하여 장치 그룹에 적용할 정책을 정의할 수 있습니다.이 객체에는 다음 정보가 포함되어 있어야 합니다.
statementNameKey
-
이 정책 설명의 이름. Replace
statementNameKey
이 정책 설명을 식별하는 데 도움이 되는 이름을 포함하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
operations
-
이 정책에서 리소스를 허용하기 위한 작업 목록.
다음 작업 중 하나를 포함할 수 있습니다.
-
mqtt:connect
— 코어 디바이스에 연결할 수 있는 권한을 부여합니다. 클라이언트 장치에 코어 장치에 연결하려면 이 권한이 있어야 합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:clientId:
— 클라이언트 장치가 핵심 장치의 MQTT 브로커에 연결하는 데 사용하는 클라이언트 ID를 기반으로 액세스를 제한합니다. ReplacedeviceClientId
deviceClientId
사용할 클라이언트 ID와 함께.
-
-
mqtt:publish
— 주제에 MQTT 메시지를 게시할 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topic:
— 클라이언트 장치가 메시지를 게시하는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopic
mqttTopic
사용할 주제와 함께.이 리소스는 MQTT 주제 와일드카드를 지원하지 않습니다.
-
-
mqtt:subscribe
— MQTT 주제 필터를 구독하여 메시지를 받을 수 있는 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topicfilter:
— 클라이언트 장치가 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopicFilter
mqttTopicFilter
사용할 주제 필터와 함께.이 리소스는
+
및#
MQTT 주제 와일드카드를 지원합니다. 자세한 내용은 AWS IoT Core 개발자 안내서의 MQTT 주제를 참조하십시오.클라이언트 장치는 사용자가 허용하는 정확한 주제 필터를 구독할 수 있습니다. 예를 들어 클라이언트 장치가
mqtt:topicfilter:client/+/status
리소스를 구독하도록 허용하면 클라이언트 장치는 구독할 수client/+/status
있지만 구독할 수는 없습니다client/client1/status
.
-
*
와일드카드를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다. -
resources
-
이 정책에서 작업을 허용할 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정하십시오. 예를 들어
mqtt:publish
작업을 지정하는 정책에 MQTT 주제 리소스 목록 (mqtt:topic:
) 을 지정할 수 있습니다.mqttTopic
*
와일드카드를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다.*
와일드카드를 사용하여 부분 리소스 식별자를 일치시킬 수는 없습니다. 예를 들어 지정할 수는 있지만 지정할"resources": "*"
수는 없습니다."resources": "mqtt:clientId:*"
statementDescription
-
(선택 사항) 이 정책 설명에 대한 설명.
certificates
-
(선택 사항) 이 코어 디바이스의 인증서 구성 옵션. 이 객체에는 다음 정보가 포함되어 있어야 합니다.
serverCertificateValiditySeconds
-
(선택 사항) 로컬 MQTT 서버 인증서가 만료되는 시간 (초). 이 옵션을 구성하여 클라이언트 장치의 연결을 끊었다가 코어 장치에 다시 연결하는 빈도를 사용자 지정할 수 있습니다.
이 구성 요소는 만료되기 24시간 전에 로컬 MQTT 서버 인증서를 교체합니다. Moquette MQTT Broker 구성 요소와 같은 MQTT 브로커가 새 인증서를 생성하고 다시 시작합니다. 이 경우 이 코어 디바이스에 연결된 모든 클라이언트 디바이스의 연결이 끊어집니다. 잠시 후 클라이언트 장치를 코어 장치에 다시 연결할 수 있습니다.
기본값:
604800
(7일)최소값:
172800
(2일)최대치:
864000
(10일)
예: 구성 병합 업데이트 (제한적 정책 사용)
다음 예제 구성에서는 이름이 로 시작하는 클라이언트 장치가 모든 주제에 대해 연결 및
MyClientDevice
게시/구독할 수 있도록 지정합니다.{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
예: 구성 병합 업데이트 (허용 정책 사용)
다음 예제 구성은 모든 클라이언트 장치가 모든 주제에 대해 연결 및 게시/구독할 수 있도록 지정합니다.
{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
- v2.0.x
-
deviceGroups
-
장치 그룹은 코어 장치에 연결하고 통신할 수 있는 권한이 있는 클라이언트 장치 그룹입니다. 선택 규칙을 사용하여 클라이언트 장치 그룹을 식별하고 각 장치 그룹에 대한 권한을 지정하는 클라이언트 장치 권한 부여 정책을 정의합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
formatVersion
-
이 구성 개체의 형식 버전입니다.
다음 옵션 중 하나를 선택합니다.
-
2021-03-05
-
definitions
-
이 코어 디바이스의 디바이스 그룹. 각 정의는 클라이언트 장치가 그룹의 구성원인지 평가하는 선택 규칙을 지정합니다. 또한 각 정의는 선택 규칙과 일치하는 클라이언트 장치에 적용할 권한 정책을 지정합니다. 클라이언트 장치가 여러 장치 그룹의 구성원인 경우 장치 권한은 각 그룹의 권한 정책으로 구성됩니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
groupNameKey
-
이 장치 그룹의 이름. Replace
groupNameKey
이 장치 그룹을 식별하는 데 도움이 되는 이름을 사용하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
selectionRule
-
이 장치 그룹의 구성원인 클라이언트 장치를 지정하는 쿼리입니다. 클라이언트 장치가 연결되면 코어 장치는 이 선택 규칙을 평가하여 클라이언트 장치가 이 장치 그룹의 구성원인지 확인합니다. 클라이언트 장치가 구성원인 경우 코어 장치는 이 장치 그룹의 정책을 사용하여 클라이언트 장치의 동작을 승인합니다.
각 선택 규칙은 클라이언트 장치와 일치할 수 있는 단일 표현식 쿼리인 하나 이상의 선택 규칙 조항으로 구성됩니다. 선택 규칙은 AWS IoT 플릿 인덱싱과 동일한 쿼리 구문을 사용합니다. 선택 규칙 구문에 대한 자세한 내용은 AWS IoT Core 개발자 안내서의AWS IoT 플릿 인덱싱 쿼리 구문을 참조하십시오.
*
와일드카드를 사용하면 하나의 선택 규칙 조항으로 여러 클라이언트 장치를 일치시킬 수 있습니다. 사물 이름 끝에 이 와일드카드를 사용하여 이름이 지정한 문자열로 시작하는 클라이언트 장치를 일치시킬 수 있습니다. 이 와일드카드를 사용하여 모든 클라이언트 디바이스를 일치시킬 수도 있습니다.참고
콜론 문자 () 가 포함된 값을 선택하려면 콜론을 이스케이프하여 백슬래시 문자 (
:
) 를 사용하십시오.\\
와 같은 JSON 형식에서는 백슬래시 문자를 이스케이프 처리해야 하므로 콜론 문자 앞에 백슬래시 문자를 두 개 입력해야 합니다. 예를 들어, 이름이 다음과 같은 항목을thingName: MyTeam\\\\:ClientDevice1
선택하도록 지정합니다.MyTeam:ClientDevice1
다음 선택기를 지정할 수 있습니다.
-
thingName
— 클라이언트 장치 사물의 이름 AWS IoT .
예 선택 규칙 예시
다음 선택 규칙은 이름이
MyClientDevice1
또는 인 클라이언트 장치와MyClientDevice2
일치합니다.thingName: MyClientDevice1 OR thingName: MyClientDevice2
예 선택 규칙 예시 (와일드카드 사용)
다음 선택 규칙은 이름이 로 시작하는 클라이언트 디바이스와
MyClientDevice
일치합니다.thingName: MyClientDevice*
예 선택 규칙 예시 (모든 장치 매칭)
다음 선택 규칙은 모든 클라이언트 장치와 일치합니다.
thingName: *
-
policyName
-
이 장치 그룹의 클라이언트 장치에 적용되는 권한 정책.
policies
개체에 정의한 정책 이름을 지정합니다.
policies
-
코어 장치에 연결하는 클라이언트 장치에 대한 클라이언트 장치 권한 부여 정책. 각 권한 부여 정책은 클라이언트 장치가 이러한 작업을 수행할 수 있는 일련의 작업과 리소스를 지정합니다.
이 객체에는 다음 정보가 포함되어 있어야 합니다.
policyNameKey
-
이 권한 부여 정책의 이름. Replace
policyNameKey
이 권한 부여 정책을 식별하는 데 도움이 되는 이름을 사용하십시오. 이 정책 이름을 사용하여 장치 그룹에 적용할 정책을 정의할 수 있습니다.이 객체에는 다음 정보가 포함되어 있어야 합니다.
statementNameKey
-
이 정책 설명의 이름. Replace
statementNameKey
이 정책 설명을 식별하는 데 도움이 되는 이름을 포함하십시오.이 객체에는 다음 정보가 포함되어 있어야 합니다.
operations
-
이 정책에서 리소스를 허용하기 위한 작업 목록.
다음 작업 중 하나를 포함할 수 있습니다.
-
mqtt:connect
— 코어 디바이스에 연결할 수 있는 권한을 부여합니다. 클라이언트 장치에 코어 장치에 연결하려면 이 권한이 있어야 합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:clientId:
— 클라이언트 장치가 핵심 장치의 MQTT 브로커에 연결하는 데 사용하는 클라이언트 ID를 기반으로 액세스를 제한합니다. ReplacedeviceClientId
deviceClientId
사용할 클라이언트 ID와 함께.
-
-
mqtt:publish
— 주제에 MQTT 메시지를 게시할 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topic:
— 클라이언트 장치가 메시지를 게시하는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopic
mqttTopic
사용할 주제와 함께.이 리소스는 MQTT 주제 와일드카드를 지원하지 않습니다.
-
-
mqtt:subscribe
— MQTT 주제 필터를 구독하여 메시지를 받을 수 있는 권한을 부여합니다.이 작업은 다음 리소스를 지원합니다.
-
mqtt:topicfilter:
— 클라이언트 장치가 메시지를 구독할 수 있는 MQTT 주제에 따라 액세스를 제한합니다. ReplacemqttTopicFilter
mqttTopicFilter
사용할 주제 필터와 함께.이 리소스는
+
및#
MQTT 주제 와일드카드를 지원합니다. 자세한 내용은 AWS IoT Core 개발자 안내서의 MQTT 주제를 참조하십시오.클라이언트 장치는 사용자가 허용하는 정확한 주제 필터를 구독할 수 있습니다. 예를 들어 클라이언트 장치가
mqtt:topicfilter:client/+/status
리소스를 구독하도록 허용하면 클라이언트 장치는 구독할 수client/+/status
있지만 구독할 수는 없습니다client/client1/status
.
-
*
와일드카드를 지정하여 모든 작업에 대한 액세스를 허용할 수 있습니다. -
resources
-
이 정책에서 작업을 허용할 리소스 목록입니다. 이 정책의 작업에 해당하는 리소스를 지정하십시오. 예를 들어
mqtt:publish
작업을 지정하는 정책에 MQTT 주제 리소스 목록 (mqtt:topic:
) 을 지정할 수 있습니다.mqttTopic
*
와일드카드를 지정하여 모든 리소스에 대한 액세스를 허용할 수 있습니다.*
와일드카드를 사용하여 부분 리소스 식별자를 일치시킬 수는 없습니다. 예를 들어 지정할 수는 있지만 지정할"resources": "*"
수는 없습니다."resources": "mqtt:clientId:*"
statementDescription
-
(선택 사항) 이 정책 설명에 대한 설명.
예: 구성 병합 업데이트 (제한적 정책 사용)
다음 예제 구성에서는 이름이 로 시작하는 클라이언트 장치가 모든 주제에 대해 연결 및
MyClientDevice
게시/구독할 수 있도록 지정합니다.{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyDeviceGroup": { "selectionRule": "thingName: MyClientDevice*", "policyName": "MyRestrictivePolicy" } }, "policies": { "MyRestrictivePolicy": { "AllowConnect": { "statementDescription": "Allow client devices to connect.", "operations": [ "mqtt:connect" ], "resources": [ "*" ] }, "AllowPublish": { "statementDescription": "Allow client devices to publish on test/topic.", "operations": [ "mqtt:publish" ], "resources": [ "mqtt:topic:test/topic" ] }, "AllowSubscribe": { "statementDescription": "Allow client devices to subscribe to test/topic/response.", "operations": [ "mqtt:subscribe" ], "resources": [ "mqtt:topicfilter:test/topic/response" ] } } } } }
예: 구성 병합 업데이트 (허용 정책 사용)
다음 예제 구성은 모든 클라이언트 장치가 모든 주제에 대해 연결 및 게시/구독할 수 있도록 지정합니다.
{ "deviceGroups": { "formatVersion": "2021-03-05", "definitions": { "MyPermissiveDeviceGroup": { "selectionRule": "thingName: *", "policyName": "MyPermissivePolicy" } }, "policies": { "MyPermissivePolicy": { "AllowAll": { "statementDescription": "Allow client devices to perform all actions.", "operations": [ "*" ], "resources": [ "*" ] } } } } }
로컬 로그 파일
이 구성 요소는 Greengrass 핵 구성 요소와 동일한 로그 파일을 사용합니다.
- Linux
-
/logs/greengrass.log/greengrass/v2
- Windows
-
C:\greengrass\v2
\logs\greengrass.log
이 구성 요소의 로그를 보려면
-
코어 기기에서 다음 명령을 실행하여 이 구성 요소의 로그 파일을 실시간으로 확인합니다. 교체
또는/greengrass/v2
C:\greengrass\v2
AWS IoT Greengrass 루트 폴더 경로와 함께.- Linux
-
sudo tail -f
/logs/greengrass.log/greengrass/v2
- Windows (PowerShell)
-
Get-Content
C:\greengrass\v2
\logs\greengrass.log -Tail 10 -Wait
Changelog
다음 표에는 각 구성 요소 버전의 변경 사항이 설명되어 있습니다.
버전 |
변경 |
---|---|
2.5.1 |
|
2.5.0 |
|
2.4.5 |
|
2.4.4 |
그린그래스 뉴클리어스 버전 2.12.0 릴리스를 위해 버전이 업데이트되었습니다. |
2.4.3 |
그린그래스 뉴클리어스 버전 2.11.0 릴리스를 위해 버전이 업데이트되었습니다. |
2.4.2 |
|
2.4.1 |
그린그래스 뉴클리어스 버전 2.10.0 릴리스를 위해 버전이 업데이트되었습니다. |
2.4.0 |
|
2.3.2 |
|
2.3.1 |
|
2.3.0 |
주의이 버전은 더 이상 사용할 수 없습니다. 이 버전의 개선 사항은 이 구성 요소의 이후 버전에서 사용할 수 있습니다. 새로운 기능
|
2.2.3 |
Greengrass 뉴클리어스 버전 2.8.0 릴리스를 위해 버전이 업데이트되었습니다. |
2.2.2 |
|
2.2.1 |
Greengrass 뉴클리어스 버전 2.7.0 릴리스를 위해 버전이 업데이트되었습니다. |
2.2.0 |
|
2.1.0 |
|
2.0.4 |
Greengrass 뉴클리어스 버전 2.5.0 릴리스를 위해 버전이 업데이트되었습니다. |
2.0.3 |
|
2.0.2 |
그린그래스 뉴클리어스 버전 2.4.0 릴리스를 위해 버전이 업데이트되었습니다. |
2.0.1 |
그린그래스 뉴클리어스 버전 2.3.0 릴리스를 위해 버전이 업데이트되었습니다. |
2.0.0 |
초기 버전 |