3
4

More than 1 year has passed since last update.

CloudFrontの署名付きURLを使ってS3にファイルをアップロードする

Posted at

概要

CloudFrontの署名付きURLを使ってS3にアップロードしたファイルをブラウザから直接ダウンロードする方法は調べるといくつか出てくるが、アップロードの情報が少なかったので備忘録として書いておく。

今回はS3のpresigned-urlを使ってファイルアップロードするのではなくCloudFront経由でファイルアップロードする必要があった。
BackendをGolangで作っており、署名付きURL実装もGolangで実装していたため、SDKのリファレンスを眺めていたが関連しそうなものがなかった。

結論

CloudFrontに署名付きURLの設定を行うと自動的にS3のバケットポリシーを追加してくれるが、そこにActionを追加してから生成した署名付きURLにputでリクエストするだけで良かった。

{
    "Version": "2008-10-17",
    "Id": "PolicyForCloudFrontPrivateContent",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity *****"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject"  ←これを追加
            ],
            "Resource": "arn:aws:s3:::S3のドメイン/*"
        }
    ]
}
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4