本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 IAM 政策升級至 IPv6
網路監視器客戶使用 IAM 政策來設定允許的 IP 地址範圍,以防止設定範圍以外的任何 IP 地址能夠存取網路監視器 APIs。
您存取網際網路監視器 APIs的 Internetmonitor.region
.api.aws 端點正在升級,以支援雙堆疊 (IPv4 和 IPv6)。
未更新以處理 IPv6 地址的 IP 地址篩選政策可能會導致用戶端無法存取網際網路監視器 APIs。
受升級影響以包含 IPv6 的客戶
使用雙堆疊搭配包含 aws:sourceIp 篩選條件的政策的客戶會受到此升級的影響。雙堆疊表示網路同時支援 IPv4 和 IPv6。
如果您使用雙堆疊,則必須更新目前設定 IPv4 格式地址的 IAM 政策,以包含 IPv6 格式地址。
根據您的案例,以下摘要說明建議的動作。若要確認您的 SDK 使用的端點,請參閱識別程式碼所使用的網際網路監視器端點。
端點 | 搭配 aws:sourceIp 條件使用 IAM 政策? |
建議的動作 |
---|---|---|
|
是 |
若要限制僅 IPv4 的存取,請不要採取進一步動作。或者,如果您預期未來需要 IPv6 支援,您可以採取動作以確保與 IPv4 和 IPv6 的相容性。 為了確保未來的相容性,請在 2024 年 11 月 1 日當天或之後更新您的 SDK,然後藉由設定 來更新您的應用程式以使用雙堆疊端點 如果您選擇同時使用 IPv4 和 IPv6,您還必須在 IAM 政策中更新 IP 地址篩選條件 ( |
|
否 |
若要限制僅 IPv4 的存取,請不要採取進一步動作。或者,如果您預期未來需要 IPv6 支援,您可以採取動作以確保與 IPv4 和 IPv6 的相容性。 為了確保未來的相容性,請在 2024 年 11 月 1 日當天或之後更新您的 SDK,然後藉由設定 來更新您的應用程式以使用雙堆疊端點 |
|
是 |
目前,此端點僅支援 IPV4。2024 年 11 月 1 日,IPv6 將在此端點上啟用。 為了確保未來與 IPv4 和 IPv6 的相容性,在 2024 年 11 月 1 日當天或之後,請更新您的 SDK,然後藉由設定 來更新您的應用程式以使用雙堆疊端點 當您變更以同時使用 IPv4 和 IPv6 時,您還必須在 IAM 政策中更新 IP 地址篩選條件 ( 如果您改為只想要限制對 IPv4 的存取,請設定 |
|
否 |
目前,此端點僅支援 IPV4。2024 年 11 月 1 日,IPv6 將在此端點上啟用。 為了確保未來與 IPv4 和 IPv6 的相容性,在 2024 年 11 月 1 日當天或之後,請更新您的 SDK,然後藉由設定 來更新您的應用程式以使用雙堆疊端點 如果您改為只想要限制對 IPv4 的存取,請設定 |
如需存取問題的協助,請聯絡 支援
什麼是 IPv6?
IPv6 是新一代 IP 標準,旨在最終取代 IPv4。IPv4 使用 32 位元定址機制來支援 43 億部裝置。IPv6 改為使用 128 位元定址,以支援大約 340 兆兆 (或 2 到第 128 電源) 個裝置。
以下是 IPv6 地址的範例:
2001:cdba:0000:0000:0000:0000:3257:9652 2001:cdba:0:0:0:0:3257:9652 2001:cdba::3257:965
IPv6 提供更大的地址空間、改善路由效率,以及更完善的新網際網路服務支援。透過更新至雙堆疊並支援 IPv6,網際網路監視器可提升效能和可擴展性。遵循本節中的步驟來更新您的組態,並利用雙堆疊支援。
識別程式碼所使用的網際網路監視器端點
如果您使用網際網路監視器 SDK,請先驗證程式碼使用的端點:IPv4 端點或雙堆疊 (IPv4 和 IPv6) 端點。如果您不使用 SDK 搭配網際網路監視器,可以略過本節。
您可以執行下列程式碼範例來判斷您正在使用的網際網路監視器端點。在此範例中,我們使用美國東部 (維吉尼亞北部) 區域的 Internet Monitor SDK for Go。
package main import ( "fmt" "log" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/internetmonitor" ) func main() { // Create a new session with the default configuration sess := session.Must(session.NewSession(&aws.Config{ Region: aws.String("us-east-1"), })) // Create a new Internet Monitor client internetMonitorClient := internetmonitor.New(sess) // Get the endpoint URL endpoint := internetMonitorClient.Endpoint fmt.Printf("Internet Monitor endpoint URL: %s\n", endpoint) }
當您執行此程式碼時,它會傳回網際網路監視器端點。如果您看到下列回應,表示您使用僅支援 IPv4 的網際網路監視器網域。您可以告知 ,因為端點 URL 的格式包含 amazonaws.com
。
Internet Monitor endpoint URL: https://internetmonitor.us-east-1.amazonaws.com
如果您改為看到以下回應,則表示您正在使用正在升級的網域來支援雙堆疊 (IPv4 和 IPv6)。在這裡,您可以告知 ,因為端點 URL 包含 api.aws
。不過,請注意,在升級完成之前,此端點僅支援 IPv4。
Internet Monitor endpoint URL: https://internetmonitor.us-east-1.api.aws
更新 IPv6 的 IAM 政策
IAM 政策使用aws:SourceIp
篩選條件來設定允許的 IP 地址範圍。
雙堆疊支援 IPv4 和 IPV6 流量。如果您的網路使用雙堆疊,您必須確保用於 IP 地址篩選的任何 IAM 政策已更新為包含 IPv6 地址範圍。
例如,此政策允許 IPv4 地址範圍 192.0.2.0.*
和 203.0.113.0.*
,在 Condition
元素中識別。
# https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html { "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "*aws:SourceIp*": [ "*192.0.2.0/24*", "*203.0.113.0/24*" ] }, "Bool": { "aws:ViaAWSService": "false" } } } }
若要更新此政策,我們將變更政策的Condition
元素以新增 IPv6 地址範圍,如下列範例所示:
"Condition": { "NotIpAddress": { "*aws:SourceIp*": [ "*192.0.2.0/24*", <<Existing IPv4 address - DO NOT REMOVE>> "*203.0.113.0/24*", <<Existing IPv4 address - DO NOT REMOVE>> "
*2001:DB8:1234:5678::/64*
", <<New IPv6 IP address>> "*2001:cdba:3257:8593::/64*
" <<New IPv6 IP address>> ] }, "Bool": { "aws:ViaAWSService": "false" } }
重要
請勿移除政策中現有的 IPv4 地址。它們是回溯相容性的必要項目。
如需使用 IAM 管理存取許可的詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的 受管政策和內嵌政策。
更新政策後測試網路
在您更新 IAM 政策以包含 IPv6 地址的支援後,建議您測試您的網路是否可以存取 IPv6 端點。本節提供數個範例,視您使用的作業系統而定。
使用 Linux/Unix 或 Mac OS X 測試網路
如果您使用 Linux/Unix 或 Mac OS X,您可以使用下列 curl 命令來測試您的網路是否可以存取 IPv6 端點。
curl -v -s -o /dev/null http://ipv6.ec2-reachability.amazonaws.com/
如果您透過 IPv6 連接,連接的 IP 地址會顯示類似下列的資訊:
* About to connect() to aws.amazon.com port 443 (#0) * Trying IPv6 address... connected * Connected to aws.amazon.com (IPv6 address) port 443 (#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: aws.amazon.com
使用 Windows 測試網路
如果您使用 Windows,則可以測試您的網路是否可以透過 IPv6 或 IPv4 使用 ping
命令存取雙堆疊端點,如下所示:
ping aws.amazon.com
如果透過 IPv6 ping
存取端點,命令會傳回 IPv6 地址。
確認用戶端可以支援 IPv6
我們建議您在切換到使用 Internetmonitor.{region}.api.aws 端點之前,先驗證您的用戶端是否可以存取其他已啟用 IPv6-enabled AWS 服務 端點。下列步驟說明如何使用現有的 IPv6 端點來驗證這一點。
此範例使用 Linux 和 curl 8.6.0 版,並使用 Amazon Athena 服務,該服務具有位於 api.aws 網域IPv6-enabled的端點。
注意
將 切換 AWS 區域 到用戶端所在的相同區域。在此範例中,我們使用美國東部 (維吉尼亞北部) – us-east-1
端點。
使用下列範例來確認您的用戶端可存取IPv6-enabled AWS 的端點。
-
使用以下命令,確認 Athena 端點以 IPv6 地址解析。
dig +short AAAA athena.us-east-1.api.aws 2600:1f18:e2f:4e05:1a8a:948e:7c08:d2d6 2600:1f18:e2f:4e03:4a1e:83b0:8823:4ce5 2600:1f18:e2f:4e04:34c3:6e9a:2b0d:dc79
-
現在,請使用下列命令,判斷您的用戶端網路是否可以使用 IPv6 進行連線:
curl --ipv6 -o /dev/null --silent -w "\nremote ip: %{remote_ip}\nresponse code: %{response_code}\n" https://athena.us-east-1.api.aws remote ip: 2600:1f18:e2f:4e05:1a8a:948e:7c08:d2d6 response code: 404
如果已識別遠端 IP 地址,且回應代碼不是
0
,則已成功使用 IPv6 與端點建立網路連線。如果遠端 IP 地址為空白或回應碼為
0
,則用戶端網路或端點的網路路徑為IPv4-only。您可以使用下列 curl 命令來驗證這一點:curl -o /dev/null --silent -w "\nremote ip: %{remote_ip}\nresponse code: %{response_code}\n" https://athena.us-east-1.api.aws remote ip: 3.210.103.49 response code: 404
如果您執行此命令,且已識別遠端 IP 地址且回應碼不是
0
,則已成功使用 IPv4 與端點建立網路連線。