AWS::EC2::VPCEndpoint - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::EC2::VPCEndpoint

指定服务的 VPC 终端节点。使用终端节点可以在您的 VPC 和服务之间创建私有连接。该服务可由 AWS、AWS Marketplace 合作伙伴或另一个 AWS 账户提供。有关更多信息,请参阅 Amazon Virtual Private Cloud 用户指南 中的 VPC 终端节点

gateway 终端节点用作路由表中路由的目标,用于发送到 AWS 服务的流量。您可以指定要附加到终端节点的终端节点策略,该策略将控制从 VPC 对服务的访问。您也可以指定使用终端节点的 VPC 路由表。

interface 终端节点是子网中的网络接口,用作与指定服务进行通信的终端节点。您可以指定要在其中创建终端节点的子网,以及与终端节点网络接口关联的安全组。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::EC2::VPCEndpoint", "Properties" : { "PolicyDocument" : Json, "PrivateDnsEnabled" : Boolean, "RouteTableIds" : [ String, ... ], "SecurityGroupIds" : [ String, ... ], "ServiceName" : String, "SubnetIds" : [ String, ... ], "VpcEndpointType" : String, "VpcId" : String } }

YAML

Type: AWS::EC2::VPCEndpoint Properties: PolicyDocument: Json PrivateDnsEnabled: Boolean RouteTableIds: - String SecurityGroupIds: - String ServiceName: String SubnetIds: - String VpcEndpointType: String VpcId: String

属性

PolicyDocument

一个附加到终端节点的策略,用于控制对服务的访问。该策略必须采用有效的 JSON 格式。如果未指定此参数,我们将附加一个允许对服务进行完全访问的默认策略。

必需:否

类型:Json

Update requires: No interruption

PrivateDnsEnabled

(接口终端节点)指示是否将私有托管区域与指定 VPC 关联。私有托管区域包含区域服务的默认公有 DNS 名称(例如,kinesis.us-east-1.amazonaws.com)的记录集,用于解析为 VPC 中的终端节点网络接口的私有 IP 地址。这使您能够请求服务的默认公有 DNS 名称,而不是 VPC 终端节点服务自动生成的公有 DNS 名称。

要使用私有托管区域,您必须将以下 VPC 属性设置为 trueenableDnsHostnamesenableDnsSupport

默认值:false

必需:否

类型:布尔值

Update requires: No interruption

RouteTableIds

(网关终端节点)一个或多个路由表 ID。

必需:否

类型:字符串列表

Update requires: No interruption

SecurityGroupIds

(接口终端节点)要与终端节点网络接口关联的一个或多个安全组的 ID。

终端节点为接口时,此字段为必填字段。

必需:条件

类型:字符串列表

Update requires: No interruption

ServiceName

服务名称。要获取可用服务的列表,请使用 DescribeVpcEndpointServices 请求或者从服务提供商处获取名称。

必需:是

类型:字符串

Update requires: Replacement

SubnetIds

(接口终端节点)在其中创建终端节点网络接口的一个或多个子网的 ID。

终端节点为接口时,此字段为必填字段。

必需:条件

类型:字符串列表

Update requires: No interruption

VpcEndpointType

终端节点的类型。

默认值:网关

必需:否

类型:字符串

允许的值Gateway | Interface

Update requires: Replacement

VpcId

将在其中使用终端节点的 VPC 的 ID。

终端节点为接口时,此字段为必填字段。

必需:条件

类型:字符串

Update requires: Replacement

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回 VPC 终端节点的 ID。

For more information about using the Ref function, see Ref.

Fn::GetAtt

Fn::GetAtt 内部函数返回此类型的一个指定属性的值。以下为可用属性和示例返回值。

有关使用 Fn::GetAtt 内部函数的更多信息,请参阅 Fn::GetAtt

CreationTimestamp

VPC 终端节点的创建日期和时间。例如:Fri Sep 28 23:34:36 UTC 2018.

DnsEntries

(接口终端节点)终端节点的 DNS 条目。每个条目是托管区域 ID 和 DNS 名称的组合。这些条目是按以下方式排序的:区域性公有 DNS、地区性公有 DNS、私有 DNS 和通配符 DNS。不会为 AWS Marketplace 服务实施该顺序。

以下是示例。在第一个条目中,托管区域 ID 是 Z1HUB23UULQXV,DNS 名称是 vpce-01abc23456de78f9g-12abccd3.ec2.us-east-1.vpce.amazonaws.com。

["Z1HUB23UULQXV:vpce-01abc23456de78f9g-12abccd3.ec2.us-east-1.vpce.amazonaws.com", "Z1HUB23UULQXV:vpce-01abc23456de78f9g-12abccd3-us-east-1a.ec2.us-east-1.vpce.amazonaws.com", "Z1C12344VYDITB0:ec2.us-east-1.amazonaws.com"]

如果更新 PrivateDnsEnabledSubnetIds 属性,列表中的 DNS 条目将发生变化。

NetworkInterfaceIds

(接口终端节点)一个或多个网络接口 ID。如果更新 PrivateDnsEnabledSubnetIds 属性,该列表中的项目可能会发生变化。

示例

VPC 终端节点

以下示例指定一个 VPC 终端节点,它仅允许在 examplebucket 存储桶上执行 s3:GetObject 操作。前往与 routetableA 和 routetableB 路由表关联的子网中的 S3 的流量通过 VPC 终端节点自动路由。

JSON

"S3Endpoint" : { "Type" : "AWS::EC2::VPCEndpoint", "Properties" : { "PolicyDocument" : { "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::examplebucket/*"] }] }, "RouteTableIds" : [ {"Ref" : "routetableA"}, {"Ref" : "routetableB"} ], "ServiceName" : { "Fn::Sub": "com.amazonaws.${AWS::Region}.s3" }, "VpcId" : {"Ref" : "VPCID"} } }

YAML

Type: AWS::EC2::VPCEndpoint Properties: PolicyDocument: '{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::examplebucket/*"] }] }' RouteTableIds: - !Ref routetableA - !Ref routetableB ServiceName: !Sub com.amazonaws.${AWS::Region}.s3 VpcId: !Ref VPCID