In Silico

クラウド

Amazon S3とは?バケットとオブジェクトの仕組み、料金と公開設定

2026/10/17 シリーズ「AWS 入門」 第7回 / 全8回

シリーズAWS 入門全8回
  1. 第1回AWSとは?できることと仕組み、主要サービスをわかりやすく解説
  2. 第2回AWSマルチアカウントとは?分ける理由とOrganizationsの設計
  3. 第3回AWS IAMロールとポリシーの違いとは?使い分けと許可の決まり方
  4. 第4回AWS VPC設計入門:CIDRの決め方とサブネットの分け方
  5. 第5回Amazon EC2とは?インスタンスの起動・料金・タイプの選び方
  6. 第6回AWS Lambdaとは?サーバーレスの仕組みと動かし方の基本
  7. 第7回Amazon S3とは?バケットとオブジェクトの仕組み、料金と公開設定
  8. 第8回準備中

このシリーズの紹介へシリーズ一覧へ

  • Amazon S3
  • バケット
  • オブジェクトストレージ
  • クラウド
  • AWS
  • オブジェクト
  • キー
  • プレフィックス
  • ストレージクラス
  • ライフサイクル
  • S3 Glacier
  • Intelligent-Tiering
  • ブロックパブリックアクセス
  • バケットポリシー
  • 署名付き URL
  • バージョニング
  • 強い整合性
  • CloudFront
  • 料金
  • Well-Architected
目次
背景・問い・要点
背景

Amazon S3(Simple Storage Service)は、AWS のオブジェクトストレージのサービスである1。オブジェクトストレージは、ファイルを、それを説明する情報(メタデータ)と一組にして「オブジェクト」として保存する仕組みで、S3 ではオブジェクトをバケットという入れ物に入れる1。バケットは、名前と、リージョン(AWS が設備を置く地域)を決めて作る1。

S3 は 2006 年 3 月(14 日、米国時間)に公開された2。S3 の VP でディスティングイッシュトエンジニアの Andy Warfield は、2025 年の寄稿で、S3 を AWS が一般に出した最初のサービスだと書いている3。AWS は、S3 のデータの耐久性を 99.999999999%(イレブンナイン)を超えるように設計しており、一つのゾーンにだけ置く一部のクラスを除いて、既定では少なくとも三つのアベイラビリティーゾーン(リージョンの中で互いに離れたデータセンターの群)にデータを分けて保存する4。

問い

S3 とは何で、データをどんな形で置くのか。料金は何で決まるのか。バケットの中身を外に渡すとき、何に気をつければよいのか。

要点

S3 は、バケットの中に、キーで名前を付けたオブジェクトを置くストレージである。料金は、保存した量と期間、ストレージクラス、リクエストの回数、外へのデータ転送で決まる。S3 のバケットとオブジェクトは、もともと既定で非公開である。2017 年には公開の設定の誤りによるデータの露出が相次いで報告された。AWS は 2018 年に公開を遮断する仕組みを加え、2023 年からはそれを新しいバケットの既定にした。AWS は遮断の設定をすべて有効にし、公開のバケットに頼る作りは慎重に決めるよう勧めている。

モデル・例示

請求書の PDF を取引先に渡す

※ この節の数値は説明のための仮定で、測定値ではありません。

ある会社の経理の担当者が、取引先に渡す請求書の PDF を S3 に置くことにした。東京リージョンにバケットを作り、2026/10/invoice-1024.pdf というキーで請求書をアップロードした。キーは、バケットの中でオブジェクトを指す名前である1。

  1. 経理の担当者S31. キー 2026/10/invoice-1024.pdf で請求書を置く
  2. S3経理の担当者2. 置いた。既定で暗号化した
  3. 経理の担当者取引先3. オブジェクトの URL を送る
  4. 取引先S34. URL を開く
  5. S3取引先5. 拒否する。読む権限が無い
  6. 経理の担当者取引先6. 開けなかったと聞き、1 時間だけ使える署名付き URL を送り直す
  7. 取引先S37. 署名付き URL を開く
  8. S3取引先8. 期限内なので、請求書を返す
※概念図(やりとり):本文の手順を図式化したもの。

オブジェクトには、バケットの名前とキーからなる URL がある。しかし S3 のバケットとオブジェクトは、もともと既定で非公開で、誰かに読む権限を与えない限り、URL を知っていても読めない5。

署名付き URL は、担当者が自分の権限で作る、期限付きの URL である。バケットの設定を変えずに、決まったオブジェクトを期限まで読ませられる6。担当者は、バケットを公開に切り替えるのではなく、この URL で一つの請求書だけを渡した。

コンソール(AWS をブラウザから操作する画面)では、2026 と 10 というフォルダーの中に請求書があるように見える。しかし S3 のバケットに階層は無く、「2026/10/」はキーの先頭の文字列(プレフィックス)である7。

バケットとオブジェクトとキー

S3 のデータは、階層の無いフラットな構造で置かれる。バケットを作り、そこにオブジェクトを置く。バケットの中にバケットやフォルダーの階層は無く、キーの先頭の文字列と「/」の区切りで、階層があるように扱う7。オブジェクトは、ファイルとそれを説明するメタデータの組で、バケットはオブジェクトの入れ物である1。

バケットの名前は、既定では、同じ区分の中のすべてのアカウントとリージョンで一つだけでなければならない。区分は、通常のリージョン全体と、中国や米国政府向けなどのリージョンに分かれている8。

S3 は、マネジメントコンソール、コマンドで操作する AWS CLI、プログラムから使う SDK、そして HTTPS で呼ぶ操作の窓口(API)から使える1。2020 年 12 月からは、オブジェクトを書いた直後に読むと、必ず書いた内容が返る(強い整合性)。AWS は「書いたものが、そのまま読める」と説明している9。

料金とストレージクラス

S3 の料金は、主に次のもので決まる10。

ストレージクラスは、データを読む頻度に合わせて選ぶ、保存の種類である。読む頻度が低いクラスほど保存の単価は下がるが、最低保存期間と取り出しの料金がかかる11。

ストレージクラス向くデータと条件
S3 Standardよく読むデータ。既定のクラス。最低保存期間も取り出しの料金も無い
S3 Intelligent-Tiering読む頻度が分からないデータ。オブジェクトごとに監視の料金がかかり、使われ方に合わせて自動で安い層へ移す
S3 Standard-IA月に一度ほど読むデータ。最低保存期間は 30 日で、取り出しの料金がかかる
S3 One Zone-IA作り直せるデータ。一つのゾーンにだけ置くので、ゾーンを失うと失われうる。最低保存期間は 30 日で、取り出しの料金がかかる
S3 Glacier の三つのクラス長く保管するデータ。最低保存期間は 90〜180 日。Flexible Retrieval と Deep Archive は、読む前に復元が要り、数分から数時間かかる

最低保存期間より前に消したり別のクラスへ移したりすると、残りの期間の分も料金がかかる1112。

クラスは、ライフサイクルの設定で自動で移せる。ライフサイクルは、オブジェクトの群に対して S3 が行う動作を決めた規則の組で、別のクラスへ移す動作と、期限が来たら消す動作がある13。AWS の Well-Architected フレームワークのコスト最適化の柱も、保存の期間と移し先を決めて自動で移し、消すことで、保存の費用を下げるよう勧めている14。

誰に読ませるか:既定の非公開と、公開の遮断

S3 の中身を誰が読めるかは、主に二つのポリシーで決まる。IAM(AWS の権限の仕組み)のポリシーは、ユーザーやロール(AWS を操作する ID)の側に付けて、何をしてよいかを書く。バケットポリシーは、バケットの側に付けて、そのバケットとオブジェクトに誰が触れるかを書く15。ほかに、バケットやオブジェクトに個別に付ける古い権限の仕組みとして ACL がある16。

既定では誰にも読ませないが、ポリシーや ACL で公開を許す設定を誤って付けると、中身が誰にでも読める。2017 年には、そうした事故が相次いで報告された。セキュリティの会社 UpGuard は、Verizon のパートナー企業、Dow Jones、Accenture のバケットが、外から読める状態になっていたと報告した171819。Dow Jones のバケットは、AWS のアカウントを持つ人なら誰でも読める設定だった18。

AWS は 2018 年に、公開を止める仕組みとして S3 ブロックパブリックアクセスを加えた5。設定は四つあり、アカウント、バケット、アクセスポイント(バケットへの専用の入口)のそれぞれに付けられる20。二つは ACL による公開を止め、残りの二つはバケットポリシーによる公開を止める。

AWS は、アカウントのすべてのバケットとオブジェクトの公開を確実に止めるため、アカウントで四つすべてを有効にするよう勧めている20。

2023 年には、AWS は既定の設定を変えた。1 月 5 日からは、S3 に新しく置くすべてのオブジェクトを、追加の料金なしで暗号化している。暗号化されていなかった既存のバケットにも既定の暗号化が入ったが、すでに置いてあったオブジェクトは暗号化されない2122。

4 月からは、新しいバケットで、ブロックパブリックアクセスを有効にし、ACL を無効にした状態を既定にし、4 月 27 日までにすべてのリージョンに広げた235。この二つは、変更の前から、コンソールで作るバケットでは既定になっていて、AWS が以前からベストプラクティスとして勧めてきたものだという。AWS は、公開のバケットや ACL に頼る新しいバケットは慎重に考えて作るよう勧め、ほとんどのアプリケーションには、そのどちらも要らないとしている5。Well-Architected のセキュリティの柱も、保存したデータを暗号化と適切なアクセスの制御で守るよう求めている24。

外に渡す方法:署名付き URL、CloudFront、静的サイト

公開の遮断を有効にしたまま中身を外に渡す方法は、主に二つある。

S3 には、静的なウェブサイトを配る機能もある26。この機能でバケットから直接配るには、バケットを公開して誰でも読めるようにする必要がある2728。また、S3 のウェブサイトの入口は HTTPS に対応していない。AWS は、Amplify Hosting(CloudFront の配信網を使ってサイトを公開する AWS のサービス)か CloudFront を使って配るよう案内している2628。

消したときに戻す:バージョニング

バージョニングは、一つのオブジェクトの複数の版を、同じバケットに残す仕組みである。誤って消したり上書きしたりしたオブジェクトを戻せる。バージョニングを有効にしたバケットでオブジェクトを消すと、S3 は中身を消さずに「削除マーカー」を置く。バージョニングは、既定では無効である。残した古い版も保存の料金の対象になるので、ライフサイクルで古い版を消す規則と組み合わせる29。

データ転送の料金への異論

S3 の料金のうち、外へのデータ転送には異論もある。CDN(コンテンツ配信網)を提供する Cloudflare の Matthew Prince と Nitin Rao は 2021 年に、AWS はデータを入れるより出すほうに高い料金をかけていると書き、顧客をクラウドに閉じ込めるためだと主張した30。Cloudflare は AWS と競合する事業者で、これは同社の主張である。

S3 のバケットは、公開の遮断を有効のまま使う

S3 は、バケットの中に、キーで名前を付けたオブジェクトを置くストレージである。料金は、保存した量と期間、ストレージクラス、リクエスト、外へのデータ転送で決まり、使う頻度の低いデータはライフサイクルで安いクラスへ移せる。

S3 のバケットとオブジェクトは、もともと既定で非公開である。2017 年には公開の設定の誤りによる露出が相次いで報告された。AWS は 2018 年に公開を遮断する仕組みを加え、2023 年からは新しいバケットの既定にした。AWS は四つの遮断の設定をすべて有効にし、公開のバケットに頼る作りは慎重に決めるよう勧めている。決まった相手に渡すなら署名付き URL を、広く配るなら CloudFront を使えば、バケットそのものは公開しなくてよい。

出典30件
  1. AWS「What is Amazon S3?」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html ↩ ↩2 ↩3 ↩4 ↩5 ↩6

  2. Jeff Barr「Amazon S3」AWS News Blog、2006年3月14日、2026年10月17日取得. https://aws.amazon.com/blogs/aws/amazon_s3/ ↩

  3. Andy Warfield「In S3 simplicity is table stakes」All Things Distributed、2025年3月、2026年10月17日取得. https://www.allthingsdistributed.com/2025/03/in-s3-simplicity-is-table-stakes.html ↩

  4. AWS「Amazon S3 Storage Classes」2026年10月17日取得. https://aws.amazon.com/s3/storage-classes/ ↩

  5. Jeff Barr「Heads-Up: Amazon S3 Security Changes Are Coming in April of 2023」AWS News Blog、2022年12月13日(2023年4月27日更新)、2026年10月17日取得. https://aws.amazon.com/blogs/aws/heads-up-amazon-s3-security-changes-are-coming-in-april-of-2023/ ↩ ↩2 ↩3 ↩4

  6. AWS「Download and upload objects with presigned URLs」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html — 期限までは何度でも使える。 ↩ ↩2 ↩3

  7. AWS「Naming Amazon S3 objects」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html ↩ ↩2

  8. AWS「General purpose bucket naming rules」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html — 区分は aws、aws-cn、aws-us-gov など。アカウントだけが使える名前空間を選ぶこともできる。 ↩

  9. Jeff Barr「Amazon S3 Update – Strong Read-After-Write Consistency」AWS News Blog、2020年12月1日、2026年10月17日取得. https://aws.amazon.com/blogs/aws/amazon-s3-update-strong-read-after-write-consistency/ ↩

  10. AWS「Amazon S3 Pricing」2026年10月17日取得. https://aws.amazon.com/s3/pricing/ ↩

  11. AWS「Understanding and managing Amazon S3 storage classes」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html ↩ ↩2

  12. AWS「Transitioning objects using Amazon S3 Lifecycle」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-transition-general-considerations.html ↩

  13. AWS「Managing the lifecycle of objects」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html ↩

  14. AWS「COST04-BP05 Enforce data retention policies」(Well-Architected コスト最適化の柱)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/cost_decomissioning_resources_data_retention.html ↩

  15. Kai Zhao ほか「IAM Policies and Bucket Policies and ACLs! Oh, My! (Controlling Access to S3 Resources)」AWS Security Blog、2023年7月7日、2026年10月17日取得. https://aws.amazon.com/blogs/security/iam-policies-and-bucket-policies-and-acls-oh-my-controlling-access-to-s3-resources/ ↩

  16. AWS「Controlling ownership of objects and disabling ACLs」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html ↩

  17. UpGuard「Cloud Leak: How A Verizon Partner Exposed Millions of Customer Accounts」2017年7月12日、2026年10月17日取得. https://www.upguard.com/breaches/verizon-cloud-leak ↩

  18. UpGuard「Cloud Leak: WSJ Parent Company Dow Jones Exposed Customer Data」2017年7月17日、2026年10月17日取得. https://www.upguard.com/breaches/cloud-leak-dow-jones ↩ ↩2

  19. UpGuard「System Shock: How A Cloud Leak Exposed Accenture’s Business」2017年10月10日、2026年10月17日取得. https://www.upguard.com/breaches/cloud-leak-accenture ↩

  20. AWS「Blocking public access to your Amazon S3 storage」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-control-block-public-access.html ↩ ↩2

  21. AWS「Amazon S3 now automatically encrypts all new objects」2023年1月5日、2026年10月17日取得. https://aws.amazon.com/about-aws/whats-new/2023/01/amazon-s3-automatically-encrypts-new-objects/ ↩

  22. AWS「Default encryption FAQ」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/default-encryption-faq.html ↩

  23. AWS「Amazon S3 beginning to apply two security best practices to all new buckets by default」2023年4月5日、2026年10月17日取得. https://aws.amazon.com/about-aws/whats-new/2023/04/amazon-s3-two-security-best-practices-buckets-default/ ↩

  24. AWS「Protecting data at rest」(Well-Architected セキュリティの柱)2026年10月17日取得. https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/protecting-data-at-rest.html ↩

  25. AWS「Restrict access to an Amazon S3 origin」(Amazon CloudFront デベロッパーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html ↩

  26. AWS「Hosting a static website using Amazon S3」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html ↩ ↩2

  27. AWS「Examples of Amazon S3 bucket policies」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html ↩

  28. AWS「Website endpoints」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteEndpoints.html ↩ ↩2

  29. AWS「Retaining multiple versions of objects with S3 Versioning」(Amazon S3 ユーザーガイド)2026年10月17日取得. https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html ↩

  30. Matthew Prince、Nitin Rao「AWS’s Egregious Egress」The Cloudflare Blog、2021年7月23日、2026年10月17日取得. https://blog.cloudflare.com/aws-egregious-egress/ — 著者は AWS と競合する Cloudflare の経営陣。 ↩

この記事はAIを使用して執筆されました。内容には誤りが含まれる可能性があります。事実や数字の出典は脚注から確かめられます。