Pendoのデータ同期機能を使用すると、Pendoのデータ(Pendo Feedbackのデータを除く)をAmazon S3アカウントにエクスポートできます。この記事では、IAMロールを使用したAmazon S3とのデータ同期の設定方法を説明します。なお、ユーザーアクセスキーを使用してAmazon S3とのデータ同期を設定することもできます。
前提条件
- データ同期は有料の機能です。この機能を利用するには、Pendoの担当者にお問い合わせください。
- データ同期のIAM役割の設定は、Pendo担当者が手動で有効にする必要があります。
- この作業においてクラウドストレージの保存先を設定するには、Pendoのサブスクリプション管理者である必要があります。
- AWSアカウントにIAMロールを作成するには、そのための権限が必要です。
設定の概要
Amazon S3とのデータ同期では、Pendo側での設定と、S3アカウントでの構成が必要になります。IAMロールを使用してAmazon S3とのデータ同期を設定するには、次の手順を実行します。
- Pendoでプロバイダーを選択します。
- IAMロールを作成します。
- S3バケットを作成します。
- S3バケットにフォルダを作成します。
- 新しく作成したIAMロールに、バケットへの書き込み権限を付与するようにバケットポリシーを構成します。
- PendoにロールARNとバケットURLを入力します。
ステップ1. Pendoでプロバイダーを選択する
- Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
- [宛先に接続(Connect to destination)]を選択します。
- 右側にスライドアウトするパネルで[Amazon Simple Storage Service(Amazon S3)]タイルにカーソルを合わせます。
-
[宛先を選択(Choose destination)]を選択します。パネルには、次のステップがまとめられています。
- PendoのユーザーARNと外部IDの値を書き留めます。これらは、ステップ2でIAM役割を作成するために必要です。
ステップ2. IAMロールを作成する
この設定プロセスでは、サブスクリプション用に生成され、ステップ1で提供されたARNと外部IDを使用して、Pendoが導入するIAM役割を作成します。この役割には、ステップ3で作成するバケットへの書き込み権限が付与されている必要があります。
-
左上で[サービス(Services)]>[IAM]の順に選択します。
-
左側のメニューにある[役割(Roles)]([アクセス管理(Access Management)]の下)を選択します。
-
ページ右上の[役割を作成(Create role)]を選択します。
-
[信頼できるエンティティタイプ(Trusted entity type)]で、[カスタム信頼ポリシー(Custom trust policy)]を選択します。
-
[カスタム信頼ポリシー]で次のJSONスニペットをコピーし、テキストエディタに貼り付けます。提供されているデフォルトのJSONスニペットは上書きして構いません。
-
ページ右下の[次へ(Next)]を選択します。
- [権限を追加(Add permissions)]ページに権限を追加する必要はないため、ページの右下の[次へ]を選択します。
-
役割に名前を付けて確認します。
- [役割の詳細(Role details)]で、その役割に
pendo_datasync
と名前を付けます。役割名はpendo_datasync
と完全に一致する必要があります。 - 信頼ポリシーがこの手順の前半で貼り付けたJSONスニペットと一致していることを確認します。
- 許可ポリシーのリストが空であることを確認します。
- 必要に応じて、タグを追加します。タグは必須ではありませんが、組織にとっては有用である場合があります。
- [役割の詳細(Role details)]で、その役割に
- ページの右下で[役割を作成]を選択します。
- その役割のARNを書き留めます。これは、IAMダッシュボードで[役割(Roles)]>[役割名(Role Name)]>[概要(Summary)]の順に移動すると確認できます。
ステップ3. S3バケットを作成する
PendoのデータはS3バケットにコピーされます。S3バケットは次の手順で作成します。
- [AWSマネジメントコンソール(AWS Management Console)]に移動します。
- Amazon S3コンソールを開き、[バケット]を選択します。
- ページの右上にある[バケットを作成する]を選択します。
- S3バケットにわかりやすい名前を付けます。
- ワークフローに従って、S3バケットを適切に設定します。
- フォームの下部にある [バケットを作成する] を選択します。
ステップ4. S3バケットにフォルダを作成する
ステップ3で作成したバケットで以下を実施します。
- [フォルダの作成]を選択します。
- フォルダにわかりやすい名前を付けます。
- ワークフローに従って、S3フォルダを適切に設定します。
- フォームの下部にある [フォルダの作成] を選択します。
ステップ5. バケットポリシーを設定する
ステップ2で作成した役割を持つ全員にPutObject
権限を許可するように、バケットを設定します。これにより、新しく作成したIAM役割にバケットへの書き込み権限が付与されます。
-
ステップ3で作成したバケットに移動します。これは、[S3]>[バケット(Buckets)]>[バケット名(Bucket Name)]で確認できます。
-
[権限(Permissions)]タブを選択し、[バケットポリシー(Bucket policy)]までスクロールして、[編集(Edit)]を選択します。
-
次のJSONスニペットをコピーして、エディタの[ポリシー(Policy)]の下に貼り付けます。
-
ROLE_ARN
を、ステップ2で作成した役割のARNに置き換えます。これは、その役割の[概要(Summary)]セクション[IAMダッシュボード(IAM Dashboard)]>[役割(Role)]>[役割名(Role Name)]の順に移動)で確認できます。 -
BUCKET_ARN
を、このページのエディタの上に表示されているバケットARNに置き換えます。{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": {
"AWS": "ROLE_ARN"
},
"Action": "s3:PutObject",
"Resource": [
"BUCKET_ARN/*",
"BUCKET_ARN"
]
}
]
}
-
- ページの右下にある[変更を保存(Save Changes)]を選択します。
ステップ6. PendoにロールARNとバケットURLを入力する
ステップ3で作成したバケット名と、ステップ2で作成した役割のARNをPendoに提供します。これにより、Pendoはその役割を導入できるようになるため、バケットへの書き込みも可能になります。
-
PendoにバケットのURLを入力します。このURLは、[S3]>[バケット(Buckets)]>[バケット名(Bucket Name)]>[フォルダ名(Folder Name)]の順に移動し、作成したデータ同期バケットの[プロパティ(Properties)]タブで確認できます。このURLを[フォルダ概要(Folder overview)]テーブルの[S3 URI]列にコピーします。
-
[役割のARN(Role ARN)]の下に、ステップ2で作成した役割のARNを入力します。これは、その役割の[概要(Summary)]セクション([IAMダッシュボード(IAM Dashboard)]>[役割(Role)]>[役割名(Role Name)]の順に移動)で確認できます。
-
[宛先を検証(Validate Destination)]を選択し、入力した認証情報をテストします。
-
正常に検証されたら、[宛先を作成(Create Destination)]を選択します。