#author("2022-03-21T05:08:36+00:00","default:hotate","hotate") #author("2023-06-04T00:10:41+00:00;2022-03-21T05:08:36+00:00","default:hotate","hotate") #contents &tag(AWS, AmazonS3); &tag(AWS,AmazonS3); * 情報 [#n128ee73] ** [[2020]]年 [#s0390110] - [[【注意喚起】 2020年9月30日以降、パス形式での S3 API リクエストは受け付けられなくなります。 | DevelopersIO>https://dev.classmethod.jp/cloud/aws/s3-no-longer-support-path-style-requests/]] (2019/5/1) パス形式(2020.09.30 以降、サポート終了) 下記のように、パス部分にバケット名が含まれる形式の指定方法です。 バージニアは s3.amazonaws.com ですが、それ以外のリージョンは s3-ap-northeast-1 のようにリージョン名を含みます。 2020年9月30日以降、この形式で S3 API リクエストしても受け付けられなくなります。 2020年9月30日以前に作成されているバケットは、パス形式廃止対象から除外になった - [[Amazon S3 の低冗長化ストレージ | Developers.IO>https://dev.classmethod.jp/cloud/amazon-s3-rrs/]] できるだけ利用料金を減らしたいと思う訳で、低冗長化ストレージサービスを指定することができます。これを指定すると、30%以上値引きされます。 ** URL [#gbf6f2a7] - 認証付きURLを生成する方法 -- [[Cyberduck>http://cyberduck.ch/]] :1時間、1日、1週間から選択可能 -- [[S3Fox Organizer>http://www.s3fox.net/]]:任意の時間を指定して生成可能 -- AWSのコンソール画面:生成不可 - [[[小ネタ]S3の署名付きURLを利用して、非AWSユーザにWindows PCからファイルをアップロードしてもらった話 | DevelopersIO>https://dev.classmethod.jp/cloud/aws/upload-file-by-non-aws-user-with-s3-presigned-url/]] この署名付きURLを発行するCredentialに、対象S3バケットへの書き込み権限が必要となります - [[【AWS S3】S3 Presigned URLの仕組みを調べてみた - Qiita>https://qiita.com/tmiki/items/87697d3d3d5330c6fc08]] URLの生成方法、利用方法についての説明はあるものの、その仕組みについて触れたものはほとんどなかったため、記事にまとめました。 ** サイズ [#rb4775bf] - [[S3のバケット毎の使用量が欲しいんです | Developers.IO>http://dev.classmethod.jp/cloud/aws/sugano-003-s3/]] バケット名の一覧が欲しければ素直に「aws s3 ls」を使おう 「aws s3 ls」コマンドに「--summarize」オプションを付けるとバケット使用量が取得できる 「aws s3 ls --summarize」コマンドでは日本語のファイル名を使っているとエラーになる場合がある(修正される可能性大) CloudWatchのメトリクスにS3バケットの使用量があった - コメント:[[s3cmd]]でも同様の情報は取得可能。 Disk usage by buckets s3cmd du [s3://BUCKET[/PREFIX]] -- でも"aws"コマンドの方が表示は分かりやすい。(2020/02/23) $ aws s3 ls s3://... --recursive --human-readable --summarize --region ap-northeast-1 Total Objects: 11 Total Size: 1.2 GiB ** 暗号化 [#pb4584bc] - [[S3の暗号化についてまとめてみた(2018年6月版) - 本日も乙>https://blog.jicoman.info/2018/06/s3-encryption/]] 暗号化に求められるセキュリティ要件に制約がなければ、SSE-S3によるデフォルト暗号化が最も無難でアプリケーション側の変更もなく、おすすめだと思います。 - [[Amazon S3 でのオブジェクトの暗号化 | TECHSCORE BLOG>https://www.techscore.com/blog/2016/12/12/amazon-s3-server-side-encryption/]] バケットポリシーで x-amz-server-side-encryption ヘッダーのチェックを行えば、S3 へのオブジェクト保存時に暗号化を強制することができます。 - [[Amazon S3暗号化と運用 | Developers.IO>https://dev.classmethod.jp/cloud/aws/running-s3-encryption/]] SSEは鍵がAWSで管理されますので、最も手間をかけずに暗号化できる方式ですが、悪意のある第三者がオブジェクトへのアクセス権を得ると、暗号化が掛かっていようといまいと関係なく復号化されたファイルをダウンロードできてしまいます。 ** Storage Lensダッシュボード [#k174775e] - [[S3 Storage Lens - Qiita>https://qiita.com/pioho07/items/69c06bfbec757eee43b7]] (2020/11/23) S3の利用状況(容量やPUT APIリクエスト数のトレンドを見たり、ストレージクラスをスタンダードで使ってる割合分布を見たり)を可視化して分析するものです。 - [[[小ネタ] Amazon S3 Storage Lensダッシュボードはrootユーザでは表示できない! | DevelopersIO>https://dev.classmethod.jp/articles/amazon-s3-storage-lens-root-user-cannot-view-dashboard/]] rootユーザで行えない操作はめずらしく、また普段遭遇することも少ないかと思うのでまとめておきます。 ** [[ログ]] [#b2532bac] - [[S3 の サーバーアクセスログを有効にしましたが、いくら待ってもログが記録されません。なぜでしょうか? | DevelopersIO>https://dev.classmethod.jp/articles/tsnote-s3-i-have-enabled-server-access-logging-for-s3-but-no-matter-how-long-i-wait-no-logs-are-recorded/]] (2021/10/22) ログの出力先バケットで次の条件を満たしているか確認してください。 1. 「デフォルトの暗号化」が無効、もしくは有効でかつ Amazon S3 マスターキーになっている 2. 「オブジェクトロック」が無効になっている 3. 「アクセスコントロールリスト」で「S3 ログ配信グループ」のアクセスを許可している 4. 「バケットポリシー」でログ配信を許可している * 設定 [#d6d6e61f] ** 権限 [#nfd675a7] - [[S3で誤ったデータの公開を防ぐパブリックアクセス設定機能が追加されました | DevelopersIO>https://dev.classmethod.jp/articles/s3-block-public-access/]] (2018/11/18) 全AWSユーザが今すぐ設定したほうがいいS3のセキュリティを向上するアップデートです。パブリックアクセス設定を有効化して誤ったS3オブジェクトの公開を防ぎましょう。 - [[S3のブロックパブリックアクセスが怖くなくなった【AWS S3】>https://zenn.dev/ymasutani/articles/019959e7c990b1]] (2021/03/04) あの複雑怪奇な説明も絵に当てはめてみると意外とシンプルで理にかなった設定だと分かるのではないでしょうか。 - [[S3の特定パスのみに対して全ての操作が可能なIAMポリシー | DevelopersIO>https://dev.classmethod.jp/articles/access-control-on-specific-path-on-s3bucket/]] ([[2017]]/03/09) 今回エラーとなって実行できていないListObjectsをする為には、s3:ListBucket権限が必要なことがわかりました。 * ツール [#oaa94eca] ** s3sync ([[awscli]]) [#w4a55549] - [[awscliのs3 syncコマンドを使ってAmazon S3にデータをバックアップ - Qiita>http://qiita.com/kmdsbng/items/437e4980c9fe81e788ee]] バックアップ先となるS3のBucketを作るところから、aws s3 syncを使ってバックアップするまでの手順を説明します。 ** s3sync [#aaebe83e] - [[S3Sync.rbでS3にファイルをバックアップする - azuki note>http://d.hatena.ne.jp/w650/20110325/1300980798]] - [[Amazon EC2/S3を使ってみた - 8.EC2とS3のデータを同期させる(S3Syncを使う) - RX-7乗りの適当な日々>http://d.hatena.ne.jp/rx7/20080816/p1]] ** [[s3cmd]] [#x15655ce] * 静的コンテンツ [#wc8838e3] - [[Hugoを使ってAmazon S3でウェブサイトを構築してみた | Developers.IO>https://dev.classmethod.jp/cloud/hugo-s3/]] Hugoとは、Static Site Generatorの1つです。Static Site Generatorとは、記事用のテンプレートファイルを元に HTMLファイルを生成してくれるツールです。 - [[S3 静的ウェブサイトにサーバーレスなお問い合わせフォームを実装してみた(Amazon SES + AWS Lambda + API Gateway) | DevelopersIO>https://dev.classmethod.jp/articles/serverless-mailform-s3-website-hosting/]] (2021/11/17) 今回は AWS のクラウドサービスをフル活用し、完全にサーバーレスで動作するメールフォームを構築してみました。 * 関連 [#w51748ef] #taglist(tag=AmazonS3)