はじめに
おつかれさまです。tyamonです。
この記事では、Power Automateを利用してSharePointリストのデータをAWS S3へ自動連携する方法について解説します。
以下のような方を対象としています。
- SharePointリストのデータエクスポートや保存を自動化したい方
- Power AutomateからAWS S3リソースに安全にアクセスさせたい方
結論
本記事の手順を実施することで、SharePointリストの更新をトリガーとし、全データをCSV形式でAWS S3に自動でアップロードする仕組みを構築できます。
前提条件・環境
- 対象SaaS: SharePoint (Microsoft 365)
- クラウドインフラ: AWS S3, IAM
- 自動化ツール: Power Automate
1. AWS側の設定詳細(IAM・S3)
セキュリティを担保するため、Power Automate専用のIAMユーザーを作成し、最小権限の原則に基づいたIAMポリシーを適用します。
IAMユーザーの作成
IAMでS3接続用の一意なユーザーを作成し、アクセスキーを取得します。
- 推奨ユーザー名:
[あなたのIAMユーザー名](サービスアカウント形式)
IAM ポリシーの設定
特定のS3バケット(例:[あなたのS3バケット名])の書き込みと一覧取得のみを許可するカスタムポリシーを作成してユーザーにアタッチします。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowS3PutActions",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:PutObjectACL"
],
"Resource": "arn:aws:s3:::[あなたのS3バケット名]/*"
},
{
"Sid": "AllowS3ListAndLocation",
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::[あなたのS3バケット名]"
}
]
}2. Power Automate フロー構成
フローは以下の4つの基本アクションで構成します。
1. トリガーの設定 (アイテムが作成または変更されたとき)
リストに新しいデータが追加されたり、既存のデータが更新されたタイミングでフローを開始します。
- 対象サイト: 対象のSharePointサイト名
- 対象リスト: [対象のリスト名]
2. 複数の項目の取得 (Get items)
最新のリスト状態を取り出します。
3. CSVテーブルの作成 (Create CSV table)
取得したデータをAWS S3へのアップロード用にフラットなCSVファイルに変換します。
- 選択 (From): 「複数の項目の取得」で得た「値 (value)」を指定
4. Amazon S3へ保存 (Put Object)
ここで作成したCSVをS3バケットにアップロードします。
利用するコネクタについての注意点
ここで使用するS3コネクタは、標準で用意されているものではなく 「Amazon S3 バケット (独立パブリッシャー) (プレビュー)」 というコネクタです。コミュニティ・独立パブリッシャーによって提供されているプレビュー版のコネクタであるため、通常のMicrosoft公式AWSコネクタとは経路やサポート体制が異なる点に留意して利用してください。
- Region:
ap-northeast-1(東京) - Bucket:
[あなたのS3バケット名] - Key (ファイル名): 下記の式を利用して、実行時の日本時間を付与したユニークなファイル名を割り当てます。
concat('item_list_', formatDateTime(addHours(utcNow(), 9), 'yyyyMMdd_HHmm'), '.csv')
- Content: 「CSVテーブルの作成」アクションの「出力 (Output)」を指定
実運用のポイント
- 履歴管理: ファイル名に分単位の静的文字列(タイムスタンプ)を含めているため、S3上で上書きされることなくデータの変更履歴が時系列で保存されます。
- セキュアな設計: AWS接続用の認証情報を限定的な権限のIAMユーザーに紐付けることで、安全な外部連携を実現しています。
まとめ
今回はSharePointとAWS S3をPower Automateで連携させる仕組みを紹介しました。ポイントは以下の通りです。
- Power Automateにより複雑なインフラ構築無しでSharePointからS3へデータを退避可能。
- 運用の際は動的タイムスタンプを利用したファイル名生成が肝。

コメント