第2章 小さく試す はじめて

ページの配信と権限を試す

ブラウザーからCloudFront、S3へ届く要求をたどります。コピーの有無と、許可されない操作の違いを模擬環境で比べます。

  • AWS
  • 入門
  • 図解

構成を声に出して読む

利用者のブラウザーが要求し、CloudFrontが受け、必要ならS3から元のデータを取ります。この元の場所をオリジンと呼びます。

図は一つの静的ページに絞った例です。実際にはDNS、暗号化された接続、キャッシュの設定なども関係します。

触って理解する / 模擬環境

ページが届くまで

このブラウザー内だけで動きます。実際のファイル変更・通信・AWS利用・課金は発生しません。

ブラウザー
まだ表示なし
CloudFront
コピーなし
S3
index.html を保存
開始

静的ページの配信例。HTMLは表示内容を書いたファイルです。S3に置き、CloudFrontから届けます。

1 / 5
図解の全手順を文章で読む
  1. 開始

    静的ページの配信例。HTMLは表示内容を書いたファイルです。S3に置き、CloudFrontから届けます。

    • ブラウザー:まだ表示なし
    • CloudFront:コピーなし
    • S3:index.html を保存
  2. ページを要求

    DNSで届け先を調べ、CloudFrontへ要求します。DNSは名前から接続先を調べるしくみです。

    • ブラウザー:index.html を要求 →
    • CloudFront:要求を受信
    • S3:index.html を保存
  3. 元データを取得

    有効なコピーがないので、CloudFrontがS3から取得します。S3を公開バケットにする必要はありません。

    • ブラウザー:応答を待つ
    • CloudFront:S3へ要求 →
    • S3:許可された取得に応答
  4. 表示する

    CloudFrontが応答を返します。設定で許された期間、コピーを保持できます。

    • ブラウザー:ページを表示
    • CloudFront:コピーを保持 →
    • S3:元データを保持
  5. もう一度要求

    この例では有効なコピーがあるためS3への取得を省きます。期限切れなどでは再取得します。

    • ブラウザー:ページを再表示
    • CloudFront:コピーから応答 →
    • S3:今回は取得なし

コピーがあれば元データを取りに行かない

二回目はS3への取得が省かれました。これは有効なコピーがあるという条件付きです。常に最新の内容が即座に届く、と考えないようにします。

S3にはCloudFrontから取得させる構成を使えます。実設定ではOAC(オリジンへのアクセス制御)などを使い、バケットを誰にでも公開する方法と区別します。

IAMは操作の許可を管理する

IAMは利用者やプログラムの権限を管理します。ロールは、必要な権限を引き受けるための役割です。ポリシーは、許可などを記述するルールです。

下の例はIAMの考え方を簡略化しています。実際の判定には複数のポリシーや明示的な拒否も関わり、チェック一つでアクセスできるわけではありません。

触って理解する / 模擬環境

権限がないときは?

このブラウザー内だけで動きます。実際のファイル変更・通信・AWS利用・課金は発生しません。

要求する役割
配信用の役割
許可
許可なし
結果
まだ要求なし
開始

IAMは「誰が、どの操作を、何にできるか」を管理します。ここは簡略化した模擬判定です。

1 / 4
図解の全手順を文章で読む
  1. 開始

    IAMは「誰が、どの操作を、何にできるか」を管理します。ここは簡略化した模擬判定です。

    • 要求する役割:配信用の役割
    • 許可:許可なし
    • 結果:まだ要求なし
  2. GetObjectを要求

    GetObjectはオブジェクトの内容を取得する操作です。初期状態では許可がありません。

    • 要求する役割:配信用の役割
    • 許可:許可なし
    • 結果:拒否:AccessDenied
  3. 対象を絞って許可

    実設定は行いません。指定した配信用ファイルの取得だけを許す場合を比べます。

    • 要求する役割:配信用の役割
    • 許可:index.html の取得のみ
    • 結果:GetObject:許可
  4. DeleteObjectを要求

    削除の権限は与えていないので拒否されます。必要最小限の権限という考え方です。

    • 要求する役割:配信用の役割
    • 許可:index.html の取得のみ
    • 結果:DeleteObject:拒否

拒否されたら見るところ

AccessDeniedは、操作が許されなかったという意味です。誰として操作したか、何をしたか、どのデータを対象にしたかを確認します。

とりあえず管理者権限にするのではなく、必要な操作と対象を絞ります。人の利用には一時的な認証情報と多要素認証、プログラムにはロールを使う設計を検討します。

多要素認証は、パスワードに加えて別の確認方法を使うことです。アカウント全体を管理するルートユーザーを日常作業に使わず、秘密のキーを記事やGitに貼りません。

次に確認すること

権限が正しくても料金の条件は別です。料金と片付けを読んで、実環境へ進む前の確認項目を整理しましょう。

公式資料と確認日

確認日:2026年10月31日。図解は学習用に簡略化しています。

このトリセツの他の章

AWSのトリセツ のもくじへ →

このトリセツについて

XAPPS が作っています

書いている人は エンディ。アプリとブログを作って暮らしています。むずかしいことを、やさしい手順に直すのが好きです。