AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS::EC2::SecurityGroupEgress

资源 AWS::EC2::SecurityGroupEgress 用于向 Amazon VPC 安全组添加传出规则。

重要

仅在必要时使用 AWS::EC2::SecurityGroupIngressAWS::EC2::SecurityGroupEgress,它们通常允许安全组在传入和传出规则中相互引用。否则,请使用 AWS::EC2::SecurityGroup 的嵌入式传入和传出规则。有关更多信息,请参阅 Amazon EC2 Security Groups

语法

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

JSON

Copy
{ "Type" : "AWS::EC2::SecurityGroupEgress", "Properties" : { "CidrIp" : String, "CidrIpv6" : String, "DestinationPrefixListId" : String, "DestinationSecurityGroupId" : String, "FromPort" : Integer, "GroupId" : String, "IpProtocol" : String, "ToPort" : Integer } }

YAML

Copy
Type: "AWS::EC2::SecurityGroupEgress" Properties: CidrIp: String CidrIpv6: String DestinationPrefixListId: String DestinationSecurityGroupId: String FromPort: Integer GroupId: String IpProtocol: String ToPort: Integer

属性

更多有关向 VPC 安全组添加输出规则的信息,请参阅 Amazon EC2 API Reference 中的 AuthorizeSecurityGroupEgress 部分。

注意

如果您更改该资源的逻辑 ID,则还必须更新属性值以便为此资源触发更新。

CidrIp

IPv4 CIDR 范围。

Required: Conditional。您必须指定目标安全组 (DestinationPrefixListIdDestinationSecurityGroupId) 或 CIDR 范围 (CidrIpCidrIpv6)。

Type: String

更新要求替换

CidrIpv6

IPv6 CIDR 范围。

Type: String

Required: Conditional。您必须指定目标安全组 (DestinationPrefixListIdDestinationSecurityGroupId) 或 CIDR 范围 (CidrIpCidrIpv6)。

更新要求替换

DestinationPrefixListId

Amazon VPC 终端节点的 AWS 服务前缀。有关更多信息,请参阅 Amazon VPC 用户指南 中的 VPC 终端节点

Required: Conditional。您必须指定目标安全组 (DestinationPrefixListIdDestinationSecurityGroupId) 或 CIDR 范围 (CidrIpCidrIpv6)。

Type: String

更新要求替换

DestinationSecurityGroupId

指定目标 Amazon VPC 安全组的组 ID。

Required: Conditional。您必须指定目标安全组 (DestinationPrefixListIdDestinationSecurityGroupId) 或 CIDR 范围 (CidrIpCidrIpv6)。

Type: String

更新要求替换

FromPort

TCP 和 UDP 协议端口范围的起始端口,或者某个 ICMP 类型编号如果为 icmp 属性指定 IpProtocol,则可以将 -1 指定为通配符(即,任何 ICMP 类型编号)。

Required: Yes

Type: Integer

更新要求替换

GroupId

要修改的 Amazon VPC 安全组的 ID。此值可能是对 :EC2::SecurityGroup 资源的引用,具有有效的 VpcId 属性或现有 Amazon VPC 安全组的 ID。

Required: Yes

Type: String

更新要求替换

IpProtocol

IP 协议名称或编号。要查看有效值,请参阅 AuthorizeSecurityGroupIngress 中的 IpProtocol 参数部分。

Required: Yes

Type: String

更新要求替换

ToPort

TCP 和 UDP 协议端口范围的终止端口,或者某个 ICMP 代码。如果为 icmp 属性指定 IpProtocol,则可以将 -1 指定为通配符(即,任何 ICMP 代码)。

Required: Yes

Type: Integer

更新要求替换

返回值

Ref

当该资源的逻辑 ID 提供给 Ref内部函数时,Ref 将返回资源名称。

有关使用 Ref 功能的更多信息,请参阅参考

VPC 安全组示例

在某些情况下,您可能拥有一个要向其添加出站规则的原始(来源)安全组,通过该规则允许向目的地(目标)安全组发送流量。该目标安全组还需要允许来自源安全组的流量的入站规则。请注意,您无法使用 Ref 函数为每个安全组指定出站和入站规则。这样做会造成循环依赖;您不能让两种资源互相依赖。您应该使用传出和传入资源来声明此类出站和入站规则,如下面的模板代码段所示。

JSON

Copy
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "SourceSG": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "VpcId" : "vpc-e063f789", "GroupDescription": "Sample source security group" } }, "TargetSG": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "VpcId" : "vpc-e063f789", "GroupDescription": "Sample target security group" } }, "OutboundRule": { "Type": "AWS::EC2::SecurityGroupEgress", "Properties":{ "IpProtocol": "tcp", "FromPort": "0", "ToPort": "65535", "DestinationSecurityGroupId": { "Fn::GetAtt": [ "TargetSG", "GroupId" ] }, "GroupId": { "Fn::GetAtt": [ "SourceSG", "GroupId" ] } } }, "InboundRule": { "Type": "AWS::EC2::SecurityGroupIngress", "Properties":{ "IpProtocol": "tcp", "FromPort": "0", "ToPort": "65535", "SourceSecurityGroupId": { "Fn::GetAtt": [ "SourceSG", "GroupId" ] }, "GroupId": { "Fn::GetAtt": [ "TargetSG", "GroupId" ] } } } } }

YAML

Copy
AWSTemplateFormatVersion: '2010-09-09' Resources: SourceSG: Type: AWS::EC2::SecurityGroup Properties: VpcId: vpc-e063f789 GroupDescription: Sample source security group TargetSG: Type: AWS::EC2::SecurityGroup Properties: VpcId: vpc-e063f789 GroupDescription: Sample target security group OutboundRule: Type: AWS::EC2::SecurityGroupEgress Properties: IpProtocol: tcp FromPort: '0' ToPort: '65535' DestinationSecurityGroupId: Fn::GetAtt: - TargetSG - GroupId GroupId: Fn::GetAtt: - SourceSG - GroupId InboundRule: Type: AWS::EC2::SecurityGroupIngress Properties: IpProtocol: tcp FromPort: '0' ToPort: '65535' SourceSecurityGroupId: Fn::GetAtt: - SourceSG - GroupId GroupId: Fn::GetAtt: - TargetSG - GroupId