# VPC端点策略(VPC endpoint policies)示例策略

{% embed url="<https://github.com/aws-samples/data-perimeter-policy-examples/tree/main/vpc_endpoint_policies>" %}

## 什么是VPC端点？有什么作用？

VPC端点可以确保您的资源**不会绕行到外网**，而是在内网中进行交互。

在 VPC 网络中，如果您使用亚马逊云科技提供的**域名系统 (DNS)**，流量会自动路由到 VPC 端点。对于本地网络，如果 VPC 端点通过 **Amazon Direct Connect 或 VPN** 连接到亚马逊云，您还可以通过 VPC 端点路由亚马逊云流量。对于配备 **Amazon PrivateLink 接口端点**的服务，您可以直接从本地网络将流量路由到这些端点。使用仅提供网关端点的 **Amazon DynamoDB** 时，您可以使用代理队列来路由在本地流经该端点的流量。有关支持 VPC 端点和 VPC 端点策略的服务列表，请参阅[ 与 Amazon PrivateLink 集成的亚马逊云服务](https://docs.amazonaws.cn/vpc/latest/privatelink/integrated-services-vpce-list.html) 。

VPC端点可实现 VPC 与**AWS 服务/另外一个VPC/第三方的VPC**之间的私有连接，而无需离开亚马逊网络。 它不需要穿越互联网或通过 NAT 实例、VPN 连接或 AWS Direct Connect。 VPC 端点还提供额外的安全功能，如添加策略以控制 VPC 中的哪些资源可以被访问。

<figure><img src="https://3752289132-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LTfg4e0NhLEbwi6WFJp%2Fuploads%2Fk67mf5JPx0i16BJMdCfF%2Fimage.png?alt=media&#x26;token=2f056f78-2b89-49cb-9b92-58663596bbfc" alt=""><figcaption></figcaption></figure>

## VPC端点策略

这类策略是一种特殊类型的基于资源的策略，您可以将其附加到端点，用于在通过该 VPC 端点访问资源时控制对资源的访问。端点策略不会覆盖或者取代IAM用户策略或者资源策略（比如S3存储桶策略）。它是一个单独的策略，用于控制从端点到指定服务的访问。在 VPC 网络中，如果使用 AWS 提供的域名系统 (DNS)，流量会自动路由到 VPC 端点。

VPC 端点策略主要使用 [aws:PrincipalOrgId](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) 和 aws:[PrincipalIsAWSService](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalisawsservice) 条件来实现仅可信身份访问，使用 [aws:ResourceOrgId ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceorgid)条件来实现仅可信身份资源，并且管理策略中所需的例外规则。有关更多详情，请参阅[数据边界策略示例存储库](https://github.com/aws-samples/data-perimeter-policy-examples)中的[ VPC 端点策略](https://github.com/aws-samples/data-perimeter-policy-examples/tree/main/vpc_endpoint_policies) 。

{% hint style="danger" %}
对于 VPC 端点策略，需要在条件中明确指定亚马逊云组织 ID，这一点非常重要。<mark style="color:red;">**请勿**</mark>使用如下条件：

"Condition": {

&#x20; "StringNotEquals": {

&#x20;   "aws:ResourceOrgId": "${aws:PrincipalOrgId}"

&#x20; }

}

{% endhint %}

需要在 VPC 端点策略中明确允许访问的服务主体。VPC端点策略可以避免比如这类情况的发生：

* 非可信身份从外网请求您组织中的资源。
* 也可以避免可信身份从外网请求您组织中的资源保存到个人的账号中。

具体请查阅[示例默认 VPC 端点策略](https://github.com/aws-samples/data-perimeter-policy-examples/blob/main/vpc_endpoint_policies/default_endpoint_policy.json) 。

## 策略样例

<table><thead><tr><th width="254">Title</th><th>Note</th></tr></thead><tbody><tr><td><a href="vpc-duan-dian-ce-le-vpc-endpoint-policies-shi-li-ce-le/vpce-he-di-san-fang-zi-yuan">VPCE和第三方资源</a></td><td>通过VPC端点与第三方资源进行连接是如何配置VPCE的策略</td></tr><tr><td><a href="vpc-duan-dian-ce-le-vpc-endpoint-policies-shi-li-ce-le/vpce-he-aws-tuo-guan-de-zi-yuan">VPCE和AWS托管的资源</a></td><td>通过VPC端点与AWS服务进行交互时如何配置VPCE的策略</td></tr><tr><td><a href="vpc-duan-dian-ce-le-vpc-endpoint-policies-shi-li-ce-le/vpce-he-s3">VPCE和S3</a></td><td>通过VPC端点访问S3存储桶时如何配置VPCE的策略</td></tr><tr><td><a href="vpc-duan-dian-ce-le-vpc-endpoint-policies-shi-li-ce-le/vpce-he-zu-zhi-nei-zi-yuan">VPCE和组织内资源</a></td><td>比较粗粒度的管理仅限组织内互相访问时如何配置VPCE的策略</td></tr></tbody></table>
