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

AWS::EC2::SecurityGroupIngress

AWS::EC2::SecurityGroupIngress 资源将传入规则添加到 Amazon EC2 或 Amazon VPC 安全组。

重要

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

语法

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

JSON

{ "Type" : "AWS::EC2::SecurityGroupIngress", "Properties" : { "CidrIp" : String, "CidrIpv6" : String, "FromPort" : Integer, "GroupId" : String, "GroupName" : String, "IpProtocol" : String, "SourceSecurityGroupName" : String, "SourceSecurityGroupId" : String, "SourceSecurityGroupOwnerId" : String, "ToPort" : Integer } }

YAML

Type: "AWS::EC2::SecurityGroupIngress" Properties: CidrIp: String CidrIpv6: String FromPort: Integer GroupId: String GroupName: String IpProtocol: String SourceSecurityGroupName: String SourceSecurityGroupId: String SourceSecurityGroupOwnerId: String ToPort: Integer

属性

有关将传入规则添加到 Amazon EC2 或 VPC 安全组的更多信息,请参阅 Amazon EC2 API Reference 中的 AuthorizeSecurityGroupIngress

注意

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

CidrIp

IPv4 CIDR 范围。

有关 CIDR 范围的概述,请访问 Wikipedia Tutorial

Type: String

Required: Conditional。您必须指定源安全组 (SourceSecurityGroupNameSourceSecurityGroupId) 或 CIDR 范围 (CidrIpCidrIpv6)。

更新要求替换

CidrIpv6

IPv6 CIDR 范围。

Type: String

Required: Conditional。您必须指定源安全组 (SourceSecurityGroupNameSourceSecurityGroupId) 或 CIDR 范围 (CidrIpCidrIpv6)。

更新要求替换

FromPort

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

Type: Integer

对于 ICMP 和使用端口的任何协议,Required: Yes。

更新要求替换

GroupId

待修改 Amazon EC2 或 VPC 安全组的 ID。该组必须属于您的账户。

Type: String

Required: Conditional。您必须指定 GroupName 属性或 GroupId 属性。对于 VPC 中的安全组,必须使用 GroupId 属性。举例来说,EC2-VPC 账户必须使用 GroupId 属性。

更新要求替换

GroupName

待修改 Amazon EC2 安全组(非 VPC 安全组)的名称。该值可以是对 AWS::EC2::SecurityGroup 资源的引用或现有 Amazon EC2 安全组的名称。

Type: String

Required: Conditional。您必须指定 GroupName 属性或 GroupId 属性。对于 VPC 中的安全组,必须使用 GroupId 属性。举例来说,EC2-VPC 账户必须使用 GroupId 属性。

更新要求替换

IpProtocol

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

Type: String

Required: Yes

更新要求替换

SourceSecurityGroupId

指定源安全组的 ID 或使用 Ref 内部函数,以引用同一模板中定义的安全组的逻辑名称。

Type: String

Required: Conditional。您必须指定源安全组 (SourceSecurityGroupNameSourceSecurityGroupId) 或 CIDR 范围 (CidrIpCidrIpv6)。

更新要求替换

SourceSecurityGroupName

指定 Amazon EC2 安全组 (非 VPC 安全组) 的名称以便访问,或者使用 Ref 内部函数以引用在同一模板中定义的安全组的逻辑 ID。对于 VPC 中的实例,请指定 SourceSecurityGroupId 属性。

Type: String

Required: Conditional。您必须指定源安全组 (SourceSecurityGroupNameSourceSecurityGroupId) 或 CIDR 范围 (CidrIpCidrIpv6)。

更新要求替换

SourceSecurityGroupOwnerId

指定 Amazon EC2 安全组(SourceSecurityGroupName 属性)中所指定所有者的 AWS 账户 ID。

Type: String

Required: Conditional。如果已指定 SourceSecurityGroupName,并且该安全组的所有者账户并非创建堆栈的账户,则必须指定 SourceSecurityGroupOwnerId;否则,可根据需要选择是否指定此属性。

更新要求替换

ToPort

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

Type: Integer

对于 ICMP 和使用端口的任何协议,Required: Yes。

更新要求替换

示例

EC2 安全组和传入规则

要创建 Amazon EC2(非 VPC)安全组和传入规则,请使用传入规则中的 SourceSecurityGroupName 属性。

以下模板代码段可创建具有以下特点的 EC2 安全组:其传入规则允许安全组中的任何其他主机从端口 80 传入流量。该代码段使用内部函数 Ref 来指定 SourceSecurityGroupName 的值。

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "SGBase": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription": "Base Security Group", "SecurityGroupIngress": [ { "IpProtocol": "tcp", "CidrIp": "0.0.0.0/0", "FromPort": "22", "ToPort": "22" } ] } }, "SGBaseIngress": { "Type": "AWS::EC2::SecurityGroupIngress", "Properties": { "GroupName": { "Ref": "SGBase" }, "IpProtocol": "tcp", "FromPort": "80", "ToPort": "80", "SourceSecurityGroupName": { "Ref": "SGBase" } } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Resources: SGBase: Type: 'AWS::EC2::SecurityGroup' Properties: GroupDescription: Base Security Group SecurityGroupIngress: - IpProtocol: tcp CidrIp: 0.0.0.0/0 FromPort: '22' ToPort: '22' SGBaseIngress: Type: 'AWS::EC2::SecurityGroupIngress' Properties: GroupName: !Ref SGBase IpProtocol: tcp FromPort: '80' ToPort: '80' SourceSecurityGroupName: !Ref SGBase

具有传出和传入规则的 VPC 安全组

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

JSON

{ "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

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

允许 Ping 请求

若要允许 Ping 请求,请添加 ICMP 协议类型,为 ICMP 类型指定 8(回显请求),为 ICMP 代码指定 0-1(全部)。

JSON

"SGPing" : { "Type" : "AWS::EC2::SecurityGroup", "DependsOn": "VPC", "Properties" : { "GroupDescription" : "SG to test ping", "VpcId" : {"Ref" : "VPC"}, "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : "10.0.0.0/24" }, { "IpProtocol" : "icmp", "FromPort" : "8", "ToPort" : "-1", "CidrIp" : "10.0.0.0/24" } ] } }

YAML

SGPing: Type: AWS::EC2::SecurityGroup DependsOn: VPC Properties: GroupDescription: SG to test ping VpcId: Ref: VPC SecurityGroupIngress: - IpProtocol: tcp FromPort: '22' ToPort: '22' CidrIp: 10.0.0.0/24 - IpProtocol: icmp FromPort: '8' ToPort: "-1" CidrIp: 10.0.0.0/24

本页内容: