インターフェイス VPC エンドポイント AWS IoT Core での の使用 - AWS IoT Core

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

インターフェイス VPC エンドポイント AWS IoT Core での の使用

では AWS IoT Core、インターフェイス VPC エンドポイント を使用して、Virtual Private Cloud (VPC) 内に IoT データエンドポイントを作成できます。 https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpointインターフェイス VPC エンドポイントは AWS PrivateLink、 AWS プライベート IP アドレスを使用して で実行されているサービスにアクセスするために使用できる テクノロジーである AWS を利用しています。詳細については、「Amazon Virtual Private Cloud」を参照してください。

企業ネットワークなどのリモートネットワーク上の フィールドのデバイスを Amazon VPC に接続するには、「Network-to-Amazon VPC 接続マトリックス」に記載されているオプションを参照してください。

AWS IoT Core データプレーン用の VPC エンドポイントの作成

AWS IoT Core データプレーン API 用の VPC エンドポイントを作成して、デバイスを AWS IoT サービスや他の AWS サービスに接続できます。VPC エンドポイントの使用を開始するには、インターフェイス VPC エンドポイントを作成し、 AWS サービス AWS IoT Core として を選択します。CLI を使用している場合は、まず を呼び出しdescribe-vpc-endpoint-servicesて、特定の AWS IoT Core に存在するアベイラビリティーゾーンを選択していることを確認します AWS リージョン。例えば、us-east-1 では、このコマンドは以下のようになります。

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

DNS レコードを自動的に作成するための VPC 機能は無効になっています。これらのエンドポイントを接続するには、プライベート DNS レコードを手動で作成する必要があります。プライベート VPC DNS レコードの詳細については、インターフェイスエンドポイントのプライベート DNS を参照してください。 AWS IoT Core VPC の制限の詳細については、「」を参照してください制限事項

MQTT クライアントを VPC エンドポイントインターフェイスに接続するには:

  • VPC にアタッチされているプライベートホストゾーンに DNS レコードを手動で作成する必要があります。開始するには、「プライベートホストゾーンの作成」を参照してください。

  • プライベートホストゾーン内で、VPC エンドポイントの各 Elastic Network Interface IP のエイリアスレコードを作成します。複数の VPC エンドポイントに複数のネットワークインターフェイス IP がある場合、すべての加重レコードを通して等しい加重の DNS レコードを作成する必要があります。これらの IP アドレスは、説明フィールドの VPC エンドポイント ID でフィルタリングされたときに DescribeNetworkInterfaces API コールから使用できます。

Amazon VPC インターフェイスエンドポイントを作成し、 AWS IoT Core データプレーンのプライベートホストゾーンを設定するには、以下の詳細な手順を参照してください。

AWS IoT Core 認証情報プロバイダー用の VPC エンドポイントの作成

AWS IoT Core 認証情報プロバイダーの VPC エンドポイントを作成して、クライアント証明書ベースの認証を使用してデバイスに接続し、AWS 署名バージョン 4 形式の一時的な AWS 認証情報を取得できます。 AWS IoT Core 認証情報プロバイダーの VPC エンドポイントの使用を開始するには、 CLI コマンドを実行してインターフェイス VPC create-vpc-endpoint エンドポイントを作成し、 AWS IoT Core 認証情報プロバイダーを AWS サービスとして選択します。 https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#create-interface-endpoint特定の AWS IoT Core に存在するアベイラビリティーゾーンを選択するには AWS リージョン、まず describe-vpc-endpoint-services コマンドを実行します。例えば、us-east-1 では、このコマンドは以下のようになります。

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

DNS レコードを自動的に作成するための VPC 機能は無効になっています。これらのエンドポイントを接続するには、プライベート DNS レコードを手動で作成する必要があります。プライベート VPC DNS レコードの詳細については、インターフェイスエンドポイントのプライベート DNS を参照してください。 AWS IoT Core VPC の制限の詳細については、「」を参照してください制限事項

HTTP クライアントを VPC エンドポイントインターフェイスに接続するには:

  • VPC にアタッチされているプライベートホストゾーンに DNS レコードを手動で作成する必要があります。開始するには、「プライベートホストゾーンの作成」を参照してください。

  • プライベートホストゾーン内で、VPC エンドポイントの各 Elastic Network Interface IP のエイリアスレコードを作成します。複数の VPC エンドポイントに複数のネットワークインターフェイス IP がある場合、すべての加重レコードを通して等しい加重の DNS レコードを作成する必要があります。これらの IP アドレスは、説明フィールドの VPC エンドポイント ID でフィルタリングされたときに DescribeNetworkInterfaces API コールから使用できます。

Amazon VPC インターフェイスエンドポイントを作成し、 AWS IoT Core 認証情報プロバイダーのプライベートホストゾーンを設定するには、以下の詳細な手順を参照してください。

Amazon VPC インターフェイスエンドポイントの作成

インターフェイス VPC エンドポイントを作成して、 を使用する AWS サービスに接続できます AWS PrivateLink。次の手順を使用して、 AWS IoT Core データプレーンまたは AWS IoT Core 認証情報プロバイダーに接続するインターフェイス VPC エンドポイントを作成します。詳細については、「インターフェイス VPC エンドポイントを使用して AWS サービスにアクセスする」を参照してください。

注記

AWS IoT Core データプレーンと AWS IoT Core 認証情報プロバイダーの Amazon VPC インターフェイスエンドポイントを作成するプロセスは似ていますが、接続を機能させるにはエンドポイント固有の変更を行う必要があります。

VPC エンドポイントコンソールを使用してインターフェイス VPC エンドポイントを作成するには

  1. メニューの仮想プライベートクラウドで、VPC エンドポイントコンソールに移動し、エンドポイント を選択し、エンドポイント を作成します。

  2. 「エンドポイントの作成」ページで、次の情報を指定します。

    • [Service category] (サービスカテゴリ) には [AWS のサービスs] を選択します。

    • [Service Name] (サービス名) については、キーワード iot を入力して検索します。表示されるiotサービスのリストで、エンドポイントを選択します。

      AWS IoT Core データプレーン用の VPC エンドポイントを作成する場合は、リージョン AWS IoT Core のデータプレーン API エンドポイントを選択します。エンドポイントは com.amazonaws.region.iot.data の形式です。

      AWS IoT Core 認証情報プロバイダーの VPC エンドポイントを作成する場合は、リージョンの AWS IoT Core 認証情報プロバイダーエンドポイントを選択します。エンドポイントは com.amazonaws.region.iot.credentials の形式です。

      注記

      中国リージョン AWS IoT Core のデータプレーンのサービス名は、 の形式になりますcn.com.amazonaws.region.iot.data。 AWS IoT Core 認証情報プロバイダーの VPC エンドポイントの作成は、中国リージョンではサポートされていません。

    • [VPC] と [Subnets] (サブネット) には、エンドポイントを作成する VPC と、エンドポイントネットワークを作成するアベイラビリティーゾーン (AZ) を選択します。

    • [Enable DNS name] (DNS 名を有効にする) で、[Enable for this endpoint] (このエンドポイントで有効にする) が選択されていないことを確認してください。 AWS IoT Core データプレーンも AWS IoT Core 認証情報プロバイダーも、まだプライベート DNS 名をサポートしていません。

    • [Security group] (セキュリティグループ) には、エンドポイントネットワークインターフェイスに関連付けるセキュリティグループを選択します。

    • オプションで、タグを追加または削除できます。タグとは名前と値のペアで、エンドポイントに関連付けるために使用します。

  3. [Create Endpoint] (エンドポイントの作成) をクリックして、VPC エンドポイントを作成します。

AWS PrivateLink エンドポイントを作成すると、エンドポイントの詳細 タブに DNS 名のリストが表示されます。このセクションで作成したこれらの DNS 名のいずれかを使用して、プライベートホストゾーン を設定できます

プライベートホストゾーンの設定

前のセクションで作成したこれらの DNS 名のいずれかを使用して、プライベートホストゾーンを設定できます。

AWS IoT Core データプレーンの場合

DNS 名は、ドメイン設定名またはIoT:Data-ATSエンドポイントである必要があります。DNS 名の例は、 ですxxx-ats.data.iot.region.amazonaws.com

AWS IoT Core 認証情報プロバイダーの場合

DNS 名はiot:CredentialProviderエンドポイントである必要があります。DNS 名の例は、 ですxxxx.credentials.iot.region.amazonaws.com

注記

AWS IoT Core データプレーンと AWS IoT Core 認証情報プロバイダーのプライベートホストゾーンを設定するプロセスは似ていますが、接続を機能させるには、エンドポイント固有の変更を行う必要があります。

プライベートホストゾーンを作成する

Route 53 コンソールを使用してプライベートホストゾーンを作成するには

  1. Route 53 の [Hosted zones] (ホストゾーン) コンソールに移動して、[Create hosted zone] (ホストゾーンの作成) をクリックします。

  2. [Create hosted zone] (ホストゾーンの作成) ページで、以下の情報を指定します。

    • ドメイン名 には、 iot:Data-ATSまたは エンドポイントのiot:CredentialProviderエンドポイントアドレスを入力します。次の AWS CLI コマンドは、パブリックネットワーク経由でエンドポイントを取得する方法を示しています: aws iot describe-endpoint --endpoint-type iot:Data-ATS、または aws iot describe-endpoint --endpoint-type iot:CredentialProvider

      注記

      カスタムドメインを使用している場合は、「VPC コマンドでのカスタムドメインの使用」を参照してください。カスタムドメインは、 AWS IoT Core 認証情報プロバイダーではサポートされていません。

    • [Type] (タイプ) には、[Private Hosted Zone] (プライベートホストゾーン) を選択します。

    • 必要に応じて、タグを追加または削除してホストゾーンに関連付けることができます。

  3. プライベートホストゾーンを作成するには、ホストゾーンの作成を選んでください。

詳細については、「プライベートホストゾーンの作成」を参照してください。

レコードを作成する

プライベートホストゾーンを作成したら、そのドメインにトラフィックをルーティングする方法を DNS に指示するレコードを作成できます。

レコードを作成するには

  1. 表示されるホストゾーンのリストで、前に作成したプライベートホストゾーンを選び、レコードを作成するを選びます。

  2. ウィザードを使用してレコードを作成します。コンソールに [Quick create] (クイック作成) 方式が表示された場合は、[Switch to wizard] (ウィザードに切り替える) をクリックします。

  3. [Routing policy] (ルーティングポリシー) に [Simple Routing] (シンプルルーティング) を選択し、[Next] (次へ) を選びます。

  4. [Configure records] (レコードを設定)ページで、[Define simple record] (シンプルなレコードを定義) を選択します。

  5. [Define simple record] (シンプルなレコードを定義) ページで

    • レコード名 にはiot:Data-ATSエンドポイント または iot:CredentialProviderエンドポイントを入力します。これは、プライベートホストゾーン名と同じである必要があります。

    • [Record type] (レコードタイプ) では、値を A - Routes traffic to an IPv4 address and some AWS resources のままにしておきます。

    • [Value/Route traffic to (値/トラフィックのルーティング先)] には、[Alias to VPC endpoint ( VPCエンドポイントへのエイリアス)] を選択します。次に、お使いの [Region] (地域)を選択し、表示されたエンドポイントのリストから、「Amazon VPC インターフェイスエンドポイントの作成」の説明に従って先ほど作成したエンドポイントを選択します。

  6. [Define simple record] (シンプルなレコードを定義) をクリックしてレコードを作成します。

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

VPC 条件コンテキストキー を使用して、VPC エンドポイント経由のデバイスアクセスのみを許可する AWS IoT Core ように制限できます。 は、次の VPC 関連のコンテキストキー AWS IoT Core をサポートします。 https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html

注記

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

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

{ "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}/*" ] } ] }

制限事項

現在、VPC エンドポイントは、AWS IoT Core データエンドポイントAWS IoT Core 認証情報プロバイダーエンドポイントでのみサポートされています。

IoT データ VPC エンドポイントの制限

このセクションでは、IoT データ VPC エンドポイントの制限について説明します。

  • MQTT キープアライブ期間は 230 秒に制限されています。それよりも長く存続すると、自動的に 230 秒に短縮されます。

  • 各 VPC エンドポイントは、合計で 100,000 台の同時接続デバイスをサポートします。より多くの接続が必要な場合は、による VPC エンドポイントのスケーリング AWS IoT Coreを参照してください。

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

  • VPC エンドポイントは ATS 証明書のみに対応します (カスタムドメインを除く)。

  • VPC エンドポイントポリシーはサポートされていません。

  • AWS IoT Core データプレーン用に作成された VPC エンドポイントの場合、 AWS IoT Core はゾーンまたはリージョンのパブリック DNS レコードの使用をサポートしていません。

認証情報プロバイダーエンドポイントの制限

このセクションでは、認証情報プロバイダー VPC エンドポイントの制限について説明します。

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

  • VPC エンドポイントは ATS 証明書のみを提供します。

  • VPC エンドポイントポリシーはサポートされていません。

  • カスタムドメインは、認証情報プロバイダーエンドポイントではサポートされていません。

  • AWS IoT Core 認証情報プロバイダー用に作成された VPC エンドポイントの場合、 AWS IoT Core はゾーンまたはリージョンのパブリック DNS レコードの使用をサポートしていません。

による VPC エンドポイントのスケーリング AWS IoT Core

AWS IoT Core インターフェイス VPC エンドポイントは、1 つのインターフェイスエンドポイントで 100,000 台の接続デバイスに制限されています。ユースケースでブローカーに対する同時接続がこれ以上必要になる場合は、複数の VPC エンドポイントを使用して、インターフェイスエンドポイント間でのデバイスのルーティングを手動で行うことをお勧めします。VPC エンドポイントにトラフィックをルーティングするプライベート DNS レコードを作成するときは、VPC エンドポイントと同じ数の加重レコードを作成して、複数のエンドポイント全体にトラフィックを分散するようにしてください。

VPC エンドポイントでのカスタムドメインの使用

VPC エンドポイントでカスタムドメインを使用する場合は、プライベートホストゾーンにカスタムドメイン名レコードを作成し、Route53 でルーティングレコードを作成する必要があります。詳細については、「プライベートホストゾーンの作成」を参照してください。

注記

カスタムドメインは AWS IoT Core データエンドポイントでのみサポートされます。

の VPC エンドポイントの可用性 AWS IoT Core

AWS IoT Core インターフェイス VPC エンドポイントは、AWS IoT Core サポートされているすべてのリージョンで利用できます。認証情報プロバイダーの AWS IoT Core AWS IoT Core インターフェイス VPC エンドポイントは、中国リージョンおよび ではサポートされていません AWS GovCloud (US) Regions。