

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 基本的な AWS IoT Core ポリシー変数
<a name="basic-policy-variables"></a>

AWS IoT Core は、以下の基本的なポリシー変数を定義します。
+ `aws:SourceIp`: AWS IoT Core メッセージブローカーに接続されているクライアントの IP アドレス。
+ `iot:ClientId`: このクライアント ID は、 AWS IoT Core メッセージブローカーに接続するために使用されます。
+ `iot:DomainName`: 接続先のクライアントのドメイン名 AWS IoT Core。

**Topics**
+ [`ClientId` および `SourceIp` ポリシー変数の例](#basic-policy-variables-example)
+ [`iot:DomainName` ポリシー変数の例](#basic-policy-variables-example-domain)

## `ClientId` および `SourceIp` ポリシー変数の例
<a name="basic-policy-variables-example"></a>

次の AWS IoT Core ポリシーは、ポリシー変数を使用するポリシーを示しています。 `aws:SourceIp`は、ポリシーの Condition 要素で使用して、プリンシパルが特定のアドレス範囲内でのみ API リクエストを実行できるようにします。例については「[ユーザーとクラウドサービスに AWS IoT ジョブの使用を許可する](iam-policy-users-jobs.md)」を参照してください。

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"iot:Connect"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:client/clientid1"
			]
		},
		{
			"Effect": "Allow",
			"Action": [
				"iot:Publish"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:topic/my/topic/${iot:ClientId}"
			],
			"Condition": {
				"IpAddress": {
					"aws:SourceIp": "123.45.167.89"
				}
			}
		}
	]
}
```

これらの例では、ポリシー`${iot:ClientId}`が評価されると、 は AWS IoT Core メッセージブローカーに接続されたクライアントの ID に置き換えられます。`${iot:ClientId}` などのポリシー変数を使用すると、アクセス可能にしないトピックにアクセスすることがあります。例えば、`${iot:ClientId}` を使用するポリシーでトピックフィルターを指定する場合です。

```
{
	"Effect": "Allow",
	"Action": [
		"iot:Subscribe"
	],
	"Resource": [
		"arn:aws:iot:us-east-1:123456789012:topicfilter/my/${iot:ClientId}/topic"
	]
}
```

クライアントは、クライアント ID として `+` を使用して接続できます。これにより、ユーザーはトピックフィルター `my/+/topic` に一致する任意のトピックにサブスクライブできます。このようなセキュリティギャップから保護するには、`iot:Connect` ポリシーアクションを使用して、どのクライアント ID が接続できるかを制御します。例えば、このポリシーにより、これらのクライアント ID が `clientid1` のクライアントのみが接続できるようになります。

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": [
				"iot:Connect"
			],
			"Resource": [
				"arn:aws:iot:us-east-1:123456789012:client/clientid"
			]
		}
	]
}
```

**注記**  
ポリシー変数 `${iot:ClientId}` を `Connect` と併用することはお勧めしません。`ClientId` の値はチェックされないため、別のクライアントの ID のアタッチャーが検証に合格しても接続が切断されることがあります。どのクライアント ID `ClientId` も許可されているため、ランダムなクライアント ID を設定すると、モノグループのポリシーがバイパスされる可能性があります。

## `iot:DomainName` ポリシー変数の例
<a name="basic-policy-variables-example-domain"></a>

`iot:DomainName` ポリシー変数を追加して、使用できるドメインを制限できます。`iot:DomainName` ポリシー変数を追加すると、デバイスは特定の設定済みエンドポイントにのみ接続できます。

次のポリシーでは、デバイスが指定されたドメインに接続することを許可します。

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": {
		"Sid": "AllowConnectionsToSpecifiedDomain",
		"Effect": "Allow",
		"Action": [
			"iot:Connect"
		],
		"Resource": "arn:aws:iot:us-east-1:123456789012:client/clientid",
		"Condition": {
			"StringEquals": {
				"iot:DomainName": "d1234567890abcdefghij-ats.iot.us-east-1.amazonaws.com"
			}
		}
	}
}
```

次のポリシーは、デバイスが指定されたドメインに接続することを拒否します。

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": {
		"Sid": "DenyConnectionsToSpecifiedDomain",
		"Effect": "Deny",
		"Action": [
			"iot:Connect"
		],
		"Resource": "arn:aws:iot:us-east-1:123456789012:client/clientid",
		"Condition": {
			"StringEquals": {
				"iot:DomainName": "d1234567890abcdefghij-ats.iot.us-east-1.amazonaws.com"
			}
		}
	}
}
```

ポリシー条件演算子の詳細については、「[IAM JSON ポリシーエレメント: 条件演算子](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)」を参照してください。ドメイン設定の詳細については、「[ドメイン設定とは](https://docs.aws.amazon.com//iot/latest/developerguide/iot-custom-endpoints-configurable.html)」を参照してください。