モノのポリシー変数 - AWS IoT Core

モノのポリシー変数

モノのポリシー変数では、モノ名、モノのタイプ、モノの属性値のようなモノのプロパティに基づいてアクセス許可を付与または拒否する AWS IoT Core ポリシーを書き込むことができます。モノのポリシー変数を使用し、同じポリシーを適用して多くの AWS IoT Core デバイスを制御できます。デバイスのプロビジョニングの詳細については、「デバイスプロビジョニング」を参照してください。モノ名は、モノが Connect に接続されるときに送信される MQTT AWS IoT Core メッセージのクライアント ID から取得されます。

AWS IoT Core ポリシーで Thing ポリシー変数を使用する場合は、次の点に注意してください。

  • AttachThingPrincipal API を使用して、証明書やプリンシパル (認証済みの Amazon Cognito ID) をモノにアタッチします。

  • モノの名前を Thing ポリシー変数に置き換える場合、MQTT 接続メッセージまたは TLS 接続の clientId の値がモノの名前と完全に一致している必要があります。

以下のモノのポリシー変数が利用可能です。

  • iot:Connection.Thing.ThingName

    AWS IoT Core レジストリのモノの名前に解決されます。これに対してポリシーが評価されます。AWS IoT Core はデバイスを認証する際に提示されるデバイス証明書を使用して、接続の検証に使用するモノを決定します。このポリシー変数は、デバイスが MQTT または MQTT over WebSocket プロトコルに接続するときにのみ使用できます。

  • iot:Connection.Thing.ThingTypeName

    これは、ポリシーが評価されているモノと関連付けられるモノのタイプに解決されます。MQTT/WebSocket 接続のクライアント ID は、モノの名前と同じである必要があります。このポリシー変数は、MQTT または MQTT over WebSocket プロトコルに接続するときにのみ使用できます。

  • 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 に登録され、かつ、プリンシパルにアタッチされているデバイスのみが、ポリシー内のアクセス許可にアクセスできるように強制します。この変数を使用して、デバイスが AWS IoT Core レジストリ内の IoT モノにアタッチされていない証明書を提示する場合、デバイスが AWS IoT Core に接続できないようにすることができます。この変数には true または false の値が含まれており、接続しているモノが AttachThingPrincipal API を使用してレジストリ内の証明書または Amazon Cognito ID にアタッチされていることを示しています。モノの名前はクライアント ID として使用されます。