カスタマーマネージドドメインの作成と設定 - AWS IoT Core

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

カスタマーマネージドドメインの作成と設定

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

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

Certificate Manager でのサーバー AWS 証明書の登録

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

証明書の要件

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

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

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

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

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

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

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

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

ACMが生成したパブリック証明書

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

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

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

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

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

検証証明書の作成

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

ドメイン設定の作成

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

  • domainConfigurationName

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

  • domainName

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

  • serverCertificateArns

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

  • validationCertificateArn

    カスタムドメインARNの所有権を検証ACMするために で生成したパブリック証明書の 。パブリックに署名されたサーバー証明書または 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-ATS。を使用してエンドポイントを取得できますDescribeEndpointAPI。

次の 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、 を呼び出しDescribeDomainConfigurationAPI、ドメイン設定名を指定します。

注記

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

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

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