Pendoのデータ同期機能を使用すると、Pendoのデータ(Pendo Feedbackのデータを除く)をGoogle Cloud Storage(GCS)アカウントにエクスポートできます。この記事では、GCSのデータ同期の設定方法を説明します。
前提条件
- データ同期は有料の機能です。この機能を利用するには、Pendoの担当者にお問い合わせください。
- この作業においてクラウドストレージの保存先を設定するには、Pendoのサブスクリプション管理者である必要があります。
- ユーザーには、GCSの
storage.objects.create
、storage.objects.delete
、storage.objects.update
権限が必要です。
設定の概要
GCSとのデータ同期では、Pendo側での設定と、Google Cloud環境での構成が必要になります。具体的には、以下の手順で実施します。
- Google Cloud Platform(GCP)のサービスアカウントを作成します。
- サービスアカウント用のJSONキーファイルを生成します。
- GCSバケットを作成します。
- GCSバケットにGCPサービスアカウントへの権限を付与します。
- Pendoでプロバイダーを選択します。
- PendoにサービスアカウントキーとバケットURLを入力します。
ステップ1:GCPサービスアカウントを作成する
サービスアカウントをお持ちでない方は、Google Cloud環境でGoogle Cloud Platform(GCP)のサービスアカウントを作成する必要があります。
- Google Cloudコンソールで、[IAM と管理(IAM & Admin)]>[サービスアカウント(Service Accounts)]に移動し、[サービスアカウントを作成(Create service account)]を選択します。
- サービスアカウント名や説明など、サービスアカウントの詳細を入力します。
- 必要に応じて、サービスアカウントのアクセスレベルを選択します。
- [完了]を選択します。これにより、[IAMサービスアカウント(IAM Service Accounts)]ページにサービスアカウントと役割が作成されます。
- メール形式のサービスアカウント名をコピーします。これは、本記事のステップ4で使用するため、保存しておいてください。
詳しい情報および手順については、Googleの サービス アカウント キーの作成と管理をご覧ください。
ステップ2:サービスアカウント用のJSONキーファイルを生成する
データ同期のためにサービスアカウントを新規に作成する場合でも、既存のものを利用する場合でも、Pendoのデータ同期の宛先に入力するJSONキーファイルは生成する必要があります。このキーの生成方法は次のとおりです。
- GCPで[IAM サービスアカウント(IAM Service Accounts)]ページに移動し、データ同期に使用するサービスアカウントを見つけます。
- [操作]列で、サービスアカウントの横にある縦並びの点をクリックし、 [鍵を管理]を選択します。
- [鍵を追加]ドロップダウンメニューから[新しい鍵を作成]を選択します。
- 鍵のタイプとして[JSON]を選択し、[作成]をクリックします。
- お使いのコンピューターにキーが保存されたことを伝えるメッセージが表示されます。このメッセージは閉じて構いません。
これで、キーがコンピューターにインストールされました。この記事のステップ6で使用するため、キーは必ず保存してください。
ステップ3:GCSバケットを作成する
PendoからエクスポートされたデータはGCSバケットにコピーされます。GCSバケットは次の手順で作成します。
- Cloud Storageで[バケット(Buckets)]に移動し、ページの上部にある[+作成(+ CREATE)]を選択します。
- バケットにわかりやすい名前を付けます。
- Googleワークフローに従って、データの場所とストレージクラスを選択し、オブジェクトへのアクセスを制御する方法とオブジェクトデータを保護する方法を指定します。
- [作成]をクリックします。
- パブリックアクセスがブロックされていることを知らせるメッセージが生成されます。[確認]をクリックします。
その後、Google Cloudの空のバケットが開きます。
ステップ4:GCSバケットにサービスアカウントへのアクセス権を付与する
GCPのサービスアカウントをGCSバケットのメンバーにして、ストレージ管理者の権限をサービスアカウントに付与します。
-
Cloud Storageのバケットでデータ同期用のバケットを見つけ、次のいずれかを実施します。
- データ同期用のバケットを開き、上部の[権限]タブを選択し、[権限を付与]を選択します。
- [バケット] ページでデータ同期用バケットの横にある縦並びの点を選択し、 [権限を編集]を選択します。
- [プリンシパルを追加(Add principal)]を選択し、この記事のステップ1でコピーしたサービスアカウント名を貼り付けて、バケットへのアクセスを許可します。
-
[役割を選択(Select a role)]で、 [クラウドストレージ(Cloud Storage)]>[ストレージ管理者(Storage Admin)]の順に選択します。これにより、GCSリソースの完全なコントロールが可能になります。または、特定の要件(
storage.objects.create
、storage.objects.delete
、storage.objects.update
)で独自の役割を作成します。 - [保存]を選択し、サービスアカウントにデータ同期バケットへのストレージ管理者権限があることを確認します。
ステップ5:Pendoでプロバイダーを選択する
ストレージバケットにデータを送信する前に、Pendoでターゲットとなる送信先を設定する必要があります。
- Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
- 画面上部の [一括エクスポート(Bulk Exports)]タブを選択し、[宛先の設定(Set Up Destination)]を選択します。
- 右側にスライドアウトするパネルで[Google Cloud Storage]タイルにカーソルを合わせ、[保存先を選択(Choose destination)]を選択します。パネルには、次のステップがまとめられています。
ステップ6. PendoでGCSアカウントの宛先を設定する
最後に、サービスアカウントキーをアップロードし、バケットURLをPendoに設定します。
- バケットのURLを入力します。これは、[Google Cloud Storage]>[バケット(Buckets)]で作成されたデータ同期用バケットの構成(CONFIGURATION)タブにあります。概要(Overview )表の[gsutil URI]行にあるURLをコピーします。
- [JSONファイルをアップロード(Upload JSON file)]を選択し、本記事のステップ2で作成しダウンロードしたJSONキーファイルをアップロードします。
- サービスアカウントとシークレットキーを手動で入力する場合は、次の手順を実行します。
- JSONキーファイルに対応するサービスアカウントのメール名を入力します。
- サービスアカウントのJSONキーから
private_key
の値を入力します。
- [宛先を検証(Validate Destination)]を選択し、入力した認証情報をテストします。
- 正常に認証されたら、[宛先を作成(Create Destination)]を選択します。
認証情報のローテーション
Pendoで宛先を構成した後に認証情報を更新するには、以下の2つの方法があります。
- Pendo UIを使って手動で更新する。
- 公開APIを使って自動で更新する。
公開APIのエンドポイントを使用してデータ同期の認証情報を更新するには、書き込み権限のあるインテグレーションキーが必要です。
Pendo UIを使う
- Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
- ページの右上にある[宛先を管理(Manage destination)]を選択します。
- 新しい認証情報を入力します。
公開APIを使う
- Pendoのインテグレーションキーの記事で説明されている手順に従って、新しいPendoインテグレーションキーを生成します。
- Pendoの公開API資料で、[データ同期]に移動します。
- クラウドストレージの宛先に対応する
PUT
エンドポイントを選択します。 - 公開APIのエンドポイントを使用してクラウドストレージの認証情報を更新する手順に従います。
クラウドストレージの宛先を更新する
クラウドストレージの宛先を、あるGCSバケットから別のバケットに移動したり、クラウドストレージサービスをMicrosoft AzureやAmazon S3などの別のプロバイダーに変更するオプションがあります。
GCSバケットを更新する
あるGCSバケットから別の既存の GCS バケットに変更する場合は、PendoでバケットURLを更新します。
- Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
- ページの右上にある[宛先を管理(Manage Destination)]を選択します。
- Bucket URLフィールドのエントリを、データ同期に使用する新しいGCSバケットの名前に置き換えます。
- [宛先を更新(Update destination)]を選択します。
クラウドストレージプロバイダーを変更する
クラウドストレージの宛先をGCSからMicrosoft AzureやAmazon S3などの代替サービスに変更する場合は、既存の宛先を削除して新しい宛先を作成できます。
宛先を削除するには次の手順を実行します。
- Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
- ページの右上にある[宛先を管理(Manage destination)]を選択します。
- 宛先を削除(Delete destination)を選択します。
- 宛先を削除することを確定します。
宛先を削除すると、定期的なレポートと継続的なメタデータの更新は自動的にオフになります。
その後、以下の記事で説明されている手順に沿って、別のクラウドストレージを宛先として設定することができます。
- ユーザーアクセスキーを使用してAmazon S3とのデータ同期を設定する
- IAMロールを使用してAmazon S3とのデータ同期を設定する
- Microsoft Azure Storageとのデータ同期を設定する
あるいは、PendoがホストするGCSの宛先とのデータ同期を設定することもできます。詳細については、Pendoアカウントチームにお問い合わせください。