本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
透過 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 存取儲存貯體:
-
AWS CLI,請參閱 從 使用雙堆疊端點 AWS CLI。
-
AWS SDKs請參閱從 AWS SDKs 使用雙堆疊端點。
-
REST API,請參閱「使用 REST API 提出雙重堆疊端點要求」。
無法透過 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。
您可以修改儲存貯體政策的 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/
測試 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) * TryingIPv6 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