View a markdown version of this page

將 IAM 政策升級至 IPv6 - Amazon CloudWatch

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

將 IAM 政策升級至 IPv6

Internet Monitor 客戶使用 IAM 政策來設定允許的 IP 位址範圍,以防止任何位於設定範圍外的 IP 位址能夠存取 Internet Monitor API。

您存取 Internet Monitor API 的 Internetmonitor.region.api.aws 端點正在升級為支援雙堆疊 (IPv4 和 IPv6)。

未更新以處理 IPv6 位址的 IP 位址篩選政策可能導致用戶端無法存取 Internet Monitor API。

受 IPv6 升級影響的客戶

使用雙堆疊搭配包含 aws:sourceIp 篩選條件的政策的客戶會受到此升級的影響。雙堆疊表示網路同時支援 IPv4 和 IPv6。

如果您使用雙堆疊,必須更新目前使用 IPv4 格式位址設定的 IAM 原則,使之包含 IPv6 格式位址。

下方文字為根據您的情境建議採取的行動摘要。若要確認您的 SDK 使用的端點,請參閱識別您的程式碼使用的 Internet Monitor 端點

Endpoint 搭配 aws:sourceIp 條件使用 IAM 政策? 建議的動作

internetmonitor.region.amazonaws.com (非雙堆疊)

若要限制僅允許存取 IPv4,無需採取進一步行動。或者,如果您預期未來需要 IPv6 支援,可以採取動作確保與 IPv4 和 IPv6 兩者的相容性。

為了確保未來的相容性,請在 2024 年 11 月 1 日當天或之後更新您的 SDK,然後藉由設定 useDualstackEndpoint=true,更新您的應用程式以使用雙堆疊端點。如需詳細資訊,請參閱雙堆疊和 FIPS 端點

如果您選擇同時使用 IPv4 和 IPv6,還必須在 IAM 政策中更新 IP 位址篩選條件 (aws:sourceIp),使之包含 IPv6 位址。

internetmonitor.region.amazonaws.com (非雙堆疊)

若要限制僅允許存取 IPv4,無需採取進一步行動。或者,如果您預期未來需要 IPv6 支援,可以採取動作確保與 IPv4 和 IPv6 兩者的相容性。

為了確保未來的相容性,請在 2024 年 11 月 1 日當天或之後更新您的 SDK,然後藉由設定 useDualstackEndpoint=true,更新您的應用程式以使用雙堆疊端點。如需詳細資訊,請參閱雙堆疊和 FIPS 端點

internetmonitor.region.api.aws

為了確保未來與 IPv4 和 IPv6 兩者的相容性,請更新您的 SDK,然後藉由設定 useDualstackEndpoint=true,更新您的應用程式以使用雙堆疊端點。如需詳細資訊,請參閱雙堆疊和 FIPS 端點

當您進行變更以同時使用 IPv4 和 IPv6 時,還必須在 IAM 政策中更新 IP 位址篩選條件 (aws:sourceIp),使之包含 IPv6 位址。

如果只想要限制對 IPv4 的存取,請設定 useDualstackEndpoint=false。如需詳細資訊,請參閱雙堆疊和 FIPS 端點

internetmonitor.region.api.aws

為了確保未來與 IPv4 和 IPv6 兩者的相容性,請更新您的 SDK,然後藉由設定 useDualstackEndpoint=true,更新您的應用程式以使用雙堆疊端點。如需詳細資訊,請參閱雙堆疊和 FIPS 端點

如果只想要限制對 IPv4 的存取,請設定 useDualstackEndpoint=false。如需詳細資訊,請參閱雙堆疊和 FIPS 端點

如需協助解決存取問題,請聯絡 支援

什麼是 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,Internet Monitor 可助力提升效能和可擴展性。請依循本節中的步驟來更新您的組態,並利用雙堆疊支援。

識別程式碼使用的 Internet Monitor 端點

如果您使用 Internet Monitor SDK,請先驗證程式碼使用的是哪個端點:IPv4 端點,還是雙堆疊 (IPv4 和 IPv6) 端點。如果您並非搭配 SDK 使用 Internet Monitor,可以略過本節。

您可以執行下列程式碼範例來判斷正在使用的 Internet Monitor 端點。在此範例中,我們在美國東部 (維吉尼亞北部) 區域使用 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) }

當您執行此程式碼時,會傳回 Internet Monitor 端點。如果看到下列回應,表示您使用的 Internet Monitor 網域僅支援 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 位址範圍。

例如,此政策允許 Condition 元素中識別的 IPv4 位址範圍 192.0.2.0.*203.0.113.0.*

# 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,可以使用 ping 命令測試網路能否透過 IPv6 或 IPv4 存取雙堆疊端點,如下所示:

ping aws.amazon.com

如果 ping 透過 IPv6 存取端點,命令會傳回 IPv6 位址。

驗證用戶端能否支援 IPv6

我們建議您在切換到使用 Internetmonitor.{region}.api.aws 端點之前,先驗證您的用戶端是否可以存取已啟用 IPv6-enabled的其他 AWS 服務 端點。下列步驟說明如何使用現有的 IPv6 端點來驗證這一點。

此範例使用 Linux 和 curl 版本 8.6.0,並使用 Amazon Athena 服務 (具有位於 api.aws 網域且已啟用 IPv6 的端點)。

注意

將 切換 AWS 區域 到用戶端所在的相同區域。在此範例中,我們使用美國東部 (維吉尼亞北部) – us-east-1 端點。

使用下列範例來驗證您的用戶端是否可以存取IPv6-enabled AWS 的端點。

  1. 使用下列命令驗證 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
  2. 現在,使用以下命令判斷您的用戶端網路能否使用 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。可以使用下列 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 與端點建立網路連線。