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

AWS::EC2::SecurityGroupIngress

AWS::EC2::SecurityGroupIngress リソースは、Amazon EC2 または Amazon VPC セキュリティグループに Ingress ルールを追加します。

重要

AWS::EC2::SecurityGroupIngressAWS::EC2::SecurityGroupEgress は、通常、Ingress ルールと Egress ルールの中でセキュリティグループが相互に参照できるようにするために必要な場合にのみ使用します。それ以外の場合、AWS::EC2::SecurityGroup の埋め込み Ingress ルールと Egress ルールを使用します。詳細については、Amazon EC2 セキュリティグループを参照してください。

トピック

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

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

YAML

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

プロパティ

Amazon EC2 または VPC セキュリティグループに対する Ingress ルールの追加の詳細については、Amazon EC2 API Referenceの「AuthorizeSecurityGroupIngress」を参照してください。

注記

このリソースの論理 ID を変更した場合、そのリソースの更新をトリガーするためには、プロパティ値も更新する必要があります。

CidrIp

IPv4 CIDR の範囲。

CIDR 範囲の概要については、Wikipedia のチュートリアルを参照してください。

Type: String

Required: Conditional。ソースセキュリティグループ (SourceSecurityGroupName または SourceSecurityGroupId) または CIDR 範囲 (CidrIp または CidrIpv6)。

更新に伴う要件: 置換

CidrIpv6

IPv6 CIDR 範囲。

Type: String

Required: Conditional。ソースセキュリティグループ (SourceSecurityGroupName または SourceSecurityGroupId) または CIDR 範囲 (CidrIp または CidrIpv6)。

更新に伴う要件: 置換

Description

入力ルールの説明。

必須: いいえ

タイプ: 文字列

更新に伴う要件: 中断はありません。

FromPort

TCP および UDP プロトコルのポート範囲の開始、または ICMP タイプの番号です。icmp プロパティに IpProtocol を指定する場合、ワイルドカード (つまり、任意の ICMP タイプ番号) として -1 を指定できます。

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 を指定します。または、同じテンプレートで定義されたセキュリティグループの論理 ID を参照するには、Ref 組み込み関数を使用します。

Type: String

Required: Conditional。ソースセキュリティグループ (SourceSecurityGroupName または SourceSecurityGroupId) または CIDR 範囲 (CidrIp または CidrIpv6)。

更新に伴う要件: 置換

SourceSecurityGroupName

アクセスを許可する Amazon EC2 セキュリティグループ (非 VPC セキュリティグループ) の名前を指定します。または、同じテンプレートで定義されたセキュリティグループの論理 ID を参照するには、Ref 組み込み関数を使用します。VPC 内のインスタンスの場合、SourceSecurityGroupId プロパティを指定します。

Type: String

Required: Conditional。ソースセキュリティグループ (SourceSecurityGroupName または SourceSecurityGroupId) または CIDR 範囲 (CidrIp または CidrIpv6)。

更新に伴う要件: 置換

SourceSecurityGroupOwnerId

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

Type: String

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

更新に伴う要件: 置換

ToPort

TCP および UDP プロトコルのポート範囲の終了、または ICMP コードです。icmp プロパティに IpProtocol を指定する場合、ワイルドカード (つまり、任意の ICMP コード) として -1 を指定できます。

Type: Integer

ICMP プロトコルおよびポートを使用するプロトコルでは Required: Yes

更新に伴う要件: 置換

EC2 セキュリティグループと Ingress ルール

Amazon EC2 (非 VPC) のセキュリティグループと Ingress ルールを作成するには、SourceSecurityGroupName プロパティを Ingress ルールで使用します。

次のテンプレートスニペットでは、EC2 セキュリティグループを作成し、その Ingress ルールで、同じセキュリティグループ内の他のホストからの着信トラフィックをポート 80 で許可しています。SourceSecurityGroupName の値は、組み込み関数 Ref を使って指定しています。

JSON

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

Copy
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

Egress ルールと Ingress ルールを持つ VPC セキュリティグループ

送信元 (ソース) セキュリティグループにアウトバウンドルールを追加し、送信先 (ターゲット) セキュリティグループへのトラフィックを許可したい場合があります。この場合、ターゲットセキュリティグループにも、そのソースセキュリティグループからのトラフィックを許可するインバウンドルールが必要です。各セキュリティグループのアウトバウンドおよびインバウンドルールを指定するために Ref 関数を使用できないことに注意してください。そのようにすると、依存関係に循環が生じます。2 つのリソースが相互に依存し合うことはできません。代わりに、Egress リソースと Ingress リソースを使用してそれらのアウトバウンドルールとインバウンドルールを宣言してください。次のテンプレートスニペットにその例を示します。

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

Ping リクエストの許可

ping リクエストを許可するには、ICMP プロトコルタイプを追加し、ICMP タイプに 8 (エコー要求) を、ICMP コードに 0 または -1 (すべて) を指定します。

JSON

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

Copy
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

このページの内容: