デバイスアドバイザー VPC エンドポイント (AWS PrivateLink) - AWS IoT Core

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

デバイスアドバイザー VPC エンドポイント (AWS PrivateLink)

インターフェイス VPC エンドポイントを作成することで、VPC と AWS IoT Core Device Advisor テストエンドポイント (データプレーン) の間にプライベート接続を確立できます。このエンドポイントを使用して、 AWS IoT デバイスを本番環境にデプロイ AWS IoT Core する前に、 との信頼性の高い安全な接続についてデバイスを検証できます。Device Advisor の事前構築されたテストにより、デバイスソフトウェアを TLSMQTTデバイスシャドウ、および AWS IoT Jobs の使用に関するベストプラクティスに照らして検証できます。

AWS PrivateLink は、IoT デバイスで使用されるインターフェイスエンドポイントを強化します。このサービスにより、インターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect 接続なしで、 AWS IoT Core Device Advisor テストエンドポイントにプライベートにアクセスできます。TCP パケットと MQTT パケットを送信する VPC 内のインスタンスは、 AWS IoT Core Device Advisor テストエンドポイントと通信するためにパブリック IP アドレスを必要としません。VPC と AWS IoT Core Device Advisor の間のトラフィックは離れません AWS クラウド。IoT デバイスと Device Advisor テストケース間の TLS および MQTT 通信はすべて、 AWS アカウントのリソース内にとどまります。

各インターフェイスエンドポイントは、サブネット内の 1 つ以上の Elastic Network Interface によって表されます。

インターフェイス VPC エンドポイントの使用の詳細については、Amazon VPC ユーザーガイドの「インターフェイス VPC エンドポイント (AWS PrivateLink)」を参照してください。

AWS IoT Core Device Advisor VPC エンドポイントに関する考慮事項

インターフェイス VPC エンドポイントを設定する前に、Amazon VPC ユーザーガイドの「インターフェイスエンドポイントのプロパティと制限」を確認してください。次に進む前に、以下を検討してください。

  • AWS IoT Core Device Advisor は現在、VPC からの Device Advisor テストエンドポイント (データプレーン) への呼び出しをサポートしています。メッセージブローカーは、データプレーン通信を使用してデータを送受信します。これは TLS と MQTT パケットの助けを借りて行われます。 AWS IoT デバイスを Device Advisor テストエンドポイント AWS IoT Core Device Advisor に接続するための VPC エンドポイント。コントロールプレーン API アクションは、この VPC エンドポイントでは使用されません。テストスイートやその他のコントロールプレーン API を作成または実行するには、コンソール、 AWS SDK、またはパブリックインターネット上の AWS コマンドラインインターフェイスを使用します。

  • 以下では、VPC エンドポイント AWS リージョン がサポートされています AWS IoT Core Device Advisor。

    • 米国東部 (バージニア北部)

    • 米国西部 (オレゴン)

    • アジアパシフィック (東京)

    • 欧州 (アイルランド)

  • Device Advisor は、X.509 クライアント証明書と RSA サーバー証明書による MQTT をサポートします。

  • VPC エンドポイントポリシーは、今のところサポートされていません。

  • VPC エンドポイントを接続するリソースの作成方法については、VPC エンドポイントの前提条件を確認してください。VPC エンドポイントを使用するには、 AWS IoT Core Device Advisor VPC とプライベートサブネットを作成する必要があります。

  • AWS PrivateLink リソースにはクォータがあります。詳細については、AWS PrivateLink クォータを参照してください。

  • VPC エンドポイントは IPv4 トラフィックのみをサポートします。

AWS IoT Core Device Advisorのインターフェイス VPC エンドポイントの作成

VPC エンドポイントの使用を開始するには、インターフェイス VPC エンドポイントを作成します。次に、 AWS IoT Core Device Advisor として を選択します AWS のサービス。を使用している場合は AWS CLI、describe-vpc-endpoint-services を呼び出して、 AWS IoT Core Device Advisor が のアベイラビリティーゾーンに存在することを確認します AWS リージョン。エンドポイントに接続されているセキュリティグループが MQTT および TLS トラフィックの TCP プロトコル通信を許可していることを確認します。例えば、米国東部 (バージニア北部) リージョンでは、以下のコマンドを使用します。

aws ec2 describe-vpc-endpoint-services --service-name com.amazonaws.us-east-1.deviceadvisor.iot

次のサービス名 AWS IoT Core を使用して、 の VPC エンドポイントを作成できます。

  • com.amazonaws.region.deviceadvisor.iot

デフォルトでは、エンドポイントのプライベート DNS は有効になっています。これにより、デフォルトのテストエンドポイントの使用がプライベートサブネット内にとどまることが保証されます。アカウントまたはデバイスレベルのエンドポイントを取得するには、 コンソール AWS CLI または AWS SDK を使用します。例えば、パブリックサブネット内またはパブリックインターネット上で get-endpoint を実行する場合、エンドポイントを取得し、それを使用して Device Advisor に接続できます。詳細については、「Amazon VPC ユーザーガイド」の「インターフェイスエンドポイントを介したサービスへのアクセス」を参照してください。

MQTT クライアントを VPC エンドポイントインターフェイスに接続するために、 AWS PrivateLink サービスは VPC にアタッチされたプライベートホストゾーンに DNS レコードを作成します。これらの DNS レコードは、 AWS IoT デバイスのリクエストを VPC エンドポイントに転送します。

VPC エンドポイント AWS IoT Core Device Advisor を介した へのアクセスの制御

VPC 条件コンテキストキーを使用して、VPC エンドポイントを介してのみデバイスアクセスを制限 AWS IoT Core Device Advisor し、アクセスを許可できます。 は、次の VPC 関連のコンテキストキー AWS IoT Core をサポートしています。

注記

AWS IoT Core Device Advisor は現在、VPC エンドポイントポリシーをサポートしていません。

次のポリシーは、モノの名前に一致するクライアント ID AWS IoT Core Device Advisor を使用して に接続するアクセス許可を付与します。また、モノ名のプレフィックスが付いた任意のトピックにも公開されます。このポリシーは、デバイスが特定の VPC エンドポイント ID を持つ VPC エンドポイントに接続することを条件としています。このポリシーでは、パブリック AWS IoT Core Device Advisor テストエンドポイントへの接続試行が拒否されます。

JSON
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}" ], "Condition": { "StringEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" } } }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/${iot:Connection.Thing.ThingName}/*" ] } ] }