教學課程:在 Amazon S3 上設定靜態網站 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:在 Amazon S3 上設定靜態網站

重要

Amazon S3 現在會使用 Amazon S3 受管金鑰 (SSE-S3) 套用伺服器端加密,做為 Amazon S3 中每個儲存貯體的加密基礎層級。從 2023 年 1 月 5 日起,所有上傳到 Amazon S3 的新物件都會自動加密,無需額外費用,也不會影響效能。S3 儲存貯體預設加密組態和新物件上傳的自動加密狀態可在 AWS CloudTrail 日誌、S3 庫存、S3 儲存鏡頭、Amazon S3 API 主控台,以及在 AWS Command Line Interface 以及 AWS SDKs。如需詳細資訊,請參閱預設加密FAQ

您可以配置 Amazon S3 儲存貯體配置成網站一般地運作。此範例會演練如何在 Amazon S3 上託管網站的步驟。

重要

下列教學課程需要停用「封鎖公開存取」。我們建議將「封鎖公開存取」保持啟用狀態。如果您想要保持啟用所有四個「封鎖公用存取」設定並託管靜態網站,可以使用 Amazon CloudFront 原始存取控制 (OAC)。Amazon CloudFront 提供設定安全靜態網站所需的功能。Amazon S3 靜態網站僅支援HTTP端點。亞馬遜 CloudFront 使用 Amazon S3 的耐用存儲,同時提供額外的安全標頭,例如HTTPS。HTTPS通過加密一般HTTP請求並防止常見的網絡攻擊來增加安全性。如需詳細資訊,請參閱 Amazon 開 CloudFront 發人員指南中的安全靜態網站入門。

步驟 1:建立儲存貯體

以下指示提供如何為網站託管建立儲存貯體的概觀。如需建立值區的詳細 step-by-step 說明,請參閱建立儲存貯體

建立儲存貯體
  1. 登入 AWS Management Console 並打開 Amazon S3 控制台https://console.aws.amazon.com/s3/

  2. 選擇 Create bucket (建立儲存貯體)。

  3. 輸入 Bucket name (儲存貯體名稱) (例如,example.com)。

  4. ​選擇您要在其中建立儲存貯體的區域。

    建議您選擇接近您地理位置的區域以充分降低延遲及成本,或因應法規要求。您選擇的區域會決定您的 Amazon S3 網站端點。如需詳細資訊,請參閱「網站端點」。

  5. 若要接受預設設定並建立儲存貯體,請選擇 Create (建立)

步驟 2:啟用靜態網站託管

建立儲存貯體後,您就可以為儲存貯體啟用靜態網站託管。您可以建立新的儲存貯體,或使用現有的儲存貯體。

啟用靜態網站託管
  1. 登入 AWS Management Console 並打開 Amazon S3 控制台https://console.aws.amazon.com/s3/

  2. Buckets (儲存貯體名稱) 清單中,選擇希望為其啟用靜態網站託管的儲存貯體名稱。

  3. 選擇 Properties (屬性)。

  4. Static website hosting (靜態網站託管) 下,選擇 Edit (編輯)。

  5. 選擇 Use this bucket to host a website (使用此儲存貯體來託管網站)。

  6. Static website hosting (靜態網站託管) 下,選擇Enable (啟用)。

  7. 索引文件中,輸入索引文件的名稱,通常是 index.html

    索引文件名稱區分大小寫,且必須與您打算上傳到 S3 儲存貯體之HTML索引文件的檔案名稱完全相符。當您為網站託管設定儲存貯體時,必須指定索引文件。在對根網域或任何子資料夾提出請求時,Amazon S3 會傳回此索引文件。如需詳細資訊,請參閱「設定索引文件」。

  8. 若要為 4XX 類別錯誤提供自己的自訂錯誤文件,請在 Error document (錯誤文件) 中輸入自訂錯誤文件檔案名稱。

    錯誤文件名稱區分大小寫,且必須與您打算上傳到 S3 儲存貯體的HTML錯誤文件的檔案名稱完全相符。如果您未指定自訂錯誤文件且發生錯誤,Amazon S3 會傳回預設HTML錯誤文件。如需詳細資訊,請參閱設定自訂錯誤文件

  9. (選擇性) 如果您要指定進階重新導向規則,請在重新導向規則中輸入JSON以說明規則。

    例如,您可依據要求中特定的物件金鑰名稱或字首,依條件路由要求。如需詳細資訊,請參閱「配置重新引導規則以使用進階條件重新引導」。

  10. 選擇 Save changes (儲存變更)。

    Amazon S3 會為您的儲存貯體啟用靜態網站託管。在頁面底部的靜態網站託管下,您會看到儲存貯體的網站端點。

  11. Static website hosting 下,請記下 Endpoint (端點)

    端點是儲存貯體的 Amazon S3 網站端點。將儲存貯體設為靜態網站之後,您可以使用此端點來測試您的網站。

步驟 3:編輯封鎖公開存取設定

根據預設,Amazon S3 會封鎖對帳戶和儲存貯體的公開存取。如想要使用儲存貯體託管靜態網站,您可使用這些步驟編輯封鎖公有存取設定:

警告

在您完成這些步驟之前,請檢閱封鎖對 Amazon S3 儲存體的公開存取權以確保您瞭解並接受允許公開存取所涉及的風險。當您關閉封鎖公開存取設定以公開儲存貯體時,網際網路上的任何人都可以存取您的儲存貯體。我們建議您封鎖對儲存貯體的所有公用存取權。

  1. 在開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/

  2. 選擇已設定為靜態網站的儲存貯體名稱。

  3. 選擇 Permissions (許可)。

  4. Block public access (bucket settings) (封鎖公開存取 (儲存貯體設定)) (封鎖公開存取 (儲存貯體設定)) 下,選擇 Edit (編輯)。

  5. 清除 Block all public access (封鎖所有公開存取),然後選擇 Save changes (儲存變更)。

    Amazon S3 主控台,顯示區塊公用存取儲存貯體設定。

    Amazon S3 會關閉儲存貯體的封鎖公開存取設定。若要建立公用靜態網站,您可能還必須先編輯帳戶的「封鎖公開存取」設定,才能新增值區政策。如果您帳戶的「封鎖公開存取」設定目前已開啟,您會在「封鎖公開存取 (值區設定)」 下看到附註。

步驟 4:新增儲存貯體政策,將儲存貯體內容設為可供大眾讀取

編輯 S3 封鎖公用存取設定之後,您可以新增儲存貯體政策,以授予儲存貯體的公用讀取權限。當您授予公有讀取權限時,網際網路上的任何人都可以存取您的儲存貯體。

重要

以下政策僅為範例,允許完整存取您儲存貯體的內容。繼續執行此步驟之前,請檢閱如何保護 Amazon S3 儲存貯體中的檔案?,以確保您瞭解 S3 儲存貯體中檔案保護的最佳實務,以及授予公開存取權所涉及的風險。

  1. Buckets(儲存貯體) 下方,選擇儲存貯體的名稱。

  2. 選擇 Permissions (許可)。

  3. Bucket Policy (儲存貯體政策) 下方,選擇 Edit (編輯)。

  4. 若要授予您網站的公開讀取存取權,請複製以下儲存貯體政策,並將它貼上至 Bucket policy editor (儲存貯體政策編輯器)

    { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::Bucket-Name/*" ] } ] }
  5. Resource 更新為您的儲存貯體名稱。

    在前面的範例值區政策中,Bucket-Name 是值區名稱的預留位置。若要使用此儲存貯體策略與您自己的儲存貯體搭配,您必須更新此名稱以符合您的儲存貯體名稱。

  6. 選擇 Save changes (儲存變更)。

    顯示的訊息指出已成功新增儲存貯體原則。

    如果您看到指出 Policy has invalid resource 的錯誤,請確認儲存貯體政策中的儲存貯體名稱與您的儲存貯體名稱相符。如需有關新增儲存貯體原則的資訊,請參閱如何新增 S3 儲存貯體原則?

    如果您收到錯誤訊息且無法儲存貯體原則,請檢查您的帳戶和儲存貯體的封鎖公開存取設定,以確認您允許公開存取儲存貯體。

步驟 5:設定索引文件

當您為儲存貯體啟用靜態網站託管時,請輸入索引文件的名稱 (例如,index.html)。啟用值區的靜態網站代管之後,您會將具有此索引文件名稱的HTML檔案上傳到值區。

設定索引文件
  1. 建立 index.html 檔案。

    如果您沒有index.html文件,則可以使用以下命令創HTML建一個文件:

    <html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>My Website Home Page</title> </head> <body> <h1>Welcome to my website</h1> <p>Now hosted on Amazon S3!</p> </body> </html>
  2. 在本機儲存索引檔案。

    索引文件檔案名稱必須完全符合您在 Static website hosting (靜態網站託管) 對話方塊中輸入的索引文件名稱。索引文件名稱有區分大小寫。例如,如果您在 Static website hosting (靜態網站託管) 對話方塊的 Index document (索引文件) 名稱中輸入 index.html,您的索引文件檔案名稱也必須是 index.html 而非 Index.html

  3. 登入 AWS Management Console 並打開 Amazon S3 控制台https://console.aws.amazon.com/s3/

  4. Buckets (儲存貯體) 清單中,選擇您要用於託管靜態網站的儲存貯體名稱。

  5. 為您的儲存貯體啟用靜態網站,然後輸入索引文件的確切名稱 (例如,index.html)。如需詳細資訊,請參閱「啟用網站託管」。

    啟用靜態網路託管之後,請繼續執行步驟 6。

  6. 若要將索引文件上傳至您的儲存貯體,請執行下列其中一項:

    • 將索引檔拖放到主控台儲存貯體清單中。

    • 選擇 Upload (上傳),然後依照提示選擇並上傳索引檔案。

    如需 step-by-step 指示,請參閱上傳物件

  7. (選用) 將其他網站內容上傳到您的儲存貯體。

步驟 6:設定錯誤文件

當您為儲存貯體啟用靜態網站託管時,請輸入錯誤文件的名稱 (例如 404.html)。啟用值區的靜態網站代管之後,您會將含有此錯誤文件名稱的HTML檔案上傳到值區。

設定錯誤文件
  1. 建立錯誤文件,例如 404.html

  2. 將錯誤文件檔案儲存在本機。

    錯誤文件名稱區分大小寫,且須完全符合您在啟用靜態網站託管時所輸入的名稱。例如,如果您在 Static website hosting (靜態網站託管) 對話方塊的 Error document (錯誤文件) 名稱中輸入 404.html,您的錯誤文件檔案名稱也必須是 404.html

  3. 登入 AWS Management Console 並打開 Amazon S3 控制台https://console.aws.amazon.com/s3/

  4. Buckets (儲存貯體) 清單中,選擇您要用於託管靜態網站的儲存貯體名稱。

  5. 為您的儲存貯體啟用靜態網站託管,並輸入錯誤文件的確切名稱 (例如 404.html)。如需詳細資訊,請參閱 啟用網站託管設定自訂錯誤文件

    啟用靜態網路託管之後,請繼續執行步驟 6。

  6. 若要將錯誤文件上傳至您的儲存貯體,請執行下列其中一項:

    • 將錯誤文件檔案拖放至主控台儲存貯體清單中。

    • 選擇 Upload (上傳),然後依照提示選擇並上傳索引檔案。

    如需 step-by-step 指示,請參閱上傳物件

步驟 7:測試您的網站端點

在設定儲存貯體的靜態網站託管後,您就可以測試網站端點。

注意

Amazon S3 不支持HTTPS訪問該網站。如果您想使用HTTPS,可以使用亞馬遜服務 CloudFront 於 Amazon S3 上託管的靜態網站。

如需詳細資訊,請參閱如 CloudFront 何使用在 Amazon S3 上託管的靜態網站提供服務?需要觀眾之間HTTPS的溝通和 CloudFront.

  1. Buckets (儲存貯體) 下方,選擇儲存貯體的名稱。

  2. 選擇 Properties (屬性)。

  3. 在頁面底部的 Static website hosting (靜態網站託管) 下,選擇您的 Bucket website endpoint (儲存貯體網站端點)

    您的索引文件會在不同的瀏覽器視窗中開啟。

您已在 Amazon S3 上完成網站託管。此網站已可在 Amazon S3 網站端點上使用。但您可能有像 example.com 的網域,想要將其用來提供所建立之網站的內容。您也可能想要使用 Amazon S3 根網域支援來自 http://www.example.comhttp://example.com 的請求。這需要額外的步驟。如需範例,請參閱 教學課程:使用向 Route 53 註冊的自訂網域設定靜態網站

步驟 8:清除

如果您只將靜態網站建立為學習練習,請刪除 AWS 您所配置的資源,讓您不再應計費用。刪除之後 AWS 資源,您的網站不再可用。如需詳細資訊,請參閱刪除儲存貯體