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

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

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

クライアントデバイス認証コンポーネント (aws.greengrass.clientdevices.Auth) がクライアントデバイスを認証し、クライアントデバイスのアクションを承認します。

注記

クライアントデバイスは、Greengrass コアデバイスに接続し、処理するために MQTT メッセージとデータを送信するローカル IoT デバイスです。詳細については、「ローカル IoT デバイスとやり取りする」を参照してください。

バージョン

注記

クライアントデバイス認証バージョン 2.3.0 は廃止されました。クライアントデバイス認証バージョン 2.3.1 以降にアップグレードすることを強くお勧めします。

このコンポーネントには、次のバージョンがあります。

  • 2.5.x

  • 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 ログのモニタリング」を参照してください。

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

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

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

  • リナックス

  • 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 トピックフィルターの ARN が含まれます。

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

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

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

      • $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.2

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

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.6.0 <2.15.0 ソフト
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 ブローカーを再起動する必要があります。

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

MQTT 3.1.1 ブローカー (Moquette) コンポーネントでは、サーバー証明書が変更されてクライアントへの再承認が必要になると、デフォルトで毎週再起動します。コアデバイスの接続情報 (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 トピックのワイルドカードをサポートしていません。

resources

このポリシーでの操作を許可するリソースのリスト。このポリシーでの操作に対応するリソースを指定します。例えば、mqtt:publish 操作を指定するポリシーで、MQTT トピックリソース (mqtt:topic:mqttTopic) のリストを指定することができます。

リソースの変数ないの任意の場所で * ワイルドカードを指定すれば、すべてのリソースへのアクセスを許可することができます。例えば、mqtt:topic:my* を指定して、その入力に一致するリソースへのアクセスを許可できます。

次のリソース変数がサポートされています。

  • mqtt:topic:${iot:Connection.Thing.ThingName}

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

statementDescription

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

certificates

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

serverCertificateValiditySeconds

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

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

(オプション) コンポーネントが起動する最大時間 (秒)。このタイムアウトを超えている場合、コンポーネントの状態が ERRORED に変わります。

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

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

(オプション) コンポーネントが起動する最大時間 (秒)。このタイムアウトを超えている場合、コンポーネントの状態が ERRORED に変わります。

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

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

(オプション) コンポーネントが起動する最大時間 (秒)。このタイムアウトを超えている場合、コンポーネントの状態が ERRORED に変わります。

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

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

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

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

このコンポーネントは、有効期限が切れる 24 時間前に、ローカル MQTT サーバー証明書をローテーションします。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.2

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

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: Authenticate and authorize client devices」を参照してください。

  • このコンポーネントの処理内容を調整するための、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

当初のバージョン