メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

EC2 セキュリティグループルールのプロパティタイプ

EC2 セキュリティグループルールは、AWS::EC2::SecurityGroup タイプの埋め込みプロパティです。

SecurityGroupIngress の構文

JSON

Copy
{ "CidrIp" : String, "CidrIpv6" : String, "Description" : String, "FromPort" : Integer, "IpProtocol" : String, "SourceSecurityGroupId" : String, "SourceSecurityGroupName" : String, "SourceSecurityGroupOwnerId" : String, "ToPort" : Integer }

YAML

Copy
CidrIp: String CidrIpv6: String Description: String FromPort: Integer IpProtocol: String SourceSecurityGroupId: String SourceSecurityGroupName: String SourceSecurityGroupOwnerId: String ToPort: Integer

SecurityGroupEgress の構文

JSON

Copy
{ "CidrIp" : String, "CidrIpv6" : String, "Description" : String, "DestinationPrefixListId (SecurityGroupEgress only)DestinationPrefixListId (SecurityGroupEgress only)" : String, "FromPort" : Integer, "IpProtocol" : String, "DestinationSecurityGroupId" : String, "ToPort" : Integer }

プロパティ

CidrIp

IPv4 CIDR の範囲を指定します。

Required: Conditional。CidrIpCidrIpv6DestinationPrefixListIdDestinationSecurityGroupIdSourceSecurityGroupId のいずれかのプロパティを 1 つのみ指定する必要があります。

Type: String

CidrIpv6

IPv6 CIDR の範囲を指定します。

Required: Conditional。CidrIpCidrIpv6DestinationPrefixListIdDestinationSecurityGroupIdSourceSecurityGroupId のいずれかのプロパティを 1 つのみ指定する必要があります。

Type: String

Description

セキュリティグループルールの説明。

Type: String

DestinationPrefixListId (SecurityGroupEgress only)

Amazon VPC エンドポイントの AWS サービスプレフィックス。詳細については、Amazon VPC ユーザーガイド の「VPC エンドポイント」を参照してください。

Required: Conditional。CidrIpCidrIpv6DestinationPrefixListIdDestinationSecurityGroupIdSourceSecurityGroupId のいずれかのプロパティを 1 つのみ指定する必要があります。

Type: String

DestinationSecurityGroupId (SecurityGroupEgress only)

対象 Amazon VPC セキュリティグループの GroupId を指定します。

Required: Conditional。CidrIpCidrIpv6DestinationPrefixListIdDestinationSecurityGroupIdSourceSecurityGroupId のいずれかのプロパティを 1 つのみ指定する必要があります。

Type: String

FromPort

TCP および UDP プロトコルのポート範囲の開始番号、または ICMP タイプの番号。ICMP タイプの番号が -1 の場合、ワイルドカード (任意の ICMP タイプの番号) を示します。

Required: No

Type: Integer

IpProtocol

IP プロトコルの名前または番号。有効な値については、「AuthorizeSecurityGroupIngress」の IpProtocol パラメーターを参照してください。

Required: Yes

Type: String

SourceSecurityGroupId (SecurityGroupIngress only)

VPC セキュリティグループのみ。アクセスを許可する Amazon EC2 セキュリティグループの ID を指定します。Ref 組み込み関数を使用して、同じテンプレート内で定義されているセキュリティグループの論理 ID を参照することができます。

Required: Conditional。CidrIpCidrIpv6DestinationPrefixListIdDestinationSecurityGroupIdSourceSecurityGroupId のいずれかのプロパティを 1 つのみ指定する必要があります。

Type: String

SourceSecurityGroupName (SecurityGroupIngress only)

非 VPC セキュリティグループのみ。アクセスに使用する Amazon EC2 セキュリティグループの名前を指定します。Ref 組み込み関数を使用して、同じテンプレート内で定義されているセキュリティグループの論理名を参照することができます。

Required: Conditional。CidrIp を指定した場合は、SourceSecurityGroupName を指定しないでください。

Type: String

SourceSecurityGroupOwnerId (SecurityGroupIngress only)

SourceSecurityGroupName プロパティに指定された Amazon EC2 セキュリティグループの所有者の AWS アカウント ID を指定します。

Required: Conditional。SourceSecurityGroupName を指定していて、そのセキュリティグループがスタックを作成しているアカウントとは異なるアカウントに所有されている場合は、SourceSecurityGroupOwnerId を指定する必要があります。それ以外の場合は、このプロパティはオプションです。

Type: String

ToPort

TCP および UDP プロトコルのポート範囲の終了番号、または ICMP コード。 ICMP コードが -1 の場合、ワイルドカード (任意の ICMP コード) を示します。

Required: No

Type: Integer

CidrIp を持つセキュリティグループ

JSON

Copy
"InstanceSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "Enable SSH access via port 22", "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : "0.0.0.0/0" } ] } }

YAML

Copy
InstanceSecurityGroup: Type: "AWS::EC2::SecurityGroup" Properties: GroupDescription: "Enable SSH access via port 22" SecurityGroupIngress: - IpProtocol: "tcp" FromPort: "22" ToPort: "22" CidrIp: "0.0.0.0/0"

セキュリティグループ ID を持つセキュリティグループ

JSON

Copy
"InstanceSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "Enable HTTP access on the configured port", "VpcId" : { "Ref" : "VpcId" }, "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : { "Ref" : "WebServerPort" }, "ToPort" : { "Ref" : "WebServerPort" }, "SourceSecurityGroupId" : { "Ref" : "LoadBalancerSecurityGroup" } } ] } }

YAML

Copy
InstanceSecurityGroup: Type: "AWS::EC2::SecurityGroup" Properties: GroupDescription: "Enable HTTP access on the configured port" VpcId: Ref: "VpcId" SecurityGroupIngress: - IpProtocol: "tcp" FromPort: Ref: "WebServerPort" ToPort: Ref: "WebServerPort" SourceSecurityGroupId: Ref: "LoadBalancerSecurityGroup"

複数の Ingress ルールを持つセキュリティグループ

このスニペットは、CidrIp を使用した SSH アクセス、および SourceSecurityGroupName を使用した HTTP アクセスを許可します。Fn::GetAtt は、Elastic Load Balancing から SourceSecurityGroupNameSourceSecurityGroupOwnerId の値を取得するために使用されます。

JSON

Copy
"ElasticLoadBalancer" : { "Type" : "AWS::ElasticLoadBalancing::LoadBalancer", "Properties" : { "AvailabilityZones" : { "Fn::GetAZs" : "" }, "Listeners" : [ { "LoadBalancerPort" : "80", "InstancePort" : { "Ref" : "WebServerPort" }, "Protocol" : "HTTP" } ], "HealthCheck" : { "Target" : { "Fn::Join" : [ "", ["HTTP:", { "Ref" : "WebServerPort" }, "/"]]}, "HealthyThreshold" : "3", "UnhealthyThreshold" : "5", "Interval" : "30", "Timeout" : "5" } } }, "InstanceSecurityGroup" : { "Type" : "AWS::EC2::SecurityGroup", "Properties" : { "GroupDescription" : "Enable SSH access and HTTP from the load balancer only", "SecurityGroupIngress" : [ { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : "0.0.0.0/0" }, { "IpProtocol" : "tcp", "FromPort" : { "Ref" : "WebServerPort" }, "ToPort" : { "Ref" : "WebServerPort" }, "SourceSecurityGroupOwnerId" : {"Fn::GetAtt" : ["ElasticLoadBalancer", "SourceSecurityGroup.OwnerAlias"]}, "SourceSecurityGroupName" : {"Fn::GetAtt" : ["ElasticLoadBalancer", "SourceSecurityGroup.GroupName"]} } ] } }

YAML

Copy
ElasticLoadBalancer: Type: "AWS::ElasticLoadBalancing::LoadBalancer" Properties: AvailabilityZones: Fn::GetAZs: "" Listeners: - LoadBalancerPort: "80" InstancePort: Ref: "WebServerPort" Protocol: "HTTP" HealthCheck: Target: Fn::Join: - "" - - "HTTP:" - Ref: "WebServerPort" - "/" HealthyThreshold: "3" UnhealthyThreshold: "5" Interval: "30" Timeout: "5" InstanceSecurityGroup: Type: "AWS::EC2::SecurityGroup" Properties: GroupDescription: "Enable SSH access and HTTP from the load balancer only" SecurityGroupIngress: - IpProtocol: "tcp" FromPort: "22" ToPort: "22" CidrIp: "0.0.0.0/0" - IpProtocol: "tcp" FromPort: Ref: "WebServerPort" ToPort: Ref: "WebServerPort" SourceSecurityGroupOwnerId: Fn::GetAtt: - "ElasticLoadBalancer" - "SourceSecurityGroup.OwnerAlias" SourceSecurityGroupName: Fn::GetAtt: - "ElasticLoadBalancer" - "SourceSecurityGroup.GroupName"

以下の資料も参照してください。