正規名レコード(CNAMEレコードと略されます)は、ドメインネームシステム(DNS)で定義されるそのドメインについての情報の種類の1つで、あるドメイン名やホスト名の別名を定義するものです。別名は「エイリアス」(alias)と呼ばれます。
CNAME機能を使用すると、お客様独自のバニティドメイン(サブドメイン)の下にホスト名を作成できます。このホスト名は、イベントの送信やガイドコンテンツのダウンロードの際に、Pendoのホスト名の代わりに使用されます。これにより、イベントを確実に収集し、エンドユーザーが広告ブロックソフト、ファイアウォール、VPN、ウェブフィルターなどの対象となっている場合でも、そのエンドユーザーにガイドを提供できます。
お客様のPendoサブスクリプションのCNAMEを設定するには、Pendoサポートにお問い合わせください。セルフサービスCNAME設定の非公開ベータ版の場合は、組織CNAME(非公開ベータ版)の設定の記事を参照してください。
設定
product.example.com
など、企業ドメインのサブドメインを指定してください(example.com
はお客様の企業ドメインです)。
Pendoは、作成する必要のある一連の必須DNSエントリを提供します。その例を以下の表に示します。Pendoでは、リクエストの送信後に作成できる実際のDNSエントリを提供します。
ドメインの例 | CNAMEの例 | 説明 |
---|---|---|
content.product.example.com | 1234567812345678-content.example.pendo.io | このレコードは、お客様のPendoサブスクリプションコンテンツホストのカスタムCDN構成に付随するエイリアスです。 |
_123456789abcdef.content.product.example.com | _fedcba987654321.ycvykntjsl.acm-validations.aws | このレコードは、Amazonに対しサブドメインの「制御の証明」を示すもので、これによりSSL証明書の自動生成が可能になります。 |
data.product.example.com | u3fxrmuiqn95e67123t5j11td4q3dkiq-data.customer.pendo.io | このレコードは、Pendoのデータホスト「app.pendo.io」に付随するエイリアスです。 |
_0123456789ghijklmn.product.example.com | _fedcba987654321.dv.googlehosted.com | このレコードは、Googleのドメインサービスに対しサブドメインの「制御の証明」を示すもので、これによりSSL証明書の自動生成が可能になります。 |
_acme-challenge.data.product.example.com | _6522233c-26fd-11ee-a5d5-8c8caac1e6d0.12.authorize.certificatemanager.goog. | このレコードは、Googleの証明書マネージャーサービスに対しサブドメインの「制御の証明」を示すもので、これによりSSL証明書の自動生成が可能になります。 |
サブドメインは、Pendoでの使用専用にする必要があります。
DNSエントリが設定されると、PendoはCNAMEの設定を完了します。これには新しいホスト名用のSSL証明書の自動生成が含まれます。
新しいCNAMEが割り当てられると、Pendoはアプリケーションに割り当てられた値を反映して、「データホスト(data host)」と「コンテンツホスト(content host)」を、それぞれdata.product.example.com
とcontent.product.example.com
のように更新します。管理者ユーザーは、[アプリケーション設定(Application Settings)]でこれを見ることができます(編集はできません)。
お客様のドメインで認証局認可(CAA)のレコードが使用されていることをPendoが検知し、お客様のドメインに対する証明書を発行できる認証局(CA)を指定するためにそのレコードが使用されていた場合、Pendoは管理対象証明書を作成するために必要なレコードを含めます。
ドメイン | CAA | 説明 |
---|---|---|
product.example.com | 0 issue "amazontrust.com" | Amazonの証明書マネージャーをCAとして使用できるようにします(コンテンツホスト)。 |
product.example.com | 0 issue "pki.goog" | Googleの証明書マネージャーをCAとして使用できるようにします(データホスト)。 |
product.example.com | 0 issue "letsencrypt.org" | Googleの証明書マネージャーをCAとして使用できるようにします(データホスト)。 |
CAAレコードが親ドメインから削除された場合、そのCAAレコードはサブドメイン(バニティドメイン)に追加されます。
CAAレコードは、CNAMEの構成中にバニティドメインに追加する必要があります。CNAMEの構成後にCAAレコードをバニティドメインに追加すると、管理対象証明書の更新時に問題が発生し、処理が中断される可能性があります。
Pendoのインストールスクリプト(スニペット)を更新する
CNAMEがアプリケーションに割り当てられると、Pendoは新しい設定を使用して、サブスクリプションのPendoエージェントを書き換えます。それ以降、Pendoとのすべての通信は、CNAMEによって提供されるエイリアスを通じて行われます。
次に、アプリケーションに追加されたPendoのインストールスクリプト(一般に「スニペット」と呼ばれる)を新しい「コンテンツホスト」で更新します。これを実行している間もcdn.pendo.io
は動作し続けるため、データは失われません。
ガイドと画像を再保存する
公開済みの各ガイドも再保存し、バッジアイコンやその他のコンテンツも再アップロードして、これらが新しいエイリアスで更新されるようにします。なお、CNAMEが割り当てられた後に公開されたガイドでは、自動的に新しいコンテンツホストが使用されます。
CNAMEを有効にした後にガイドを公開する場合、各ガイドで以下の操作を繰り返します。ガイドが再保存されると、そのコンテンツはエイリアスドメインからプルされます。
- ガイドの詳細ページを開きます。
- [アプリ内で管理(Manage In-App)]を選択します。
- ビジュアルデザインスタジオの[ガイドの管理(Guide Management)]バーで[保存(Save)]を選択します。
- [終了(Exit)]を選択して、ビジュアルデザインスタジオを終了します。
Pendo MobileのCNAME
PendoモバイルのCNAMEの設定については、PendoモバイルのCNAMEを設定するを参照してください。
よくある質問
CNAMEはCSPの構成に影響を与えますか?
はい。Pendoへのサービスを中断せずに維持するためには、CNAMEへの移行中およびCNAMEの配置後に、CSPディレクティブを変更する必要があります。CSPディレクティブの変更方法については、 コンテンツセキュリティポリシーの記事をご覧ください。
CNAMEはPendoがユーザーアナリティクスを追跡することを保証しますか?
Pendoの使用状況の追跡を妨げる可能性のある広告ブロッカーがある場合、CNAMEはPendoが訪問者のアナリティクスを取得することを保証しません。
Twilio SegmentでCNAMEを使うことはできますか?
はい、ただし、PendoがSegmentのPendoウェブ(アクション)の宛先を使用してインストールされ、宛先設定でCNAMEコンテンツホストを指定できる場合に限ります。設定が完了する前にSegmentでこの値を変更すると、Pendoのデータ収集が中断されるため、PendoでCNAMEの設定が完了したという確認を受け取った後でコンテンツホストをSegmentに追加することが重要です。
Segment内の古いPendoの宛先を使用してPendoをインストールする従来の方法では、CNAMEがサポートされていません。Pendoウェブ(アクション)の宛先にインストールまたは移行する方法については、Twilio SegmentによるPendoのインストールを参照してください。
自分でSSL証明書を用意することはできますか?
できます。ただし、セキュリティ上のベストプラクティスとして、Pendoによる証明書署名要求(CSR)の生成を許可する必要があります。これにより、秘密鍵の共有を避けることができます。PendoがCSRを生成している状態で、CSRの生成に適したテキストファイルを提供していただく必要があります。お客様のホストに応じたSANテンプレートをPendoが生成することも、お客様が以下のテンプレートを使用して[dn]
セクションに情報を提供することも可能です。
[ req ]
default_bits = 2048
prompt = no
encrypt_key = no
default_md = sha256
distinguished_name = dn
req_extensions = req_ext
[ dn ]
commonName = Common Name (server FQDN; data.product.example.com)
organizationName = Organization Name (eg, company)
localityName = Locality Name (eg, city)
stateOrProvinceName = State or Province Name (full name)
countryName = Country Name (2 letter code)
organizationalUnitName = Organizational Unit Name (eg, section)
[ req_ext ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = data.product.example.com
DNS.2 = content.product.example.com
Pendoでは、SANファイルを入手した後にCSRを生成してお客様に送信します。これを使用してCAから証明書を取得してください。これにより、CSRを生成するプロセスで秘密鍵も生成されるため、当事者間で秘密鍵を渡す必要がなくなります。証明書と中間チェーンは、プレーンテキストの電子メールで安全に送信できます。
証明書チェーンと秘密鍵を含む暗号化されたアーカイブをPendoに送付する必要がある場合、その標準的な方法は、keybase.ioを介して暗号化されたファイルをPendoのOPSチームに送付することです。独自の安全なファイル転送メカニズムをご希望の場合は、そのメカニズムを使用することができます。証明書がデプロイされると秘密鍵は削除されるため、その後の更新には新しい鍵を指定する必要があります。