基本的な AWS IoT Core ポリシー変数 - AWS IoT Core

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

基本的な AWS IoT Core ポリシー変数

AWS IoT Core は、以下の基本的なポリシー変数を定義します。

  • iot:ClientId: このクライアント ID は、 AWS IoT Core メッセージブローカーに接続するために使用されます。

  • aws:SourceIp: AWS IoT Core メッセージブローカーに接続されているクライアントの IP アドレス。

次の AWS IoT Core ポリシーは、ポリシー変数を使用するポリシーを示しています。 をポリシーの条件要素で使用して、プリンシパルが特定のアドレス範囲内でのみAPIリクエストを実行できるようにaws:SourceIpすることができます。例については、「AWS IoT ジョブを使用するためにユーザーとクラウドサービスを承認する」を参照してください。

{ "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ポリシーアクションを使用して、接続IDsできるクライアントを制御します。例えば、このポリシーにより、これらのクライアント ID が clientid1 のクライアントのみが接続できるようになります。

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

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