はじめに
おつかれさまです。tyamonです。
この記事では、Power Automateを利用してSharePointリストのデータをAWS S3へ自動連携する方法について解説します。
以下のような方を対象としています。
- 業務で利用しているSharePoint上のリストデータをセキュアに外部クラウドストレージへエクスポートさせたい方
- Power Automateを用いたAWS S3連携の具体的な権限管理やフローを知りたい方
結論
本記事の手順を実施することで、SharePointリストの更新をトリガーに、全データを自動でCSVに変換し、安全なアクセス権で構成されたAWS S3に動的なファイル名でアップロードするシステムを実装できます。
前提条件・環境
- Microsoft 365環境(SharePointリスト、Power Automate)
- AWS環境(S3バケット作成・IAM操作権限があること)
1. AWS IAM設定: セキュアな権限付与
Power Automateに対して不要な権限を持たせないよう、最小権限(Least Privilege)の原則に基づいた専用のIAMユーザーを構成します。
IAMユーザー名
- 推奨命名規則に従い
[あなたのIAMユーザー名](サービスアカウント形式等)とします。これでアクセスキーおよびシークレットアクセスキーを発行します。
IAMポリシー (JSON形式)
対象のバケット(ここでは [あなたのS3バケット名])に対する保存(s3:PutObject)とリスト取得(s3:ListBucket 等)のみを許可するポリシーを作成します。
{
"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 フローの作成
次に、SharePoint側の変更を検知しS3にCSVを出力する4つのアクションを設定します。
1. トリガー: SharePoint アイテムが作成または変更されたとき
リストの変更情報を検知してフローを起動します。
-
対象サイト: [対象のSharePointサイト名] (
https://[あなたのテナント名].sharepoint.com/sites/[サイト名]) - 対象リスト: [対象のリスト名]
2. アクション: 複数の項目の取得 (Get items)
AWS S3へアップロードしたいSharePointの全リストアイテムを取得します。
3. アクション: CSVテーブルの作成 (Create CSV table)
取得したデータをCSVフォーマットの文字列に結合します。
- 選択 (From): 「複数の項目の取得」の「値 (value)」を指定
- 列 (Columns): 「自動」を選択することでリストの全列が出力されます。
4. アクション: Put Object (Amazon S3)
発行済みのアクセスキーを使ってS3へアップロードします。
利用するコネクタについての注意点
ここで使用するS3コネクタは、標準で用意されているものではなく 「Amazon S3 バケット (独立パブリッシャー) (プレビュー)」 というコネクタです。コミュニティ・独立パブリッシャーによって提供されているプレビュー版のコネクタであるため、通常のMicrosoft公式AWSコネクタとは経路やサポート体制が異なる点に留意して利用してください。
-
Region:
ap-northeast-1(東京リージョン) -
Bucket:
[あなたのS3バケット名] -
Key (ファイル名): 一意のファイル名を付け、更新のたびに履歴を残すため以下の式で日本時間(JST)のタイムスタンプを付与します。
concat('item_list_', formatDateTime(addHours(utcNow(), 9), 'yyyyMMdd_HHmm'), '.csv') - Content: 1つ前のアクションである「CSVテーブルの作成」の「出力 (Output)」を指定
実運用のポイント
システムの信頼性を高めるために以下の点を意識して構築しています。
- 履歴管理: タイムスタンプ埋め込みにより、ファイルの上書きを防ぎ版管理を実現。
- セキュリティ: 最低限のS3操作のみを許可したIAMポリシーの運用。
まとめ
今回はPower AutomateからAWS S3へのデータエクスポート・アップロード方法を紹介しました。ポイントは以下の通りです。
- AWS側は厳格なIAMポリシーで安全性を高めること