XEROTTA

新入社員の学び / AWS初級者 / 講座9

AWS BASICS / COURSE 09

S3とCloudFrontを使ってHTTPS公開する

S3を非公開に保ち、OACで読み取るCloudFrontから標準HTTPS URLで公開できる。

アニメと具体例手順付き演習成果物とレビュー進捗保存・完了チェック

まずは、図でつかもう

1 / 4

ファイルを保管し、利用者へ届ける構成です。OACは独立した中継サーバーではなく、CloudFrontが非公開S3へアクセスするための仕組みです。閲覧要求は利用者からCloudFrontへ進み、必要に応じてS3から取得します。

01 / AWS BASICS

学習目標と所要時間

S3を非公開に保ち、OACで読み取るCloudFrontから標準HTTPS URLで公開できる。

第9章 / 全12章目安 120分(説明・演習・確認)

前提:前章までのファイルと学習記録を用意します。

この教材は受講者本人が操作するための教育ページです。契約・課金変更・外部連携・リソース作成は自動実行しません。外部手順は条件を理解した受講者本人が実施します。
S3とCloudFrontを使ってHTTPS公開するの学習内容を表した仕組みのイメージ図

02 / AWS BASICS

説明:仕組みと具体例

この章の考え方

詳しく見る

S3は汎用バケットを使い、Block Public Accessの4項目をすべて有効、Object OwnershipはBucket owner enforced(ACLを使わない所有管理)にします。静的ウェブサイトホスティングは有効にしません。CloudFrontのオリジン(配信元)はS3の通常のRESTエンドポイントです。websiteエンドポイントではOACが使えません。

具体的な仕組み

詳しく見る

OACはCloudFrontからS3への要求に署名し、バケットポリシーが指定したディストリビューションだけを許可します。署名はAlways/推奨を選び、CloudFront→S3もHTTPSにします。ポリシーのPrincipalはCloudFrontサービス、許可は読み取りs3:GetObjectのみ、SourceArnは自分のアカウントIDと正しいディストリビューションIDに限定します。匿名公開Principal:*にはしません。

使うときの判断

詳しく見る

閲覧者側はRedirect HTTP to HTTPS、許可メソッドはGET/HEAD、デフォルトルートオブジェクトはindex.htmlです。標準cloudfront.netドメインの証明書で学習でき、独自ドメインやACM証明書の手動追加は不要です。基本は単一オリジン・標準ディストリビューションです。不要なWAF・ログ保存先・追加サービスは追加せず、画面で自動追加がないか確認します。

構成と権限

詳しく見る

キャッシュは初回学習ではManaged-CachingDisabledを選び、更新時の混乱を減らします。その分S3への取得が増える可能性があります。性能を学ぶ発展課題では最小TTL0の適切なポリシーを設計します。CachingOptimizedには最小TTLがあるため、単にno-cacheを書けば必ず即時更新されるとは限りません。

03 / AWS BASICS

場面で学ぶ:S3とCloudFrontを使ってHTTPS公開する

場面を順に追う解説アニメです。初期状態は停止しています。「次の場面」でゆっくり読むか、自動再生を選べます。動きを減らすOS設定では手動で進めます。

学ぶこと
仕組み
実践の手順
振り返り
場面

04 / AWS BASICS

操作手順:一つずつ確かめる

  1. S3で本人が専用の汎用バケットを作成する。リージョンと一意の名前を記録し、BPA4項目ON・所有者強制・既定暗号化SSE-S3を確認する。教材ではバージョニングは無効のままとし、実データは置かない。
  2. バケット直下へindex.html、styles.css、assets/cafe.svgを階層を保ってアップロードする。フォルダーごと余分な親階層を作らない。
  3. CloudFront作成画面で従量課金の標準構成を選び、オリジンに通常のS3バケットを選ぶ。OACを新規作成・関連付けし、Always sign requestsを選ぶ。
  4. HTTPSリダイレクト・GET/HEAD・CachingDisabled・デフォルトルートindex.htmlを確認し、本人が作成する。定額や追加サービスを選んだ場合は料金条件が異なるため見直す。
  5. CloudFrontの案内するバケットポリシーを確認してS3のPermissionsへ適用する。下の独自例を使う場合は3つのYOUR_値をすべて置換する。AWSが対象用に生成した内容と照合する。
  6. Deployed等の配備完了を待ち、標準HTTPS URLを開く。S3の直接URLは匿名では読めず、CloudFrontでは読めることを確認する。BPAは解除しない。

独自の読み取り専用バケットポリシー例。3つのYOUR_値は実環境へ置換

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ReadOnlyThroughThisDistribution",
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudfront.amazonaws.com"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*",
      "Condition": {
        "StringEquals": {
          "AWS:SourceArn": "arn:aws:cloudfront::YOUR_ACCOUNT_ID:distribution/YOUR_DISTRIBUTION_ID"
        }
      }
    }
  ]
}

05 / AWS BASICS

演習:自分で変え、結果を残す

構成図にブラウザー→CloudFront→OAC→S3の矢印を書き、一般閲覧者とCloudFrontの許可の違いを説明する。

提出するもの

対象と目的/使用環境/変更した内容/期待した結果/実際の結果/失敗時に確かめたこと/まだ未実施のことを記録してください。スクリーンショットに認証情報や請求の個人情報を含めません。

07 / AWS BASICS

完了チェックと学習記録

説明できたこと、実際に確認したことだけをチェックします。学習進捗と下のメモは、このブラウザーのローカルストレージへ保存し、外部送信しません。別端末とは同期せず、サイトデータ削除・プライベートモード・保存禁止では保持できない場合があります。秘密情報は記入しないでください。

08 / AWS BASICS

よくある失敗と対処

  • AccessDeniedを直すためS3を公開:OAC・SourceArn・オブジェクトキーを点検する。
  • トップだけ403:default root objectとindex.htmlの大小文字・階層を確認する。

09 / AWS BASICS

確認日と公式資料

公式情報の確認日:2026年10月25日(日本時間)。画面・上限・契約条件は変わるため、実行前にも公式資料と自分の契約を確認してください。ログや画面の例は説明用で、実環境の操作結果ではありません。

講師向け:事前準備・つまずき・評価基準 →