

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

# 使用端点策略控制对 VPC 端点的访问
<a name="vpc-endpoints-access"></a>

终端节点策略是您附加到 VPC 终端节点的基于资源的策略，用于控制哪些 AWS 委托人可以使用该终端节点访问。 AWS 服务

端点策略不会覆盖或取代基于身份的策略或基于资源的策略。例如，如果您使用接口终端节点连接到 Amazon S3，则还可以使用 Amazon S3 存储桶策略来控制从特定终端节点或特定 VPCs终端节点访问存储桶。

**Topics**
+ [注意事项](#vpc-endpoint-policy-considerations)
+ [默认端点策略](#default-endpoint-policy)
+ [接口端点策略](#vpc-endpoint-policies-interface)
+ [网关端点的主体](#vpc-endpoint-policies-gateway)
+ [更新 VPC 端点策略](#update-vpc-endpoint-policy)

## 注意事项
<a name="vpc-endpoint-policy-considerations"></a>
+ 端点策略是使用 IAM policy 语言的 JSON 策略文档。其中必须包含一个 [Principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) 元素。端点策略的大小不得超过 20480 个字符（包含空格）。
+ 在为创建接口或网关终端节点时 AWS 服务，可以将单个终端节点策略附加到该终端节点。您可以随时[更新端点策略](#update-vpc-endpoint-policy)。如果您不附加端点策略，我们将附加[默认端点策略](#default-endpoint-policy)。
+ 并非所有都 AWS 服务 支持端点策略。如果 AWS 服务 不支持终端节点策略，则我们允许对该服务的任何终端节点进行完全访问权限。有关更多信息，请参阅 [查看端点策略支持](aws-services-privatelink-support.md#vpce-endpoint-policy-support)。
+ 当您为端点服务而非 AWS 服务创建 VPC 端点时，我们允许对该端点进行完全访问。
+ 对于引用系统生成的标识符的全局上下文键（例如，`aws:PrincipalAccount` 或 `aws:SourceVpc`），您不能使用通配符 (\$1 or ?) 或[数字条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_Numeric)。
+ 使用[字符串条件运算符](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String)时，您必须在每个通配符之前或之后使用至少六个连续字符。
+ 当您在资源或条件元素中指定 ARN 时，ARN 的账户部分可以包含账户 ID 或通配符，但不能同时包含两者。
+ 在更新完端点策略后，您所做的更改可能需要几分钟才能生效。

## 默认端点策略
<a name="default-endpoint-policy"></a>

默认端点策略授予对端点的完全访问权限。

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "*",
            "Resource": "*"
        }
    ]
}
```

## 接口端点策略
<a name="vpc-endpoint-policies-interface"></a>

有关终端节点策略的示例 AWS 服务，请参阅[AWS 服务 与之集成 AWS PrivateLink](aws-services-privatelink-support.md)。表中的第一列包含每个 AWS PrivateLink 文档的链接 AWS 服务。如果 AWS 服务 支持端点策略，则其文档包括端点策略示例。

## 网关端点的主体
<a name="vpc-endpoint-policies-gateway"></a>

对于网关端点，必须将 `Principal` 元素设置为 `*`。要指定主体，请使用 `aws:PrincipalArn` 条件键。

```
"Condition": {
    "StringEquals": {
        "aws:PrincipalArn": "arn:aws:iam::123456789012:user/endpointuser"
    }
}
```

如果您使用以下格式指定主体，则访问权限只会授予 AWS 账户根用户 ，而非该账户的所有用户和角色。

```
"AWS": "account_id"
```

有关网关端点的端点策略示例，请参阅以下内容：
+ [适用于 Amazon S3 的端点](vpc-endpoints-s3.md#edit-vpc-endpoint-policy-s3)
+ [适用于 DynamoDB 的端点](vpc-endpoints-ddb.md#iam-policies-ddb)

## 更新 VPC 端点策略
<a name="update-vpc-endpoint-policy"></a>

按照以下步骤更新 AWS 服务的端点策略。在更新完端点策略后，您所做的更改可能需要几分钟才能生效。

**使用控制台更新端点策略**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择**端点**。

1. 选择 VPC 端点。

1. 依次选择 **Actions**（操作）、**Manage policy**（管理策略）。

1. 选择 **Full Access**（完全访问）以允许对服务进行完全访问，或者选择 **Custom**（自定义）并附加自定义策略。

1. 选择**保存**。

**使用命令行更新端点策略**
+ [modify-vpc-endpoint](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-endpoint.html) (AWS CLI)
+ [Edit-EC2VpcEndpoint](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2VpcEndpoint.html)（适用于 Windows 的工具 PowerShell）