IAMロールを使用してAmazon S3とのデータ同期を設定する

最終更新日:

Pendoのデータ同期機能を使用すると、Pendoのデータ(Pendo Feedbackのデータを除く)をAmazon S3アカウントにエクスポートできます。この記事では、IAMロールを使用したAmazon S3とのデータ同期の設定方法を説明します。なお、ユーザーアクセスキーを使用してAmazon S3とのデータ同期を設定することもできます。

前提条件

  • データ同期は有料の機能です。この機能を利用するには、Pendoの担当者にお問い合わせください。
  • この作業においてクラウドストレージの保存先を設定するには、Pendoのサブスクリプション管理者であるか、データ同期の設定権限を持っている必要があります。
  • AWSアカウントにIAMロールを作成するには、そのための権限が必要です。

設定の概要

Amazon S3とのデータ同期では、Pendo側での設定と、S3アカウントでの構成が必要になります。IAMロールを使用してAmazon S3とのデータ同期を設定するには、次の手順を実行します。

  1. Pendoでプロバイダーを選択します。
  2. IAMロールを作成します。
  3. S3バケットを作成します。
  4. S3バケットにフォルダを作成します。
  5. 新しく作成したIAMロールに、バケットへの書き込み権限を付与するようにバケットポリシーを構成します。
  6. PendoにロールARNとバケットURLを入力します。

ステップ1. Pendoでプロバイダーを選択する

  1. Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
  2. [宛先に接続(Connect to destination)]を選択します。
  3. 右側にスライドアウトするパネルで[Amazon Simple Storage Service(Amazon S3)]タイルにカーソルを合わせます。
  4. [宛先を選択(Choose destination)]を選択します。パネルには、次のステップがまとめられています。

    Choose desitination.png
  5. PendoのユーザーARNと外部IDの値を書き留めます。これらは、ステップ2でIAMロールを作成するために必要です。

    Configure destination.png

ステップ2. IAMロールを作成する

この設定プロセスでは、サブスクリプション用に生成され、ステップ1で提供されたARNと外部IDを使用して、Pendoが導入するIAM役割を作成します。この役割には、ステップ3で作成するバケットへの書き込み権限が付与されている必要があります。

  1. [AWSマネジメントコンソール(AWS Management Console)]に移動します。

  2. 画面左上で[サービス(Services)]>[IAM]を選択します。

  3. 左側のメニューで[アクセス管理(Access Management)]の下にある[役割(Roles)]を選択します。

  4. ページ右上の[役割を作成(Create role)]を選択します。

  5. [信頼できるエンティティタイプ(Trusted entity type)]で、[カスタム信頼ポリシー(Custom trust policy)]を選択します。

  6. [カスタム信頼ポリシー]で次のJSONスニペットをコピーし、テキストエディタに貼り付けます。提供されているデフォルトのJSONスニペットは上書きして構いません。

    • PENDO_USER_ARNをステップ1 で提供されたPendoのユーザーARNに置き換えます。

    • EXTERNAL_IDをステップ1で提供された外部IDに置き換えます。

      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": [
                          "PENDO_USER_ARN"
                      ]
                  },
                  "Action": [
                      "sts:AssumeRole"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "sts:ExternalId": "EXTERNAL_ID"
                      }
                  }
              }
          ]
      }
  7. ページ右下にある[次へ(Next)]を選択します。

  8. [権限を追加(Add permissions)]ページに権限を追加する必要はないため、ページの右下の[次へ]を選択します。
  9. 役割に名前を付けて確認します。
    • [役割の詳細(Role details)]で、その役割にpendo_datasyncと名前を付けます。役割名はpendo_datasyncと完全に一致する必要があります。
    • 信頼ポリシーがこの手順の前半で貼り付けたJSONスニペットと一致していることを確認します。
    • 許可ポリシーのリストが空であることを確認します。
    • 必要に応じて、タグを追加します。Pendoではタグは必須ではありませんが、組織にとって有用である場合があります。
  10. ページの右下で[役割を作成]を選択します。
  11. その役割のARNを書き留めます。これは、IAMダッシュボードで[役割(Roles)]>[役割名(Role Name)]>[概要(Summary)]の順に移動すると確認できます。

ステップ3. S3バケットを作成する

PendoのデータはS3バケットにコピーされます。S3バケットは次の手順で作成します。

  1. [AWSマネジメントコンソール(AWS Management Console)]に移動します。
  2. Amazon S3コンソールを開き、[バケット]を選択します。
  3. ページの右上にある[バケットを作成する]を選択します。
  4. S3バケットにわかりやすい名前を付けます。
  5. ワークフローに従って、S3バケットを適切に設定します。
  6. フォームの下部にある [バケットを作成する] を選択します。

ステップ4. S3バケットにフォルダを作成する

ステップ3で作成したバケットで以下を実施します。

  1. [フォルダの作成]を選択します。
  2. フォルダにわかりやすい名前を付けます。
  3. ワークフローに従って、S3フォルダを適切に設定します。
  4. フォームの下部にある [フォルダの作成] を選択します。

ステップ5. バケットポリシーを設定する

ステップ2で作成した役割を持つ全員にPutObject権限を許可するように、バケットを設定します。これにより、新しく作成したIAM役割にバケットへの書き込み権限が付与されます。

  1. ステップ3で作成したバケットに移動してください。これは[S3]>[バケット]>[バケット名(Bucket Name)]で確認できます。

  2. [権限(Permissions)]タブを選択し、[バケットポリシー(Bucket policy)]までスクロールして、[編集(Edit)]を選択します。

  3. 次の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"
                  ]
              }
          ]
      }
  4. ページの右下にある[変更を保存(Save changes)]を選択します。

ステップ6. PendoにロールARNとバケットURLを入力する

ステップ3で作成したバケット名と、ステップ2で作成した役割のARNをPendoに提供します。これにより、Pendoは提供された役割を引き受け、バケットに書き込めるようになります。

  1. PendoにバケットのURLを入力します。バケットのURLは、[S3]>[バケット]>[バケット名]>[フォルダ名]で作成したデータ同期バケットの[プロパティ(Properties)]タブで確認できます。[フォルダ概要(Folder overview)]テーブルの[S3 URI]列にあるURLをコピーします。

  2. [役割のARN(Role ARN)]の下に、ステップ2で作成した役割のARNを入力します。これは、その役割の[概要(Summary)]セクション([IAMダッシュボード(IAM Dashboard)]>[役割(Role)]>[役割名(Role Name)]の順に移動)で確認できます。

  3. [宛先を検証(Validate destination)]を選択し、入力した認証情報をテストします。 検証結果はボタンの下に表示されます。 検証に失敗した場合は、表示されたメッセージを確認するか、利用可能な場合は[エラーを表示(View error)]を選択し、宛先情報を修正してから再試行してください。

  4. 正常に検証されたら、[宛先を作成(Create Destination)]を選択します。

Set up destination.png

クラウドストレージの宛先を更新する

クラウドストレージの宛先を、あるS3バケットから別のバケットに移動したり、クラウドストレージサービスをGoogle Cloud Storage(GCS)やMicrosoft Azureなどの別のプロバイダーに変更するオプションがあります。

S3バケットを更新する

あるS3バケットから別の既存のS3バケットに変更したい場合は、次の手順でPendoのS3 URIフィールドを更新します。サブスクリプションごとに設定できるAmazon S3の宛先は1つのみのため、2つ目を追加するのではなく、既存の宛先を更新してください。

  1. Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
  2. 複数の宛先がある場合は、ページ上部でこのAmazon S3宛先を選択します。
  3. ページの右上にある[宛先を管理(Manage destination)]を選択します。
  4. S3 URIフィールドのエントリを、データ同期に使用したい新しいS3バケットの名前に置き換えます。
  5. [宛先を更新(Update destination)]を選択します。

クラウドストレージプロバイダーを変更する

Google Cloud Storage、Microsoft Azure Storage、またはウェアハウスの保存先など、Amazon S3とは異なる種類の保存先に移行するには、Amazon S3の保存先がまだ稼働している間に、新しい保存先を追加してください。Amazon S3の保存先を先に削除しないでください。

  1. 該当する宛先タイプの設定方法に関する記事の手順に従って、新しい宛先を設定してください。
  2. 新しい宛先に必要なエクスポートを作成します。Amazon S3の保存先から設定と定期エクスポートはコピーされません。
  3. 新しい宛先にエクスポートが届いていることを確認します。
  4. Amazon S3の宛先を削除します。
    1. Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
    2. ページの上部にあるこのAmazon S3宛先を選択します。
    3. ページの右上にある[宛先を管理(Manage destination)]を選択します。
    4. 宛先を削除(Delete destination)を選択します。
    5. 宛先を削除することを確定します。

宛先を削除すると、その宛先の定期的なエクスポートと継続的なメタデータの更新は自動的にオフになり、進行中のエクスポートはすべてキャンセルされます。その他の設定済み宛先は引き続き同期されます。

IAMロールの代わりにユーザーアクセスキーを使用する方法については、ユーザーアクセスキーを使用してAmazon S3とのデータ同期を設定するをご覧ください。

次のステップ

宛先が作成されたら、エクスポートを作成し、それらをロードするパイプラインを構築します。

この記事は役に立ちましたか?
4人中3人がこの記事が役に立ったと言っています