クライアントデバイス認証 - AWS IoT Greengrass

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

クライアントデバイス認証

クライアントデバイス認証コンポーネント (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 nucleus は、nucleus と同じ Java 仮想マシン (JVM) でこのコンポーネントを実行します。コアデバイスでこのコンポーネントのバージョンを変更するとき、nucleus が再起動します。

このコンポーネントは、Greengrass nucleus と同じログファイルを使用します。詳細については、「AWS IoT Greengrass ログのモニタリング」を参照してください。

詳細については、「コンポーネントタイプ」を参照してください。

オペレーティングシステム

このコンポーネントは、次のオペレーティングシステムを実行するコアデバイスにインストールできます。

  • Linux

  • Windows

要件

このコンポーネントには次の要件があります。

  • Greengrass サービスロールを に関連付け AWS アカウント て、 アクセスiot:DescribeCertificate許可を付与する必要があります。

  • コアデバイスの AWS IoT ポリシーでは、次のアクセス許可を許可する必要があります。

    • greengrass:GetConnectivityInfo。リソースには、このコンポーネントを実行するARNコアデバイスの が含まれます。

    • greengrass:VerifyClientDeviceIoTCertificateAssociation。リソースには、コアデバイスに接続する各クライアントデバイスの Amazon リソースネーム (ARN) が含まれます。

    • greengrass:VerifyClientDeviceIdentity

    • greengrass:PutCertificateAuthorities

    • iot:Publish。リソースには、次のMQTTトピックARNの が含まれます。

      • $aws/things/coreDeviceThingName*-gci/shadow/get

    • iot:Subscribe。リソースには、次のMQTTトピックフィルターARNsの が含まれます。

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    • iot:Receive。リソースには、次のMQTTトピックARNsの が含まれます。

      • $aws/things/coreDeviceThingName*-gci/shadow/update/delta

      • $aws/things/coreDeviceThingName*-gci/shadow/get/accepted

    詳細については、「データプレーンオペレーションの AWS IoT ポリシー」および「クライアントデバイスをサポートするための最低限の AWS IoT ポリシー」を参照してください。

  • (オプション) オフライン認証を使用するには、サービスで使用される AWS Identity and Access Management (IAM) ロールに AWS IoT Greengrass 次のアクセス許可が含まれている必要があります。

    • コアデバイスでオフライン認証用のクライアントを一覧表示できるようにするための greengrass:ListClientDevicesAssociatedWithCoreDevice

  • クライアントデバイス認証コンポーネントは、 での実行がサポートされていますVPC。このコンポーネントを にデプロイするにはVPC、以下が必要です。

    • クライアントデバイス認証コンポーネントは AWS IoT data、、 AWS IoT 認証情報、および Amazon S3 に接続する必要があります。

エンドポイントおよびポート

このコンポーネントは、基本的な操作に必要なエンドポイントとポートに加えて、次のエンドポイントとポートに対し、アウトバウンドリクエストを実行できる必要があります。詳細については、「プロキシまたはファイアウォールを介したデバイストラフィックを許可する」を参照してください。

エンドポイント [ポート] 必要 説明

iot.region.amazonaws.com

443 あり

AWS IoT モノの証明書に関する情報を取得するために使用されます。

依存関係

コンポーネントをデプロイすると、 はその依存関係の互換性のあるバージョン AWS IoT Greengrass もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソールでも確認できます。コンポーネントの詳細ページで [Dependencies] (依存関係) リストを確認します。

2.5.1

次の表に、このコンポーネントのバージョン 2.5.1 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.6.0 <2.14.0 ソフト
2.4.4 - 2.5.0

次の表に、このコンポーネントのバージョン 2.4.4 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.6.0 <2.13.0 ソフト
2.4.3

次の表に、このコンポーネントのバージョン 2.4.3 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.6.0 <2.12.0 ソフト
2.4.1 and 2.4.2

次の表に、このコンポーネントのバージョン 2.4.1 および 2.4.2 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.6.0 <2.11.0 ソフト
2.3.0 – 2.4.0

次の表に、このコンポーネントのバージョン 2.3.0 から 2.4.0 までの依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.6.0 <2.10.0 ソフト
2.3.0

次の表に、このコンポーネントのバージョン 2.3.0 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.6.0 <2.10.0 ソフト
2.2.3

次の表に、このコンポーネントのバージョン 2.2.3 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.6.0 <=2.9.0 ソフト
2.2.2

次の表に、このコンポーネントのバージョン 2.2.2 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.6.0 <=2.8.0 ソフト
2.2.1

次の表に、このコンポーネントのバージョン 2.2.1 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.6.0 <2.8.0 ソフト
2.2.0

次の表に、このコンポーネントのバージョン 2.2.0 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.6.0 <2.7.0 ソフト
2.1.0

次の表に、このコンポーネントのバージョン 2.1.0 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.2.0 <2.7.0 ソフト
2.0.4

次の表に、このコンポーネントのバージョン 2.0.4 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.2.0 <2.6.0 ソフト
2.0.2 and 2.0.3

次の表に、このコンポーネントのバージョン 2.0.2 および 2.0.3 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.2.0 <2.5.0 ソフト
2.0.1

次の表に、このコンポーネントのバージョン 2.0.1 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.2.0 <2.4.0 ソフト
2.0.0

次の表に、このコンポーネントのバージョン 2.0.0 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.2.0 <2.3.0 ソフト

コンポーネントの依存関係の詳細については、「コンポーネント recipe のリファレンス」を参照してください。

構成

このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。

注記

サブスクライブアクセス許可は、ローカルMQTTブローカーへのクライアントサブスクライブリクエスト中に評価されます。クライアントの既存のサブスクライブ許可が取り消されると、クライアントはトピックをサブスクライブできなくなります。ただし、以前にサブスクライブしたトピックからのメッセージは引き続き受信されます。この動作を防ぐには、サブスクライブ許可を取り消した後でローカルMQTTブローカーを再起動して、クライアントの再承認を強制する必要があります。

5 ブローカー (EMQX) MQTT コンポーネントの場合は、restartIdentifier設定を更新して 5 MQTT ブローカーを再起動します。

3MQTT.1.1 ブローカー (モケット) コンポーネントでは、サーバー証明書が変更されてクライアントに再承認を強制すると、デフォルトで毎週再起動します。コアデバイスの接続情報 (IP アドレス) を変更するか、デプロイを実行してブローカーコンポーネントを削除し、後で再度デプロイすることで、再起動を強制できます。

v2.5.0
deviceGroups

デバイスグループは、コアデバイスに接続して通信する権限を持つクライアントデバイスのグループです。選択ルールを使用してクライアントデバイスのグループを特定し、各デバイスグループにアクセス許可を指定する、クライアントデバイス認証ポリシーを定義します。

このオブジェクトには、次の情報が含まれます。

formatVersion

この設定オブジェクトの形式バージョン。

次のオプションから選択します。

  • 2021-03-05

definitions

このコアデバイスのデバイスグループ。各定義では、クライアントデバイスがグループのメンバーであるかどうかを評価する選択ルールを指定します。各定義では、選択ルールに一致するクライアントデバイスに適用するアクセス権限ポリシーも指定します。クライアントデバイスが複数のデバイスグループのメンバーである場合、デバイスのアクセス許可は各グループのアクセス許可ポリシーで設定されます。

このオブジェクトには、次の情報が含まれます。

groupNameKey

このデバイスグループの名前。置換 groupNameKey このデバイスグループを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

selectionRule

このデバイスグループのメンバーであるクライアントデバイスを指定するクエリ。クライアントデバイスが接続されると、コアデバイスはこの選択ルールを評価して、クライアントデバイスがこのデバイスグループのメンバーであるかどうかを判断します。クライアントデバイスがメンバーである場合、コアデバイスはこのデバイスグループのポリシーを使用して、クライアントデバイスのアクションを承認します。

各選択ルールは少なくとも 1 つの選択ルール句で設定されています。この句は、クライアントデバイスと一致させることができる 1 つの式クエリです。選択ルールは、 AWS IoT フリートインデックス作成と同じクエリ構文を使用します。選択ルールの構文に関する詳細については、「AWS IoT Core デベロッパーガイド」の「AWS IoT フリートのインデックス作成クエリ構文」を参照してください。

* ワイルドカードを使用して、複数のクライアントデバイスを 1 つの選択ルール句と一致させます。モノの名前の先頭と末尾にこのワイルドカードを使用して、名前が指定した文字列で始まるクライアントデバイスまたは終わるクライアントデバイスを一致させることができます。このワイルドカードを使用して、すべてのクライアントデバイスと一致させることもできます。

注記

コロン文字 (:) を含む値を選択する場合は、コロン文字にバックスラッシュ文字 (\) を使用してエスケープします。などの形式ではJSON、バックスラッシュ文字をエスケープする必要があるため、コロン文字の前に 2 つのバックスラッシュ文字を入力する必要があります。例えば、thingName: MyTeam\\:ClientDevice1MyTeam:ClientDevice1 という名前のモノを選択するように指定する場合です。

次のセレクターを指定できます。

  • thingName – クライアントデバイスの AWS IoT モノの名前。

例 選択ルール例

次の選択ルールは、名前が MyClientDevice1 または MyClientDevice2 のクライアントデバイスと一致します。

thingName: MyClientDevice1 OR thingName: MyClientDevice2
例 選択ルール例 (ワイルドカードを使用)

次の選択ルールは、名前が MyClientDevice で始まるクライアントデバイスと一致します。

thingName: MyClientDevice*
例 選択ルール例 (ワイルドカードを使用)

次の選択ルールは、名前が で終わるクライアントデバイスと一致しますMyClientDevice

thingName: *MyClientDevice
例 選択ルール例 (すべてのデバイスに一致)

次の選択ルールは、すべてのクライアントデバイスと一致します。

thingName: *
policyName

このデバイスグループ内のクライアントデバイスに適用されるアクセス許可ポリシー。policies オブジェクトで定義するポリシーの名前を指定します。

policies

コアデバイスに接続するクライアントデバイス用の、クライアントデバイス認証ポリシー。各承認ポリシーは、クライアントデバイスがこれらのアクションを実行できるアクションセットとリソースを指定しています。

このオブジェクトには、次の情報が含まれます。

policyNameKey

この承認ポリシーの名前。置換 policyNameKey この承認ポリシーを識別するのに役立つ名前の 。このポリシー名を使用して、デバイスグループに適用するポリシーを定義します。

このオブジェクトには、次の情報が含まれます。

statementNameKey

このポリシーステートメントの名前。置換 statementNameKey このポリシーステートメントを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

operations

このポリシーのリソースに許可する操作のリスト。

以下のすべての操作を含めることができます。

  • mqtt:connect - コアデバイスに接続するアクセス許可を付与します。コアデバイスに接続するには、クライアントデバイスにこのアクセス許可が必要です。

    この操作は、次のリソースをサポートします。

    • mqtt:clientId:deviceClientId – クライアントデバイスがコアデバイスのMQTTブローカーへの接続に使用するクライアント ID に基づいてアクセスを制限します。置換 deviceClientId 使用するクライアント ID を指定します。

  • mqtt:publish – トピックにMQTTメッセージを発行するアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topic:mqttTopic – クライアントデバイスがメッセージを発行するMQTTトピックに基づいてアクセスを制限します。置換 mqttTopic を使用するトピック。

      このリソースはMQTTトピックワイルドカードをサポートしていません。

  • mqtt:subscribe – メッセージを受信するためにMQTTトピックフィルターをサブスクライブするアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topicfilter:mqttTopicFilter – クライアントデバイスがメッセージをサブスクライブできるMQTTトピックに基づいてアクセスを制限します。置換 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 を使用して、接続の検証に使用するモノを決定します。このポリシー変数は、デバイスがMQTTMQTT WebSocket プロトコルを介して接続する場合にのみ使用できます。

statementDescription

(オプション) このポリシーステートメントの説明。

certificates

(オプション) このコアデバイスの証明書設定オプション。このオブジェクトには、次の情報が含まれます。

serverCertificateValiditySeconds

(オプション) ローカルMQTTサーバー証明書の有効期限が切れるまでの時間 (秒単位)。このオプションを設定すれば、クライアントデバイスがコアデバイスから切断し、また再接続する回数をカスタマイズすることができます。

このコンポーネントは、ローカルMQTTサーバー証明書の有効期限が切れる 24 時間前にローテーションします。Moquette MQTTブローカーコンポーネント などのブローカーは、新しい証明書を生成して再起動します。 MQTT これが実行されると、このコアデバイスに接続されているすべてのクライアントデバイスが切断されます。クライアントデバイスは、短時間待機した後に、コアデバイスに再度接続できます。

デフォルト: 604800 (7 日)

最小値: 172800 (2 日)

最大値: 864000 (10 日)

performance

(オプション) このコアデバイスのパフォーマンス設定オプション。このオブジェクトには、次の情報が含まれます。

maxActiveAuthTokens

(オプション) アクティブなクライアントデバイス認証トークンの最大数。この数を増やすと、より多くのクライアントデバイスが、再認証せずに単一のコアデバイスに接続できるようになります。

デフォルト: 2500

cloudRequestQueueSize

(オプション) このコンポーネントが AWS クラウド リクエストを拒否するまでのキューへのリクエストの最大数。

デフォルト: 100

maxConcurrentCloudRequests

(オプション) AWS クラウドに同時に送信できるリクエストの最大数。この数を増やすと、多数のクライアントデバイスを接続するコアデバイスで、認証のパフォーマンスを向上させることができます。

デフォルト: 1

certificateAuthority

(オプション) コアデバイスの中間認証機関を独自の中間認証機関に置き換える認証機関設定オプション。

注記

Greengrass コアデバイスをカスタム認証局 (CA) で設定し、同じ 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

クライアントデバイス認証がメトリクスを集約してテレメトリエージェントに送信する頻度を決定する集計期間 (秒単位)。テレメトリエージェントは依然として 1 日に 1 回メトリクスを公開するので、メトリクスの公開頻度は変わりません。

デフォルト: 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

このデバイスグループの名前。置換 groupNameKey このデバイスグループを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

selectionRule

このデバイスグループのメンバーであるクライアントデバイスを指定するクエリ。クライアントデバイスが接続されると、コアデバイスはこの選択ルールを評価して、クライアントデバイスがこのデバイスグループのメンバーであるかどうかを判断します。クライアントデバイスがメンバーである場合、コアデバイスはこのデバイスグループのポリシーを使用して、クライアントデバイスのアクションを承認します。

各選択ルールは少なくとも 1 つの選択ルール句で設定されています。この句は、クライアントデバイスと一致させることができる 1 つの式クエリです。選択ルールは、 AWS IoT フリートインデックス作成と同じクエリ構文を使用します。選択ルールの構文に関する詳細については、「AWS IoT Core デベロッパーガイド」の「AWS IoT フリートのインデックス作成クエリ構文」を参照してください。

* ワイルドカードを使用して、複数のクライアントデバイスを 1 つの選択ルール句と一致させます。モノの名前の先頭と末尾にこのワイルドカードを使用して、名前が指定した文字列で始まるクライアントデバイスまたは終わるクライアントデバイスを一致させることができます。このワイルドカードを使用して、すべてのクライアントデバイスと一致させることもできます。

注記

コロン文字 (:) を含む値を選択する場合は、コロン文字にバックスラッシュ文字 (\) を使用してエスケープします。などの形式ではJSON、バックスラッシュ文字をエスケープする必要があるため、コロン文字の前に 2 つのバックスラッシュ文字を入力する必要があります。例えば、thingName: MyTeam\\:ClientDevice1MyTeam:ClientDevice1 という名前のモノを選択するように指定する場合です。

次のセレクターを指定できます。

  • thingName – クライアントデバイスの AWS IoT モノの名前。

例 選択ルール例

次の選択ルールは、名前が MyClientDevice1 または MyClientDevice2 のクライアントデバイスと一致します。

thingName: MyClientDevice1 OR thingName: MyClientDevice2
例 選択ルール例 (ワイルドカードを使用)

次の選択ルールは、名前が MyClientDevice で始まるクライアントデバイスと一致します。

thingName: MyClientDevice*
例 選択ルール例 (ワイルドカードを使用)

次の選択ルールは、名前が で終わるクライアントデバイスと一致しますMyClientDevice

thingName: *MyClientDevice
例 選択ルール例 (すべてのデバイスに一致)

次の選択ルールは、すべてのクライアントデバイスと一致します。

thingName: *
policyName

このデバイスグループ内のクライアントデバイスに適用されるアクセス許可ポリシー。policies オブジェクトで定義するポリシーの名前を指定します。

policies

コアデバイスに接続するクライアントデバイス用の、クライアントデバイス認証ポリシー。各承認ポリシーは、クライアントデバイスがこれらのアクションを実行できるアクションセットとリソースを指定しています。

このオブジェクトには、次の情報が含まれます。

policyNameKey

この承認ポリシーの名前。置換 policyNameKey この承認ポリシーを識別するのに役立つ名前の 。このポリシー名を使用して、デバイスグループに適用するポリシーを定義します。

このオブジェクトには、次の情報が含まれます。

statementNameKey

このポリシーステートメントの名前。置換 statementNameKey このポリシーステートメントを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

operations

このポリシーのリソースに許可する操作のリスト。

以下のすべての操作を含めることができます。

  • mqtt:connect - コアデバイスに接続するアクセス許可を付与します。コアデバイスに接続するには、クライアントデバイスにこのアクセス許可が必要です。

    この操作は、次のリソースをサポートします。

    • mqtt:clientId:deviceClientId – クライアントデバイスがコアデバイスのMQTTブローカーへの接続に使用するクライアント ID に基づいてアクセスを制限します。置換 deviceClientId 使用するクライアント ID を指定します。

  • mqtt:publish – トピックにMQTTメッセージを発行するアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topic:mqttTopic – クライアントデバイスがメッセージを発行するMQTTトピックに基づいてアクセスを制限します。置換 mqttTopic を使用するトピック。

      このリソースはMQTTトピックワイルドカードをサポートしていません。

  • mqtt:subscribe – メッセージを受信するためにMQTTトピックフィルターをサブスクライブするアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topicfilter:mqttTopicFilter – クライアントデバイスがメッセージをサブスクライブできるMQTTトピックに基づいてアクセスを制限します。置換 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サーバー証明書の有効期限が切れるまでの時間 (秒単位)。このオプションを設定すれば、クライアントデバイスがコアデバイスから切断し、また再接続する回数をカスタマイズすることができます。

このコンポーネントは、ローカルMQTTサーバー証明書の有効期限が切れる 24 時間前にローテーションします。Moquette MQTTブローカーコンポーネント などのブローカーは、新しい証明書を生成して再起動します。 MQTT これが実行されると、このコアデバイスに接続されているすべてのクライアントデバイスが切断されます。クライアントデバイスは、短時間待機した後に、コアデバイスに再度接続できます。

デフォルト: 604800 (7 日)

最小値: 172800 (2 日)

最大値: 864000 (10 日)

performance

(オプション) このコアデバイスのパフォーマンス設定オプション。このオブジェクトには、次の情報が含まれます。

maxActiveAuthTokens

(オプション) アクティブなクライアントデバイス認証トークンの最大数。この数を増やすと、より多くのクライアントデバイスが、再認証せずに単一のコアデバイスに接続できるようになります。

デフォルト: 2500

cloudRequestQueueSize

(オプション) このコンポーネントが AWS クラウド リクエストを拒否するまでのキューへのリクエストの最大数。

デフォルト: 100

maxConcurrentCloudRequests

(オプション) AWS クラウドに同時に送信できるリクエストの最大数。この数を増やすと、多数のクライアントデバイスを接続するコアデバイスで、認証のパフォーマンスを向上させることができます。

デフォルト: 1

certificateAuthority

(オプション) コアデバイスの中間認証機関を独自の中間認証機関に置き換える認証機関設定オプション。

注記

Greengrass コアデバイスをカスタム認証局 (CA) で設定し、同じ 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

クライアントデバイス認証がメトリクスを集約してテレメトリエージェントに送信する頻度を決定する集計期間 (秒単位)。テレメトリエージェントは依然として 1 日に 1 回メトリクスを公開するので、メトリクスの公開頻度は変わりません。

デフォルト: 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

このデバイスグループの名前。置換 groupNameKey このデバイスグループを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

selectionRule

このデバイスグループのメンバーであるクライアントデバイスを指定するクエリ。クライアントデバイスが接続されると、コアデバイスはこの選択ルールを評価して、クライアントデバイスがこのデバイスグループのメンバーであるかどうかを判断します。クライアントデバイスがメンバーである場合、コアデバイスはこのデバイスグループのポリシーを使用して、クライアントデバイスのアクションを承認します。

各選択ルールは少なくとも 1 つの選択ルール句で設定されています。この句は、クライアントデバイスと一致させることができる 1 つの式クエリです。選択ルールは、 AWS IoT フリートインデックス作成と同じクエリ構文を使用します。選択ルールの構文に関する詳細については、「AWS IoT Core デベロッパーガイド」の「AWS IoT フリートのインデックス作成クエリ構文」を参照してください。

* ワイルドカードを使用して、複数のクライアントデバイスを 1 つの選択ルール句と一致させます。モノ名の末尾にこのワイルドカードを使用すると、指定した文字列で始まる名前のクライアントデバイスと一致させることができます。このワイルドカードを使用して、すべてのクライアントデバイスと一致させることもできます。

注記

コロン文字 (:) を含む値を選択する場合は、コロン文字にバックスラッシュ文字 (\\) を使用してエスケープします。などの形式ではJSON、バックスラッシュ文字をエスケープする必要があるため、コロン文字の前に 2 つのバックスラッシュ文字を入力する必要があります。例えば、thingName: MyTeam\\\\:ClientDevice1MyTeam:ClientDevice1 という名前のモノを選択するように指定する場合です。

次のセレクターを指定できます。

  • thingName - クライアントデバイスの AWS IoT モノの名前。

例 選択ルール例

次の選択ルールは、名前が MyClientDevice1 または MyClientDevice2 のクライアントデバイスと一致します。

thingName: MyClientDevice1 OR thingName: MyClientDevice2
例 選択ルール例 (ワイルドカードを使用)

次の選択ルールは、名前が MyClientDevice で始まるクライアントデバイスと一致します。

thingName: MyClientDevice*
例 選択ルール例 (すべてのデバイスに一致)

次の選択ルールは、すべてのクライアントデバイスと一致します。

thingName: *
policyName

このデバイスグループ内のクライアントデバイスに適用されるアクセス許可ポリシー。policies オブジェクトで定義するポリシーの名前を指定します。

policies

コアデバイスに接続するクライアントデバイス用の、クライアントデバイス認証ポリシー。各承認ポリシーは、クライアントデバイスがこれらのアクションを実行できるアクションセットとリソースを指定しています。

このオブジェクトには、次の情報が含まれます。

policyNameKey

この承認ポリシーの名前。置換 policyNameKey この承認ポリシーを識別するのに役立つ名前の 。このポリシー名を使用して、デバイスグループに適用するポリシーを定義します。

このオブジェクトには、次の情報が含まれます。

statementNameKey

このポリシーステートメントの名前。置換 statementNameKey このポリシーステートメントを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

operations

このポリシーのリソースに許可する操作のリスト。

以下のすべての操作を含めることができます。

  • mqtt:connect - コアデバイスに接続するアクセス許可を付与します。コアデバイスに接続するには、クライアントデバイスにこのアクセス許可が必要です。

    この操作は、次のリソースをサポートします。

    • mqtt:clientId:deviceClientId – クライアントデバイスがコアデバイスのMQTTブローカーに接続するために使用するクライアント ID に基づいてアクセスを制限します。置換 deviceClientId 使用するクライアント ID を指定します。

  • mqtt:publish – トピックにMQTTメッセージを発行するアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topic:mqttTopic – クライアントデバイスがメッセージを発行するMQTTトピックに基づいてアクセスを制限します。置換 mqttTopic を使用するトピック。

      このリソースはMQTTトピックワイルドカードをサポートしていません。

  • mqtt:subscribe – メッセージを受信するためにMQTTトピックフィルターをサブスクライブするアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topicfilter:mqttTopicFilter – クライアントデバイスがメッセージをサブスクライブできるMQTTトピックに基づいてアクセスを制限します。置換 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サーバー証明書の有効期限が切れるまでの時間 (秒単位)。このオプションを設定すれば、クライアントデバイスがコアデバイスから切断し、また再接続する回数をカスタマイズすることができます。

このコンポーネントは、ローカルMQTTサーバー証明書の有効期限が切れる 24 時間前にローテーションします。Moquette MQTTブローカーコンポーネント などのブローカーは、新しい証明書を生成して再起動します。 MQTT これが実行されると、このコアデバイスに接続されているすべてのクライアントデバイスが切断されます。クライアントデバイスは、短時間待機した後に、コアデバイスに再度接続できます。

デフォルト: 604800 (7 日)

最小値: 172800 (2 日)

最大値: 864000 (10 日)

performance

(オプション) このコアデバイスのパフォーマンス設定オプション。このオブジェクトには、次の情報が含まれます。

maxActiveAuthTokens

(オプション) アクティブなクライアントデバイス認証トークンの最大数。この数を増やすと、より多くのクライアントデバイスが、再認証せずに単一のコアデバイスに接続できるようになります。

デフォルト: 2500

cloudRequestQueueSize

(オプション) このコンポーネントが AWS クラウド リクエストを拒否するまでのキューへのリクエストの最大数。

デフォルト: 100

maxConcurrentCloudRequests

(オプション) AWS クラウドに同時に送信できるリクエストの最大数。この数を増やすと、多数のクライアントデバイスを接続するコアデバイスで、認証のパフォーマンスを向上させることができます。

デフォルト: 1

certificateAuthority

(オプション) コアデバイスの中間認証機関を独自の中間認証機関に置き換える認証機関設定オプション。

注記

Greengrass コアデバイスをカスタム認証局 (CA) で設定し、同じ 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

クライアントデバイス認証がメトリクスを集約してテレメトリエージェントに送信する頻度を決定する集計期間 (秒単位)。テレメトリエージェントは依然として 1 日に 1 回メトリクスを公開するので、メトリクスの公開頻度は変わりません。

デフォルト: 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

このデバイスグループの名前。置換 groupNameKey このデバイスグループを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

selectionRule

このデバイスグループのメンバーであるクライアントデバイスを指定するクエリ。クライアントデバイスが接続されると、コアデバイスはこの選択ルールを評価して、クライアントデバイスがこのデバイスグループのメンバーであるかどうかを判断します。クライアントデバイスがメンバーである場合、コアデバイスはこのデバイスグループのポリシーを使用して、クライアントデバイスのアクションを承認します。

各選択ルールは少なくとも 1 つの選択ルール句で設定されています。この句は、クライアントデバイスと一致させることができる 1 つの式クエリです。選択ルールは、 AWS IoT フリートインデックス作成と同じクエリ構文を使用します。選択ルールの構文に関する詳細については、「AWS IoT Core デベロッパーガイド」の「AWS IoT フリートのインデックス作成クエリ構文」を参照してください。

* ワイルドカードを使用して、複数のクライアントデバイスを 1 つの選択ルール句と一致させます。モノ名の末尾にこのワイルドカードを使用すると、指定した文字列で始まる名前のクライアントデバイスと一致させることができます。このワイルドカードを使用して、すべてのクライアントデバイスと一致させることもできます。

注記

コロン文字 (:) を含む値を選択する場合は、コロン文字にバックスラッシュ文字 (\\) を使用してエスケープします。などの形式ではJSON、バックスラッシュ文字をエスケープする必要があるため、コロン文字の前に 2 つのバックスラッシュ文字を入力する必要があります。例えば、thingName: MyTeam\\\\:ClientDevice1MyTeam:ClientDevice1 という名前のモノを選択するように指定する場合です。

次のセレクターを指定できます。

  • thingName - クライアントデバイスの AWS IoT モノの名前。

例 選択ルール例

次の選択ルールは、名前が MyClientDevice1 または MyClientDevice2 のクライアントデバイスと一致します。

thingName: MyClientDevice1 OR thingName: MyClientDevice2
例 選択ルール例 (ワイルドカードを使用)

次の選択ルールは、名前が MyClientDevice で始まるクライアントデバイスと一致します。

thingName: MyClientDevice*
例 選択ルール例 (すべてのデバイスに一致)

次の選択ルールは、すべてのクライアントデバイスと一致します。

thingName: *
policyName

このデバイスグループ内のクライアントデバイスに適用されるアクセス許可ポリシー。policies オブジェクトで定義するポリシーの名前を指定します。

policies

コアデバイスに接続するクライアントデバイス用の、クライアントデバイス認証ポリシー。各承認ポリシーは、クライアントデバイスがこれらのアクションを実行できるアクションセットとリソースを指定しています。

このオブジェクトには、次の情報が含まれます。

policyNameKey

この承認ポリシーの名前。置換 policyNameKey この承認ポリシーを識別するのに役立つ名前の 。このポリシー名を使用して、デバイスグループに適用するポリシーを定義します。

このオブジェクトには、次の情報が含まれます。

statementNameKey

このポリシーステートメントの名前。置換 statementNameKey このポリシーステートメントを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

operations

このポリシーのリソースに許可する操作のリスト。

以下のすべての操作を含めることができます。

  • mqtt:connect - コアデバイスに接続するアクセス許可を付与します。コアデバイスに接続するには、クライアントデバイスにこのアクセス許可が必要です。

    この操作は、次のリソースをサポートします。

    • mqtt:clientId:deviceClientId – クライアントデバイスがコアデバイスのMQTTブローカーに接続するために使用するクライアント ID に基づいてアクセスを制限します。置換 deviceClientId 使用するクライアント ID を指定します。

  • mqtt:publish – トピックにMQTTメッセージを発行するアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topic:mqttTopic – クライアントデバイスがメッセージを発行するMQTTトピックに基づいてアクセスを制限します。置換 mqttTopic を使用するトピック。

      このリソースはMQTTトピックワイルドカードをサポートしていません。

  • mqtt:subscribe – メッセージを受信するためにMQTTトピックフィルターをサブスクライブするアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topicfilter:mqttTopicFilter – クライアントデバイスがメッセージをサブスクライブできるMQTTトピックに基づいてアクセスを制限します。置換 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サーバー証明書の有効期限が切れるまでの時間 (秒単位)。このオプションを設定すれば、クライアントデバイスがコアデバイスから切断し、また再接続する回数をカスタマイズすることができます。

このコンポーネントは、ローカルMQTTサーバー証明書の有効期限が切れる 24 時間前にローテーションします。Moquette MQTTブローカーコンポーネント などのブローカーは、新しい証明書を生成して再起動します。 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

クライアントデバイス認証がメトリクスを集約してテレメトリエージェントに送信する頻度を決定する集計期間 (秒単位)。テレメトリエージェントは依然として 1 日に 1 回メトリクスを公開するので、メトリクスの公開頻度は変わりません。

デフォルト: 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

このデバイスグループの名前。置換 groupNameKey このデバイスグループを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

selectionRule

このデバイスグループのメンバーであるクライアントデバイスを指定するクエリ。クライアントデバイスが接続されると、コアデバイスはこの選択ルールを評価して、クライアントデバイスがこのデバイスグループのメンバーであるかどうかを判断します。クライアントデバイスがメンバーである場合、コアデバイスはこのデバイスグループのポリシーを使用して、クライアントデバイスのアクションを承認します。

各選択ルールは少なくとも 1 つの選択ルール句で設定されています。この句は、クライアントデバイスと一致させることができる 1 つの式クエリです。選択ルールは、 AWS IoT フリートインデックス作成と同じクエリ構文を使用します。選択ルールの構文に関する詳細については、「AWS IoT Core デベロッパーガイド」の「AWS IoT フリートのインデックス作成クエリ構文」を参照してください。

* ワイルドカードを使用して、複数のクライアントデバイスを 1 つの選択ルール句と一致させます。モノ名の末尾にこのワイルドカードを使用すると、指定した文字列で始まる名前のクライアントデバイスと一致させることができます。このワイルドカードを使用して、すべてのクライアントデバイスと一致させることもできます。

注記

コロン文字 (:) を含む値を選択する場合は、コロン文字にバックスラッシュ文字 (\\) を使用してエスケープします。などの形式ではJSON、バックスラッシュ文字をエスケープする必要があるため、コロン文字の前に 2 つのバックスラッシュ文字を入力する必要があります。例えば、thingName: MyTeam\\\\:ClientDevice1MyTeam:ClientDevice1 という名前のモノを選択するように指定する場合です。

次のセレクターを指定できます。

  • thingName - クライアントデバイスの AWS IoT モノの名前。

例 選択ルール例

次の選択ルールは、名前が MyClientDevice1 または MyClientDevice2 のクライアントデバイスと一致します。

thingName: MyClientDevice1 OR thingName: MyClientDevice2
例 選択ルール例 (ワイルドカードを使用)

次の選択ルールは、名前が MyClientDevice で始まるクライアントデバイスと一致します。

thingName: MyClientDevice*
例 選択ルール例 (すべてのデバイスに一致)

次の選択ルールは、すべてのクライアントデバイスと一致します。

thingName: *
policyName

このデバイスグループ内のクライアントデバイスに適用されるアクセス許可ポリシー。policies オブジェクトで定義するポリシーの名前を指定します。

policies

コアデバイスに接続するクライアントデバイス用の、クライアントデバイス認証ポリシー。各承認ポリシーは、クライアントデバイスがこれらのアクションを実行できるアクションセットとリソースを指定しています。

このオブジェクトには、次の情報が含まれます。

policyNameKey

この承認ポリシーの名前。置換 policyNameKey この承認ポリシーを識別するのに役立つ名前の 。このポリシー名を使用して、デバイスグループに適用するポリシーを定義します。

このオブジェクトには、次の情報が含まれます。

statementNameKey

このポリシーステートメントの名前。置換 statementNameKey このポリシーステートメントを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

operations

このポリシーのリソースに許可する操作のリスト。

以下のすべての操作を含めることができます。

  • mqtt:connect - コアデバイスに接続するアクセス許可を付与します。コアデバイスに接続するには、クライアントデバイスにこのアクセス許可が必要です。

    この操作は、次のリソースをサポートします。

    • mqtt:clientId:deviceClientId – クライアントデバイスがコアデバイスのMQTTブローカーに接続するために使用するクライアント ID に基づいてアクセスを制限します。置換 deviceClientId 使用するクライアント ID を指定します。

  • mqtt:publish – トピックにMQTTメッセージを発行するアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topic:mqttTopic – クライアントデバイスがメッセージを発行するMQTTトピックに基づいてアクセスを制限します。置換 mqttTopic を使用するトピック。

      このリソースはMQTTトピックワイルドカードをサポートしていません。

  • mqtt:subscribe – メッセージを受信するためにMQTTトピックフィルターをサブスクライブするアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topicfilter:mqttTopicFilter – クライアントデバイスがメッセージをサブスクライブできるMQTTトピックに基づいてアクセスを制限します。置換 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サーバー証明書の有効期限が切れるまでの時間 (秒単位)。このオプションを設定すれば、クライアントデバイスがコアデバイスから切断し、また再接続する回数をカスタマイズすることができます。

このコンポーネントは、ローカルMQTTサーバー証明書の有効期限が切れる 24 時間前にローテーションします。Moquette MQTTブローカーコンポーネント などのブローカーは、新しい証明書を生成して再起動します。 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

このデバイスグループの名前。置換 groupNameKey このデバイスグループを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

selectionRule

このデバイスグループのメンバーであるクライアントデバイスを指定するクエリ。クライアントデバイスが接続されると、コアデバイスはこの選択ルールを評価して、クライアントデバイスがこのデバイスグループのメンバーであるかどうかを判断します。クライアントデバイスがメンバーである場合、コアデバイスはこのデバイスグループのポリシーを使用して、クライアントデバイスのアクションを承認します。

各選択ルールは少なくとも 1 つの選択ルール句で設定されています。この句は、クライアントデバイスと一致させることができる 1 つの式クエリです。選択ルールは、 AWS IoT フリートインデックス作成と同じクエリ構文を使用します。選択ルールの構文に関する詳細については、「AWS IoT Core デベロッパーガイド」の「AWS IoT フリートのインデックス作成クエリ構文」を参照してください。

* ワイルドカードを使用して、複数のクライアントデバイスを 1 つの選択ルール句と一致させます。モノ名の末尾にこのワイルドカードを使用すると、指定した文字列で始まる名前のクライアントデバイスと一致させることができます。このワイルドカードを使用して、すべてのクライアントデバイスと一致させることもできます。

注記

コロン文字 (:) を含む値を選択する場合は、コロン文字にバックスラッシュ文字 (\\) を使用してエスケープします。などの形式ではJSON、バックスラッシュ文字をエスケープする必要があるため、コロン文字の前に 2 つのバックスラッシュ文字を入力する必要があります。例えば、thingName: MyTeam\\\\:ClientDevice1MyTeam:ClientDevice1 という名前のモノを選択するように指定する場合です。

次のセレクターを指定できます。

  • thingName - クライアントデバイスの AWS IoT モノの名前。

例 選択ルール例

次の選択ルールは、名前が MyClientDevice1 または MyClientDevice2 のクライアントデバイスと一致します。

thingName: MyClientDevice1 OR thingName: MyClientDevice2
例 選択ルール例 (ワイルドカードを使用)

次の選択ルールは、名前が MyClientDevice で始まるクライアントデバイスと一致します。

thingName: MyClientDevice*
例 選択ルール例 (すべてのデバイスに一致)

次の選択ルールは、すべてのクライアントデバイスと一致します。

thingName: *
policyName

このデバイスグループ内のクライアントデバイスに適用されるアクセス許可ポリシー。policies オブジェクトで定義するポリシーの名前を指定します。

policies

コアデバイスに接続するクライアントデバイス用の、クライアントデバイス認証ポリシー。各承認ポリシーは、クライアントデバイスがこれらのアクションを実行できるアクションセットとリソースを指定しています。

このオブジェクトには、次の情報が含まれます。

policyNameKey

この承認ポリシーの名前。置換 policyNameKey この承認ポリシーを識別するのに役立つ名前の 。このポリシー名を使用して、デバイスグループに適用するポリシーを定義します。

このオブジェクトには、次の情報が含まれます。

statementNameKey

このポリシーステートメントの名前。置換 statementNameKey このポリシーステートメントを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

operations

このポリシーのリソースに許可する操作のリスト。

以下のすべての操作を含めることができます。

  • mqtt:connect - コアデバイスに接続するアクセス許可を付与します。コアデバイスに接続するには、クライアントデバイスにこのアクセス許可が必要です。

    この操作は、次のリソースをサポートします。

    • mqtt:clientId:deviceClientId – クライアントデバイスがコアデバイスのMQTTブローカーに接続するために使用するクライアント ID に基づいてアクセスを制限します。置換 deviceClientId 使用するクライアント ID を指定します。

  • mqtt:publish – トピックにMQTTメッセージを発行するアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topic:mqttTopic – クライアントデバイスがメッセージを発行するMQTTトピックに基づいてアクセスを制限します。置換 mqttTopic を使用するトピック。

      このリソースはMQTTトピックワイルドカードをサポートしていません。

  • mqtt:subscribe – メッセージを受信するためにMQTTトピックフィルターをサブスクライブするアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topicfilter:mqttTopicFilter – クライアントデバイスがメッセージをサブスクライブできるMQTTトピックに基づいてアクセスを制限します。置換 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サーバー証明書の有効期限が切れるまでの時間 (秒単位)。このオプションを設定すれば、クライアントデバイスがコアデバイスから切断し、また再接続する回数をカスタマイズすることができます。

このコンポーネントは、ローカルMQTTサーバー証明書の有効期限が切れる 24 時間前にローテーションします。Moquette MQTTブローカーコンポーネント などのブローカーは、新しい証明書を生成して再起動します。 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

このデバイスグループの名前。置換 groupNameKey このデバイスグループを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

selectionRule

このデバイスグループのメンバーであるクライアントデバイスを指定するクエリ。クライアントデバイスが接続されると、コアデバイスはこの選択ルールを評価して、クライアントデバイスがこのデバイスグループのメンバーであるかどうかを判断します。クライアントデバイスがメンバーである場合、コアデバイスはこのデバイスグループのポリシーを使用して、クライアントデバイスのアクションを承認します。

各選択ルールは少なくとも 1 つの選択ルール句で設定されています。この句は、クライアントデバイスと一致させることができる 1 つの式クエリです。選択ルールは、 AWS IoT フリートインデックス作成と同じクエリ構文を使用します。選択ルールの構文に関する詳細については、「AWS IoT Core デベロッパーガイド」の「AWS IoT フリートのインデックス作成クエリ構文」を参照してください。

* ワイルドカードを使用して、複数のクライアントデバイスを 1 つの選択ルール句と一致させます。モノ名の末尾にこのワイルドカードを使用すると、指定した文字列で始まる名前のクライアントデバイスと一致させることができます。このワイルドカードを使用して、すべてのクライアントデバイスと一致させることもできます。

注記

コロン文字 (:) を含む値を選択する場合は、コロン文字にバックスラッシュ文字 (\\) を使用してエスケープします。などの形式ではJSON、バックスラッシュ文字をエスケープする必要があるため、コロン文字の前に 2 つのバックスラッシュ文字を入力する必要があります。例えば、thingName: MyTeam\\\\:ClientDevice1MyTeam:ClientDevice1 という名前のモノを選択するように指定する場合です。

次のセレクターを指定できます。

  • thingName - クライアントデバイスの AWS IoT モノの名前。

例 選択ルール例

次の選択ルールは、名前が MyClientDevice1 または MyClientDevice2 のクライアントデバイスと一致します。

thingName: MyClientDevice1 OR thingName: MyClientDevice2
例 選択ルール例 (ワイルドカードを使用)

次の選択ルールは、名前が MyClientDevice で始まるクライアントデバイスと一致します。

thingName: MyClientDevice*
例 選択ルール例 (すべてのデバイスに一致)

次の選択ルールは、すべてのクライアントデバイスと一致します。

thingName: *
policyName

このデバイスグループ内のクライアントデバイスに適用されるアクセス許可ポリシー。policies オブジェクトで定義するポリシーの名前を指定します。

policies

コアデバイスに接続するクライアントデバイス用の、クライアントデバイス認証ポリシー。各承認ポリシーは、クライアントデバイスがこれらのアクションを実行できるアクションセットとリソースを指定しています。

このオブジェクトには、次の情報が含まれます。

policyNameKey

この承認ポリシーの名前。置換 policyNameKey この承認ポリシーを識別するのに役立つ名前の 。このポリシー名を使用して、デバイスグループに適用するポリシーを定義します。

このオブジェクトには、次の情報が含まれます。

statementNameKey

このポリシーステートメントの名前。置換 statementNameKey このポリシーステートメントを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

operations

このポリシーのリソースに許可する操作のリスト。

以下のすべての操作を含めることができます。

  • mqtt:connect - コアデバイスに接続するアクセス許可を付与します。コアデバイスに接続するには、クライアントデバイスにこのアクセス許可が必要です。

    この操作は、次のリソースをサポートします。

    • mqtt:clientId:deviceClientId – クライアントデバイスがコアデバイスのMQTTブローカーに接続するために使用するクライアント ID に基づいてアクセスを制限します。置換 deviceClientId 使用するクライアント ID を指定します。

  • mqtt:publish – トピックにMQTTメッセージを発行するアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topic:mqttTopic – クライアントデバイスがメッセージを発行するMQTTトピックに基づいてアクセスを制限します。置換 mqttTopic を使用するトピック。

      このリソースはMQTTトピックワイルドカードをサポートしていません。

  • mqtt:subscribe – メッセージを受信するためにMQTTトピックフィルターをサブスクライブするアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topicfilter:mqttTopicFilter – クライアントデバイスがメッセージをサブスクライブできるMQTTトピックに基づいてアクセスを制限します。置換 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サーバー証明書の有効期限が切れるまでの時間 (秒単位)。このオプションを設定すれば、クライアントデバイスがコアデバイスから切断し、また再接続する回数をカスタマイズすることができます。

このコンポーネントは、ローカルMQTTサーバー証明書の有効期限が切れる 24 時間前にローテーションします。Moquette MQTTブローカーコンポーネント などのブローカーは、新しい証明書を生成して再起動します。 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

このデバイスグループの名前。置換 groupNameKey このデバイスグループを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

selectionRule

このデバイスグループのメンバーであるクライアントデバイスを指定するクエリ。クライアントデバイスが接続されると、コアデバイスはこの選択ルールを評価して、クライアントデバイスがこのデバイスグループのメンバーであるかどうかを判断します。クライアントデバイスがメンバーである場合、コアデバイスはこのデバイスグループのポリシーを使用して、クライアントデバイスのアクションを承認します。

各選択ルールは少なくとも 1 つの選択ルール句で設定されています。この句は、クライアントデバイスと一致させることができる 1 つの式クエリです。選択ルールは、 AWS IoT フリートインデックス作成と同じクエリ構文を使用します。選択ルールの構文に関する詳細については、「AWS IoT Core デベロッパーガイド」の「AWS IoT フリートのインデックス作成クエリ構文」を参照してください。

* ワイルドカードを使用して、複数のクライアントデバイスを 1 つの選択ルール句と一致させます。モノ名の末尾にこのワイルドカードを使用すると、指定した文字列で始まる名前のクライアントデバイスと一致させることができます。このワイルドカードを使用して、すべてのクライアントデバイスと一致させることもできます。

注記

コロン文字 (:) を含む値を選択する場合は、コロン文字にバックスラッシュ文字 (\\) を使用してエスケープします。などの形式ではJSON、バックスラッシュ文字をエスケープする必要があるため、コロン文字の前に 2 つのバックスラッシュ文字を入力する必要があります。例えば、thingName: MyTeam\\\\:ClientDevice1MyTeam:ClientDevice1 という名前のモノを選択するように指定する場合です。

次のセレクターを指定できます。

  • thingName - クライアントデバイスの AWS IoT モノの名前。

例 選択ルール例

次の選択ルールは、名前が MyClientDevice1 または MyClientDevice2 のクライアントデバイスと一致します。

thingName: MyClientDevice1 OR thingName: MyClientDevice2
例 選択ルール例 (ワイルドカードを使用)

次の選択ルールは、名前が MyClientDevice で始まるクライアントデバイスと一致します。

thingName: MyClientDevice*
例 選択ルール例 (すべてのデバイスに一致)

次の選択ルールは、すべてのクライアントデバイスと一致します。

thingName: *
policyName

このデバイスグループ内のクライアントデバイスに適用されるアクセス許可ポリシー。policies オブジェクトで定義するポリシーの名前を指定します。

policies

コアデバイスに接続するクライアントデバイス用の、クライアントデバイス認証ポリシー。各承認ポリシーは、クライアントデバイスがこれらのアクションを実行できるアクションセットとリソースを指定しています。

このオブジェクトには、次の情報が含まれます。

policyNameKey

この承認ポリシーの名前。置換 policyNameKey この承認ポリシーを識別するのに役立つ名前の 。このポリシー名を使用して、デバイスグループに適用するポリシーを定義します。

このオブジェクトには、次の情報が含まれます。

statementNameKey

このポリシーステートメントの名前。置換 statementNameKey このポリシーステートメントを識別するのに役立つ名前の 。

このオブジェクトには、次の情報が含まれます。

operations

このポリシーのリソースに許可する操作のリスト。

以下のすべての操作を含めることができます。

  • mqtt:connect - コアデバイスに接続するアクセス許可を付与します。コアデバイスに接続するには、クライアントデバイスにこのアクセス許可が必要です。

    この操作は、次のリソースをサポートします。

    • mqtt:clientId:deviceClientId – クライアントデバイスがコアデバイスのMQTTブローカーに接続するために使用するクライアント ID に基づいてアクセスを制限します。置換 deviceClientId 使用するクライアント ID を指定します。

  • mqtt:publish – トピックにMQTTメッセージを発行するアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topic:mqttTopic – クライアントデバイスがメッセージを発行するMQTTトピックに基づいてアクセスを制限します。置換 mqttTopic を使用するトピック。

      このリソースはMQTTトピックワイルドカードをサポートしていません。

  • mqtt:subscribe – メッセージを受信するためにMQTTトピックフィルターをサブスクライブするアクセス許可を付与します。

    この操作は、次のリソースをサポートします。

    • mqtt:topicfilter:mqttTopicFilter – クライアントデバイスがメッセージをサブスクライブできるMQTTトピックに基づいてアクセスを制限します。置換 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 nucleus コンポーネントと同じログファイルを使用します。

Linux
/greengrass/v2/logs/greengrass.log
Windows
C:\greengrass\v2\logs\greengrass.log
このコンポーネントのログを確認するには
  • コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。/greengrass/v2 または を置き換える C:\greengrass\v2 AWS IoT Greengrass ルートフォルダへのパス。

    Linux
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait

変更ログ

次の表は、コンポーネントの各バージョンにおける変更を示します。

バージョン

変更

2.5.1

バグ修正と機能向上
  • FIPS エンドポイントをサポートします。

2.5.0

新機能
  • ポリシーリソースの${iot:Connection.Thing.ThingName}変数置換を許可します。

  • などのワイルドカードを持つポリシーリソースを許可しますmqtt:topic:my*

2.4.5

新機能

selectionRule パラメータでモノの名前を選択するためのワイルドカードプレフィックスのサポートを追加しました。

バグ修正と機能向上

特定のケースで証明書が新しい接続情報で更新されない問題を修正しました。

2.4.4

Greengrass nucleus バージョン 2.12.0 リリース用にバージョンが更新されました。

2.4.3

Greengrass nucleus バージョン 2.11.0 のリリース用にバージョンが更新されました。

2.4.2

新機能

新しい startupTimeoutSeconds 構成オプションを追加します。

2.4.1

Greengrass nucleus バージョン 2.10.0 のリリース用にバージョンが更新されました。

2.4.0

新機能
  • テレメトリエージェントによって公開される操作メトリックを出力するためのクライアントデバイス認証のサポートを追加します。

バグ修正と機能向上
  • クライアントデバイスの認証がクライアントデバイスの ID を確認するのに 10 秒以上かかる問題を修正しました。

  • 追加のマイナー修正と機能向上。

2.3.2

バグ修正と機能向上
  • 新たに、ホスト名情報のキャッシュ機能がサポートされ、オフラインでの再起動時に、コンポーネントが正しい証明書サブジェクトを生成するようになりました。

2.3.1

バグ修正と機能向上
  • メモリリークを修正しました。

2.3.0

警告

このバージョンは現在利用できません。このバージョンの改善は、このコンポーネントのそれ以降のバージョンで利用できます。

新機能

  • コアデバイスがインターネットに接続されていない場合でも引き続きコアデバイスに接続できるようにするために、クライアントデバイスのオフライン認証のサポートを追加しました。

  • コアデバイスがMQTTブローカー証明書を生成するためのルート証明書として使用する、お客様が用意した認証機関のサポートを追加しました。

2.2.3

Greengrass nucleus バージョン 2.8.0 のリリース用にバージョンが更新されました。

2.2.2

バグ修正と機能向上
  • 特定のシナリオでローカルMQTTサーバー証明書が意図したよりも頻繁にローテーションする問題を修正しました。

2.2.1

Greengrass nucleus バージョン 2.7.0 のリリース用にバージョンが更新されました。

2.2.0

新機能
  • クライアントデバイスを認証および承認するためのプロセス間通信 (IPC) オペレーションを呼び出すカスタムコンポーネントのサポートが追加されました。これらのオペレーションは、例えばカスタムMQTTブローカーコンポーネントで使用できます。詳細については、IPC「: クライアントデバイスの認証と承認」を参照してください。

  • このコンポーネントの処理内容を調整するための、maxActiveAuthTokenscloudQueueSize、および threadPoolSize オプションを追加しました。

2.1.0

新機能
  • MQTT ブローカーサーバー証明書の有効期限が切れたときにカスタマイズするように設定できるserverCertificateValiditySecondsオプションが追加されました。サーバー証明書は 2~10 日後に期限切れになるように設定できます。

バグ修正と機能向上
  • このコンポーネントが設定リセット更新を処理する際に関する問題を修正しました。

  • 特定のシナリオでローカルMQTTサーバー証明書が意図したよりも頻繁にローテーションする問題を修正しました。

    この修正を適用するには、Moquette MQTTブローカーコンポーネント の v2.1.0 以降も使用する必要があります。

  • 証明書をローテーションするときに、このコンポーネントがログに記録するメッセージを改善しました。

  • Greengrass nucleus バージョン 2.6.0 のリリース用にバージョンが更新されました。

2.0.4

Greengrass nucleus バージョン 2.5.0 のリリース用にバージョンが更新されました。

2.0.3

バグ修正と機能向上
  • コアデバイスの秘密キーをローテーションすると、認証情報が更新されるようになりました。

  • ログメッセージをより明確にするための更新。

2.0.2

Greengrass nucleus バージョン 2.4.0 のリリース用にバージョンが更新されました。

2.0.1

Greengrass nucleus バージョン 2.3.0 のリリース用にバージョンが更新されました。

2.0.0

当初のバージョン