

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 将IAM策略升级到 IPv6
<a name="arex-security-ipv6-upgrade"></a>

AWS 资源探索器 客户使用IAM策略来设置允许的 IP 地址范围，并防止配置范围之外的任何 IP 地址能够访问资源浏览器APIs。

*资源浏览器-2。{{region}}托管资源管理器的 APIs .api.aws * 域名正在升级为支持IPv6。IPv4

未更新以处理IPv6地址的 IP 地址筛选策略可能会导致客户端无法访问资源管理器API域上的资源。

## 受从升级IPv4到影响的客户 IPv6
<a name="customers-impacted"></a>

使用双寻址策略包含 aws*:* 的客户将sourceIp受到此次升级的影响。双寻址意味着网络同时支持IPv4和IPv6。

如果您使用的是双地址，则必须更新当前使用IPv4格式地址配置的IAM策略以包含IPv6格式地址。

有关访问问题的帮助，请联系 [支持](https://support.console.aws.amazon.com/support/home/?nc1=f_dr#/case/create)。

**注意**  
以下客户*不受*此次升级的影响：  
*仅*使用IPv4网络的客户。
*仅*使用IPv6网络的客户。

## 什么是 IPv6？
<a name="what-is-ipv6"></a>

IPv6是旨在最终取代的下一代 IP 标准IPv4。之前的版本使用 32 位寻址方案来支持 43 亿台设备。IPv4IPv6而是使用 128 位寻址来支持大约 340 万亿亿亿美元（或第 128 功率的 2 倍）设备。

```
2001:cdba:0000:0000:0000:0000:3257:9652
2001:cdba:0:0:0:0:3257:9652
2001:cdba::3257:965
```

## 更新以下各项的IAM政策 IPv6
<a name="updating-for-ipv6"></a>

IAM策略当前用于使用`aws:SourceIp`过滤器设置允许的 IP 地址范围。

双寻址同时支持IPv4和IPV6流量。如果您的网络使用双寻址，则必须确保更新所有用于 IP 地址筛选的IAM策略以包括IPv6地址范围。

例如，此 Amazon S3 存储桶策略确定了`Condition`元素`203.0.113.0.*`中允许IPv4的地址范围`192.0.2.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地址范围`2001:DB8:1234:5678::/64`和`2001:cdba:3257:8593::/64`。

**注意**  
使用现有NOTREMOVE的地IPv4址，因为它们是向后兼容所必需的。

```
"Condition": {
            "NotIpAddress": {
                "*aws:SourceIp*": [
                    "*192.0.2.0/24*", <<DO NOT REMOVE existing IPv4 address>>
                    "*203.0.113.0/24*", <<DO NOT REMOVE existing IPv4 address>>
                    "{{*2001:DB8:1234:5678::/64*}}", <<New IPv6 IP address>>
                    "{{*2001:cdba:3257:8593::/64*}}" <<New IPv6 IP address>>
                ]
            },
            "Bool": {
                "aws:ViaAWSService": "false"
            }
        }
```

有关使用管理访问权限的更多信息IAM，请参阅*《AWS Identity and Access Management 用户指南》*中的[托管策略和内联策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html)。

## 验证您的客户是否可以支持 IPv6
<a name="testing-connection"></a>

使用*资源浏览器-2 的客户。 {region} .api.aw* s 终端节点建议验证其客户端是否可以访问其他已启用的 AWS 服务 终端节点。IPv6以下步骤描述了如何验证这些端点。

*此示例使用 Linux 和 curl 版本 8.6.0，并使用已IPv6启用位于 api.aws 域的终端节点的[亚马逊 Athena 服务终端节点](https://docs.aws.amazon.com/general/latest/gr/athena.html)。*

**注意**  
将切换 AWS 区域 到客户端所在的同一区域。在此示例中，我们使用美国东部（弗吉尼亚北部）-`us-east-1` 端点。

1. 使用以下 curl 命令确定端点是否使用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
   ```

1. IPv6使用以下 curl 命令确定客户端网络能否建立连接。

   ```
   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。**远程 IP 应该是一个IPv4地址，因为操作系统应选择对客户端有效的协议。如果远程 IP 不是IPv4地址，请使用以下命令强制使用 IPv4 curl。

```
curl --ipv4 -o /dev/null --silent -w "\nremote ip: %{remote_ip}\nresponse code: %{response_code}\n" https://athena.us-east-1.api.aws

remote ip: 35.170.237.34
response code: 404
```