FivetranのAmazon S3のConnectorをIAMロールで接続してみた #Fivetran

2024.02.10

こんにちは、スズです。

FivetranにはAmazon S3のConnectorがあります。Amazon S3へのアクセス方法として以下の中から選択できます。

  • IAM Role
  • Access Key and Secret
  • Public Bucket

各オプションを使ったアクセスについては、セットアップガイドに手順が記載されています。

本記事ではIAMロールを使ったアクセス方法についてご紹介いたします。

事前準備

データの同期先となるDestinationとして今回はSnowflakeを使用します。SnowflakeをDestinationに設定する方法は、以下のブログにてご紹介しております。

また、AWSでのIAMロールの準備は後述の手順の中でご紹介しますが、接続先となるAmazon S3のバケットはあからじめ用意しております。バケットの中にはFivetranというフォルダがあり、そのフォルダの中に2つのCSVファイルを用意しています。

Amazon S3のConnectorのセットアップ

FivetranでConnectorを追加

ConnectorにAmazon S3を追加していきます。Fivetranの[Connectors]の画面から、[Add connector]をクリックします。

Destinationを選択します。今回はSnowflakeにデータを同期しますので、あらかじめ用意していたSnowflakeのDestinationを選択します。

Connectorに[Amazon S3]を選択します。

データの出力先となるDestination schemaやDestination tableと、Amazon S3に接続するためBucketなど設定します。Access approachは、今回はIAM Roleを使用します。

IAMロールで接続するために、AWS側でIAMロールの作成を行います。

AWSでのIAMロールの作成

ポリシーの作成

まずはIAMポリシーを作成します。AWSのIAMの[ポリシー]の画面を開き、[ポリシーの作成]をクリックします。

アクセス許可を指定の画面では[JSON]を選択します。ポリシーの定義はセットアップガイドに以下の記載がありますので、セットアップガイドからコピーして貼り付けます。{your-bucket-name}の部分はFivetranで接続するAmazon S3のバケットの名前に置き換えます。

{
    "Version": "2012-10-17",
    "Statement": [
        {
        "Effect": "Allow",
        "Action": [
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:ListBucket"

        ],
        "Resource": [
                "arn:aws:s3:::{your-bucket-name}/*",
                "arn:aws:s3:::{your-bucket-name}"
        ]
        }
    ]
}

設定後、画面下の方にある[次へ]をクリックして先に進みます。

ポリシー名を設定します。

必要に応じてタグを設定し、[ポリシーの作成]をクリックします。これでIAMポリシーを作成できました。

ロールの作成

続いてIAMロールを作成します。[ロール]の画面を開き、[ロールを作成]をクリックします。

信頼されたエンティティタイプは[AWSアカウント]を選択します。

AWSアカウントでは[別のAWSアカウント]を選択し、セットアップガイドに記載のあるFivetranのアカウントID834469178297を入力します。また、[外部IDを要求する]にチェックを入れます。入力する外部IDは、FivetranのConnectorのセットアップの画面に表示されたExternal IDを入力します。設定後、[次へ]をクリックします。

許可ポリシーとして先ほど作成したIAMポリシーを選択し、[次へ]をクリックします。

ロール名を設定します。

必要に応じてタグを設定し、[ロールを作成]をクリックします。これでIAMロールを作成できました。

ARNの取得

作成したIAMロールからARNを取得します。作成したロールをクリックします。

ARNをコピーして取得します。

Fivetranで接続と同期

Fivetranに戻り、Role ARNに先ほど取得したARNを設定します。その他オプションを設定し、[Save & Test]をクリックします。

接続テストに成功が行われます。テストに成功したのち、[Continue]をクリックします。

これで設定は完了です。[Start Initial Sync]をクリックして、初期同期を実行します。

Initial sync comleteと表示されると、初期同期は完了です。

DestinationのSnowflakeを確認します。Connectorのセットアップで指定した名前でスキーマとテーブルが作成されています。テーブルを確認すると、Fivetranで同期したデータがあります。Amazon S3ではFivetranという名前のフォルダの中にCSVファイルを2つ用意していましたが、同期元のファイルは_FILEのカラムにある値で確認できます。

最後に

FivetranのAmazon S3のConnectorをIAMロールでの接続についてご紹介しました。

参考