View a markdown version of this page

透過 IPv6 向 Amazon S3 提出請求 - Amazon Simple Storage Service

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

透過 IPv6 向 Amazon S3 提出請求

Amazon Simple Storage Service (Amazon S3) 除了 IPv4 通訊協定之外,還支援使用網際網路通訊協定第 6 版 (IPv6) 存取 S3 儲存貯體的能力。Amazon S3 雙堆疊端點支援透過 IPv6 與 IPv4 的 S3 儲存貯體要求。透過 IPv6 存取 Amazon S3 不另行收費。如需定價的詳細資訊,請參閱 Amazon S3 定價

注意

下列資訊適用於公有 Amazon S3 IPv6 端點。如需有關 AWS Virtual Private Cloud (VPC) 端點的資訊,請參閱適用於 AWS Amazon S3 的 PrivateLink

透過 IPv6 提出請求的入門

若要透過 IPv6 向 S3 儲存貯體提出請求,您需要使用雙堆疊端點。下節說明如何使用雙堆疊端點透過 IPv6 提出請求。

以下是透過 IPv6 嘗試存取儲存貯體前的須知事項:

  • 存取儲存貯體的用戶端與網路必須啟用才能使用 IPv6。

  • 虛擬託管式與路徑式請求都支援 IPv6 存取。如需詳細資訊,請參閱Amazon S3 雙堆疊端點

  • 如果您在 AWS Identity and Access Management (IAM) 使用者或儲存貯體政策中使用來源 IP 地址篩選,則需要更新政策以包含 IPv6 地址範圍。如需詳細資訊,請參閱在 IAM 原則中使用 IPv6 地址

  • 使用 IPv6 時,伺服器會存取 IPv6 格式的日誌檔案輸出 IP 地址。您需要更新用來剖析 Amazon S3 日誌檔案的現有工具、指令碼與軟體,以便它們可以剖析 IPv6 格式的 Remote IP 地址。如需詳細資訊,請參閱使用伺服器存取記錄記錄請求

    注意

    如果碰到與日誌檔案中 IPv6 地址相關的問題,請聯絡 AWS 支援

使用雙重堆疊端點透過 IPv6 提出請求

您使用雙重堆疊端點透過 IPv6 提出具痭 Amazon S3 API 呼叫的請求。無論您是透過 IPv6 還是透過 IPv4 存取Amazon S3,Amazon S3 API 操作都會以相同的方式運作。效能也應該是相同。

使用 REST API 時,您會直接存取雙堆疊端點。如需詳細資訊,請參閱雙堆疊端點

使用 AWS Command Line Interface (AWS CLI) 和 AWS SDKs時,您可以使用參數或旗標來變更為雙堆疊端點。您也可以直接指定雙堆疊端點來覆寫設定檔中的 Amazon S3 端點。

您可以使用雙堆疊端點,從下列任一位置透過 IPv6 存取儲存貯體:

無法透過 IPv6 提供的功能

目前,透過 IPv6 存取 S3 儲存貯體時,不支援下列功能:從 S3 儲存貯體託管靜態網站。

在 IAM 原則中使用 IPv6 地址

嘗試使用 IPv6 存取儲存貯體之前,您必須確保用於 IP 地址篩選條件的所有 IAM 使用者或 S3 儲存貯體原則,皆已更新包含 IPv6 地址範圍。未針對處理 IPv6 地址更新的IP 地址篩選條件原則,可能會導致用戶端在開始使用 IPv6 時,錯誤遺失或取得儲存貯體的存取許可。如需使用 IAM 管理存取權的詳細資訊,請參閱 Amazon S3 的 Identity and Access Management

篩選 IP 地址的 IAM 原則使用IP 地址條件運算子。以下儲存貯體原則會使用 IP 地址條件運算子找出允許之 IPv4 地址的 54.240.143.* 範圍。拒絕此範圍外的任何 IP 地址存取儲存貯體 (examplebucket)。因為所有的 IPv6 地址都在允許的範圍外,所以此原則可避免 IPv6 地址得以存取 examplebucket

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "IPAllow", "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::examplebucket/*", "Condition": { "IpAddress": {"aws:SourceIp": "54.240.143.0/24"} } } ] }

您可以修改儲存貯體政策的 Condition 元素,允許 IPv4 (54.240.143.0/24) 與 IPv6 (2001:DB8:1234:5678::/64) 地址範圍,如下例所示。您可使用本例所示的同類型 Condition 區塊,更新您的 IAM 使用者與儲存貯體原則。

"Condition": { "IpAddress": { "aws:SourceIp": [ "54.240.143.0/24", "2001:DB8:1234:5678::/64" ] } }

在使用 IPv6 之前,您必須更新使用 IP 地址篩選的所有相關 IAM 使用者和儲存貯體政策。避免在儲存貯體政策中使用 IP 地址篩選。

您可以使用 https://console.aws.amazon.com/iam/的 IAM 主控台來檢閱 IAM 使用者原則。如需 IAM 的詳細資訊,請參閱《IAM 使用者指南》。如需有關編輯 S3 儲存貯體政策的資訊,請參閱新增儲存貯體政策

測試 IP 地址相容性

如果使用 Linux/Unix 或 Mac OS X,您可以使用 curl 命令測試能否透過 IPv6 存取雙堆疊端點,如下例所示:

範例
curl -v http://s3.dualstack.us-west-2.amazonaws.com/

您會收到類似下例的資訊。如果您是透過 IPv6 連線,則連線的 IP 地址就會是 IPv6 地址。

* About to connect() to s3-us-west-2.amazonaws.com port 80 (#0) * Trying IPv6 address... connected * Connected to s3.dualstack.us-west-2.amazonaws.com (IPv6 address) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.18.1 (x86_64-unknown-linux-gnu) libcurl/7.18.1 OpenSSL/1.0.1t zlib/1.2.3 > Host: s3.dualstack.us-west-2.amazonaws.com

如果您使用的是 Microsoft 7 或 10,您可以使用 ping命令來測試是否可以透過 IPv6 或 IPv4 存取雙堆疊端點,如下列範例所示。

ping ipv6.s3.dualstack.us-west-2.amazonaws.com