

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

# 사물 정책 변수
<a name="thing-policy-variables"></a>

사물 정책 변수를 사용하면 사물 이름, 사물 유형 및 사물 속성 값과 같은 사물 속성을 기반으로 권한을 부여하거나 거부하는 AWS IoT Core 정책을 작성할 수 있습니다. 사물 정책 변수를 사용하여 동일한 정책을 적용하여 많은 AWS IoT Core 디바이스를 제어할 수 있습니다. 디바이스 프로비저닝에 대한 자세한 내용은 [디바이스 프로비저닝](iot-provision.html)을 참조하세요.

비독점 사물 연결을 사용하는 경우, 동일한 인증서를 여러 사물에 연결할 수 있습니다. 명확한 연결 관계를 유지하고 잠재적 충돌을 방지하려면, 클라이언트 ID가 사물 이름과 일치해야 합니다. 이 경우 사물이 연결될 때 전송되는 MQTT `Connect` 메시지의 클라이언트 ID에서 사물 이름을 가져옵니다 AWS IoT Core.

 AWS IoT Core 정책에서 사물 정책 변수를 사용할 때는 다음 사항에 유의하세요.
+ [AttachThingPrincipal](https://docs.aws.amazon.com/iot/latest/apireference/API_AttachThingPrincipal.html) API를 사용하여 인증서 또는 보안 주체(인증된 Amazon Cognito 자격 증명)를 사물에 연결할 수 있습니다.
+ 비독점 사물 연결이 이루어졌을 경우, 사물 이름을 사물 정책 변수로 바꿀 때 MQTT 연결 메시지 또는 TLS 연결의 `clientId` 값이 사물 이름과 정확히 일치해야 합니다.

다음의 사물 정책 변수를 사용할 수 있습니다.
+ `iot:Connection.Thing.ThingName`

  이렇게 하면 정책이 평가되는 AWS IoT Core 레지스트리의 사물 이름으로 확인됩니다.는 디바이스가 인증할 때 제공하는 인증서를 AWS IoT Core 사용하여 연결을 확인하는 데 사용할 사물을 결정합니다. 이 정책 변수는 디바이스가 MQTT 또는 WebSocket 프로토콜을 통한 MQTT를 통해 연결하는 경우에만 사용할 수 있습니다.
+ `iot:Connection.Thing.ThingTypeName`

  이 변수는 정책이 평가되는 사물과 연결된 사물 유형으로 변환됩니다. MQTT/WebSocket 연결의 클라이언트 ID는 사물 이름과 동일해야 합니다. 이 정책 변수는 MQTT 또는 WebSocket 프로토콜을 통한 MQTT를 통해 연결하는 경우에만 사용할 수 있습니다.
+ `iot:Connection.Thing.Attributes[attributeName]`

  이 변수는 정책이 평가되는 사물과 연결된 지정된 속성의 값으로 변환됩니다. 사물은 최대 50개의 속성을 가질 수 있습니다. 각 속성은 정책 변수 `iot:Connection.Thing.Attributes[attributeName]`으로 사용할 수 있습니다. 여기서 *attributeName*은 속성의 이름입니다. MQTT/WebSocket 연결의 클라이언트 ID는 사물 이름과 동일해야 합니다. 이 정책 변수는 MQTT 또는 MQTT over WebSocket 프로토콜을 통해 연결하는 경우에만 사용할 수 있습니다.
+ `iot:Connection.Thing.IsAttached`

  `iot:Connection.Thing.IsAttached: ["true"]`는에 등록 AWS IoT 되고 보안 주체에 연결된 디바이스만 정책 내의 권한에 액세스할 수 있도록 합니다. 이 변수를 사용하면 레지스트리의 IoT 사물에 AWS IoT Core 연결되지 않은 인증서를 제공하는 AWS IoT Core 경우 디바이스가에 연결되지 않도록 할 수 있습니다.이 변수에는 연결 사물이 [AttachThingPrincipal](https://docs.aws.amazon.com/iot/latest/apireference/API_AttachThingPrincipal.html) API를 사용하여 레지스트리의 인증서 또는 Amazon Cognito 자격 증명에 연결되었음을 `false` 나타내는 `true` 또는 값이 있습니다. 사물 이름은 클라이언트 ID로 간주됩니다.

클라이언트 ID가 사물 이름과 일치하거나 인증서를 하나의 사물에만 독점적으로 연결하는 경우, 정책 정의에서 정책 변수를 사용하면 정책 관리를 간소화할 수 있습니다. 각 IoT 사물에 대해 개별 정책을 생성하는 대신, 사물 정책 변수를 사용하여 단일 정책을 정의할 수 있습니다. 이 정책은 모든 디바이스에 동적으로 적용할 수 있습니다. 다음은 작동 방식을 보여주는 예제 정책입니다. 자세한 내용은 [AWS IoT 사물을 MQTT 클라이언트 연결에 연결](exclusive-thing.md) 단원을 참조하십시오.

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Condition": {
				"StringLike": {
					"iot:ClientId": "*${iot:Connection.Thing.Attributes[envType]}"
				}
			},
			"Effect": "Allow",
			"Action": "iot:Connect",
			"Resource": "arn:aws:iot:us-east-1:123456789012:client/*"
		}
	]
}
```

이 정책 예제에서는 클라이언트 ID가 `envType` 속성 값으로 끝나는 AWS IoT Core 경우 사물을에 연결할 수 있도록 허용합니다. 클라이언트 ID 패턴이 일치하는 사물만 연결할 수 있습니다.