教學課程:在 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 主控台中使用,以及作為和 AWS 開發套件中的額外 Amazon S3 API 回應標頭。 AWS Command Line Interface 如需詳細資訊,請參閱預設加密常見問答集

您可以配置 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. (選用) 如果您要指定進階重新導向規則,請在 Redirection rules (重新導向規則) 中輸入 JSON 來描述規則。

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

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

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

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

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

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

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

警告

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

  1. 開啟位於 https://console.aws.amazon.com/s3/ 的 Amazon 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,則可以使用 Amazon 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 資源後,您的網站將無法再使用。如需詳細資訊,請參閱 刪除儲存貯體