カスタムドメインの作成と設定 - AWS IoT Core

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

カスタムドメインの作成と設定

ドメイン設定では、 AWS IoT Coreに接続するカスタムの完全修飾ドメイン名 (FQDN) を指定できます。カスタムドメインを使用する利点は多数あります。 ブランド化の目的で、自分のドメインまたは会社のドメインを顧客に公開できます。 新しいブローカーを指すように独自のドメインを簡単に変更できます。 マルチテナンシーをサポートして、同じ 内の異なるドメインで顧客にサービスを提供できます AWS アカウント。 独自のサーバー証明書の詳細を管理できます。 例えば、証明書の署名に使用されるルート認証局 (CA)、 署名アルゴリズム、 証明書チェーンの深さ、 と証明書のライフサイクル。

カスタムドメインを使用してドメイン設定をセットアップするワークフローは、次の 3 つの段階で構成されます。

証明書マネージャーへのサーバー AWS 証明書の登録

カスタムドメインを使用してドメイン設定を作成する前に、サーバー証明書チェーンを AWS Certificate Manager (ACM) に 登録する必要があります。次の 3 種類のサーバー証明書を使用できます。

証明書の要件

証明書を ACM にインポートするための要件については、証明書をインポートするための前提条件を参照してください。これらの要件に加えて、 AWS IoT Core では次の要件が追加されます。

  • リーフ証明書には、serverAuth (TLS Web Server Authentication) の値を持つ拡張キー使用 x509 v3 拡張機能が含まれている必要があります。ACM から証明書をリクエストすると、この拡張が自動的に追加されます。

  • 証明書チェーンの最大深度は 5 個の証明書です。

  • 証明書チェーンの最大サイズは 16 KB です。

  • サポートされている暗号化アルゴリズムとキーサイズには、RSA 2048 ビット (RSA_2048) と ECDSA 256 ビット (EC_prime256v1) が含まれます。

複数のドメインに対する 1 つの証明書の使用

1 つの証明書を使用して複数のサブドメインをカバーする場合は、共通名 (CN) フィールドまたは主体者別名 (SAN) フィールドにワイルドカードドメインを使用します。たとえば、*.iot.example.com を使用して、dev.iot.example.com、qa.iot.example.com、および prod.iot.example.com をカバーします。各 FQDN には独自のドメイン設定が必要ですが、複数のドメイン設定では、同じワイルドカード値が使用できます。CN または SAN は、カスタムドメインとして使用する FQDN をカバーする必要があります。SAN が存在する場合、CN は無視されます。SAN は、カスタムドメインとして使用する FQDN をカバーする必要があります。このカバレッジは、完全一致またはワイルドカード一致です。ワイルドカード証明書が検証され、アカウントに登録されると、そのリージョンの他のアカウントは、証明書と重複するカスタムドメインを作成できなくなります。

次のセクションでは、各種類の証明書を取得する方法について説明します。すべての証明書リソースには、ドメイン設定の作成時に使用する ACM に登録された Amazon リソースネーム (ARN) が必要です。

ACM によって生成されたパブリック証明書

RequestCertificate API を使用して、カスタムドメインのパブリック証明書を生成できます。この方法で証明書を生成すると、ACM はカスタムドメインの所有権を検証します。詳細については、AWS Certificate Manager ユーザーガイドの「パブリック証明書のリクエスト」を参照してください。

公開 CA によって署名された外部証明書

パブリック CA (Mozilla の信頼できる ca-bundle に含まれている CA) によって署名されたサーバー証明書が既にある場合は、 ImportCertificate API を使用して証明書チェーンを ACM に直接インポートできます。このタスク、前提条件および証明書形式の要件の詳細については、「証明書のインポート」を参照してください。

プライベート CA によって署名された外部証明書

プライベート CA によって署名されたサーバー証明書または自己署名されたサーバー証明書が既にある場合は、その証明書を使用してドメイン構成を作成できますが、ドメインの所有権を検証するために ACM に追加のパブリック証明書を作成する必要もあります。これを行うには、 ImportCertificate API を使用してサーバー証明書チェーンを ACM に登録します。このタスク、前提条件および証明書形式の要件の詳細については、「証明書のインポート」を参照してください。

検証証明書の作成

証明書を ACM にインポートしたら、 RequestCertificate API を使用してカスタムドメインのパブリック証明書を生成します。この方法で証明書を生成すると、ACM はカスタムドメインの所有権を検証します。詳細については、「パブリック証明書のリクエスト」を参照してください。ドメイン設定を作成するときは、このパブリック証明書を検証証明書として使用します。

ドメイン設定の作成

CreateDomainConfiguration API を使用して、カスタムドメインに設定可能なエンドポイントを作成します。カスタムドメインのドメイン設定は、次のもので構成されます。

  • domainConfigurationName

    ドメイン設定を識別するユーザー定義名 IoT: で始まるドメイン設定名は、デフォルトのエンドポイント用に予約されており、使用できません。また、この値は に固有である必要があります AWS リージョン。

  • domainName

    デバイスが への接続に使用する FQDN AWS IoT Core。 AWS IoT Core は、サーバー名表示 (SNI) TLS 拡張機能を利用してドメイン設定を適用します。デバイスは、接続時にこの拡張機能を使用し、ドメイン設定で指定されているドメイン名と同じサーバー名を渡す必要があります。

  • serverCertificateArns

    ACM. に登録したサーバー証明書チェーンの ARN は、 AWS IoT Core 現在 1 つのサーバー証明書のみをサポートしています。

  • validationCertificateArn

    カスタムドメインの所有権を検証するために ACM で生成したパブリック証明書の ARN。パブリックに署名されたサーバー証明書または ACM によって生成されたサーバー証明書を使用する場合、この引数は不要です。

  • defaultAuthorizerName (optional)

    エンドポイントで使用するカスタムオーソライザーの名前。

  • allowAuthorizerOverride

    リクエストの HTTP ヘッダーで別のオーソライザーを指定することによって、デバイスがデフォルトのオーソライザーを上書きできるかどうかを指定するブール値。defaultAuthorizerName の値が指定されている場合、この値は必須です。

  • serviceType

    AWS IoT Core は現在、 DATAサービスタイプのみをサポートしています。を指定するとDATA、 はエンドポイントタイプが のエンドポイント AWS IoT を返しますiot:Data-ATS

  • TlsConfig (オプション)

    ドメインの TLS 構成を指定するオブジェクト。詳細については、「ドメイン設定での TLS 設定の設定」を参照してください。

  • serverCertificateConfig (オプション)

    ドメインのサーバー証明書設定を指定するオブジェクト。詳細については、「OCSP ステープリングのサーバー証明書設定」を参照してください。

次の AWS CLI コマンドは、iot.example.com のドメイン設定を作成します。

aws iot create-domain-configuration --domain-configuration-name "myDomainConfigurationName" --service-type "DATA" --domain-name "iot.example.com" --server-certificate-arns serverCertARN --validation-certificate-arn validationCertArn
注記

ドメイン設定を作成した後、 がカスタムサーバー証明書 AWS IoT Core を提供するまでに最大 60 分かかる場合があります。

詳細については、「ドメイン設定の管理」を参照してください。

DNS レコードの作成

サーバー証明書チェーンを登録してドメイン設定を作成したら、カスタムドメインが AWS IoT ドメインを指すように DNS レコードを作成します。このレコードは、タイプ の AWS IoT エンドポイントを指す必要がありますiot:Data-ATSDescribeEndpoint API を使用してエンドポイントを取得できます。

次の AWS CLI コマンドは、エンドポイントを取得する方法を示しています。

aws iot describe-endpoint --endpoint-type iot:Data-ATS

iot:Data-ATS エンドポイントを取得したら、カスタムドメインからこの AWS IoT エンドポイントにCNAMEレコードを作成します。同じ に複数のカスタムドメインを作成する場合 AWS アカウント、 はそれらを同じiot:Data-ATSエンドポイントにエイリアスします。

トラブルシューティング

デバイスをカスタムドメインに接続できない場合は、 AWS IoT Core がサーバー証明書を受け入れて適用していることを確認します。 AWS IoT Core コンソールまたは を使用して、 AWS IoT Core が証明書を受け入れたことを確認できます AWS CLI。

AWS IoT Core コンソールを使用するには、設定ページに移動し、ドメイン設定名を選択します。[Server certificate details] (サーバー証明書の詳細) セクションで、ステータスとステータスの詳細を確認します。証明書が無効な場合は、ACM で、前のセクションでリストされている証明書要件を満たす証明書に置き換えます。証明書の ARN が同じ AWS IoT Core 場合、 は証明書を取得し、自動的に適用します。

を使用して証明書のステータスを確認するには AWS CLI、 DescribeDomainConfiguration API を呼び出し、ドメイン名を指定します。

注記

証明書が無効な AWS IoT Core 場合、 は最後の有効な証明書を引き続き提供します。

次の openssl コマンドを使用して、エンドポイントで提供されている証明書を確認できます。

openssl s_client -connect custom-domain-name:8883 -showcerts -servername custom-domain-name