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

AWS::EC2::SecurityGroup

指定安全组。要创建安全组,请使用 VpcId 属性指定要为其创建安全组的 VPC。

此类型支持更新。有关更新堆栈的更多信息,请参阅 AWS CloudFormation 堆栈更新

重要

如果要在这些安全组的传入和传出规则中交叉引用两个安全组,请使用 AWS::EC2::SecurityGroupEgressAWS::EC2::SecurityGroupIngress 资源定义您的规则。不要在 AWS::EC2::SecurityGroup 中使用嵌入式传入和传出规则。这样会导致循环依赖,这是 CloudFormation 不允许的。

语法

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

JSON

{ "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : String, "GroupName" : String, "SecurityGroupEgress" : [ Egress, ... ], "SecurityGroupIngress" : [ Ingress, ... ], "Tags" : [ Tag, ... ], "VpcId" : String } }

YAML

Type: AWS::EC2::SecurityGroup Properties: GroupDescription: String GroupName: String SecurityGroupEgress: - Egress SecurityGroupIngress: - Ingress Tags: - Tag VpcId: String

属性

GroupDescription

安全组的描述。此仅为信息性。

约束:最多 255 个字符

针对 EC2-Classic 的约束:ASCII 字符

针对 EC2-VPC 的约束:a-z、A-Z、0-9、空格和 ._-:/()#,@[]+=&;{}!$*

必需:是

类型:字符串

Update requires: Replacement

GroupName

安全组的名称。

约束:最多 255 个字符。不能以 sg- 开头。

针对 EC2-Classic 的约束:ASCII 字符

针对 EC2-VPC 的约束:a-z、A-Z、0-9、空格和 ._-:/()#,@[]+=&;{}!$*

必需:否

类型:字符串

Update requires: Replacement

SecurityGroupEgress

[仅限 VPC] 与安全组关联的出站规则。有一个短暂的中断,在此期间您无法连接到安全组。

必需:否

类型Egress 的列表

Update requires: No interruption

SecurityGroupIngress

与安全组关联的入站规则。有一个短暂的中断,在此期间您无法连接到安全组。

必需:否

类型Ingress 的列表

Update requires: No interruption

Tags

分配给安全组的任何标签。

必需:否

类型Tag 的列表

Update requires: No interruption

VpcId

[仅限 VPC] 安全组的 VPC 的 ID。

必需:否

类型:字符串

Update requires: Replacement

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回资源 ID。对于在未指定 VPC(EC2-Classic 或默认 VPC)的情况下创建的安全组,Ref 返回资源名称。

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

Fn::GetAtt

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

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

GroupId

指定安全组的组 ID,如 sg-94b3a1f6

VpcId

VPC 的物理 ID。您可以使用对 AWS::EC2::VPC 的引用(例如:{ "Ref" : "myVPC" })来获取物理 ID。

示例

定义基本的传入和传出规则

以下示例指定一个具有传入和传出规则的安全组。

JSON

"InstanceSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "Allow http to client host", "VpcId" : {"Ref" : "myVPC"}, "SecurityGroupIngress" : [{ "IpProtocol" : "tcp", "FromPort" : 80, "ToPort" : 80, "CidrIp" : "0.0.0.0/0" }], "SecurityGroupEgress" : [{ "IpProtocol" : "tcp", "FromPort" : 80, "ToPort" : 80, "CidrIp" : "0.0.0.0/0" }] } }

YAML

InstanceSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Allow http to client host VpcId: Ref: myVPC SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0 SecurityGroupEgress: - IpProtocol: tcp FromPort: 80 ToPort: 80 CidrIp: 0.0.0.0/0

删除默认规则

在指定 VPC 安全组时,Amazon EC2 将创建一个默认传出规则,以允许所有端口和 IP 协议上的传出流量流向任何位置。仅当您指定一个或多个传出规则时,默认规则才会被删除。如果要删除默认规则并将传出流量限制到 localhost (127.0.0.1/32),则可以使用以下示例。

JSON

"sgwithoutegress": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription": "Limits security group egress traffic", "SecurityGroupEgress": [ { "CidrIp": "127.0.0.1/32", "IpProtocol": "-1" } ], "VpcId": { "Ref": "myVPC"} } }

YAML

sgwithoutegress: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Limits security group egress traffic SecurityGroupEgress: - CidrIp: 127.0.0.1/32 IpProtocol: "-1" VpcId: Ref: myVPC

另请参阅