

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

# 使用 IAM 策略控制 API 访问
<a name="ip-access"></a>

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

AWS CloudHSM 客户使用 IAM 策略来控制对配置范围之外的任何 IP 地址的访问 AWS CloudHSM APIs 并阻止其访问 AWS CloudHSM APIs。

*cloudhsmv2。 *<region>*.api.aw* s 双栈终端节点，其中 AWS CloudHSM APIs 还有托管支持 IPv6 。 IPv4

需要同时支持两者的客户， IPv4 并且 IPv6 必须更新其 IP IPv6 地址筛选策略才能处理地址，否则这将影响他们通过连接的能力 AWS CloudHSM 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？
<a name="what-is-ipv6"></a>

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

有关更多详细信息，请参阅 [VPC IPv6 网页](https://aws.amazon.com/vpc/ipv6/)。

```
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 地址范围。

例如，以下策略标识了`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`。

**注意**  
请勿删除现有 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"
                }
            }
```

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

建议使用 *cloudhsmv2.\$1region\$1.api.aws* 端点的客户验证他们是否能够连接到该端点。下面的步骤介绍了如何执行验证。

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

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

1. 使用以下`dig`命令确定端点是否使用 IPv6 地址进行解析。

   ```
   dig +short AAAA cloudhsmv2.us-east-1.api.aws
   2600:1f18:e2f:4e05:1a8a:948e:7c08:c1c3
   ```

1. 使用以下`curl`命令确定客户端网络能否建立 IPv6 连接。404 响应代码表示连接成功，而 0 响应代码表示连接失败。

   ```
   curl --ipv6 -o /dev/null --silent -w "\nremote ip: %{remote_ip}\nresponse code: %{response_code}\n" https://cloudhsmv2.us-east-1.api.aws
   
   remote ip: 2600:1f18:e2f:4e05:1a8a:948e:7c08:c1c3
   response code: 404
   ```

**如果识别了远程 IP 但未识别响应码`0`，则使用成功地与端点建立了网络连接 IPv6。**远程 IP 应该是一个 IPv6 地址，因为操作系统应选择对客户端有效的协议。如果远程 IP 不是 IPv6 地址，请使用以下命令强制`curl`使用 IPv4。

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

remote ip: 3.123.154.250
response code: 404
```

如果远程 IP 为空或响应码为`0`，则客户端网络或终端的网络路径 IPv4仅为-only。您可以使用以下 `curl` 命令验证此配置。

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

remote ip: 3.123.154.250
response code: 404
```