AWS::EC2::SecurityGroup - AWS CloudFormation

AWS::EC2::SecurityGroup

セキュリティグループを指定します。セキュリティグループを作成するには、VpcId プロパティを使用して、セキュリティグループを作成する VPC を指定します。

このタイプは更新をサポートしています。スタックを更新する方法の詳細については、「AWS CloudFormation スタックの更新」を参照してください。

重要

これらのセキュリティグループの Ingress ルールおよび Egress ルールで 2 つのセキュリティグループをクロスレファレンスするには、AWS::EC2::SecurityGroupEgress および AWS::EC2::SecurityGroupIngress リソースを使用してルールを定義します。AWS::EC2::SecurityGroup の埋め込み Ingress ルールと Egress ルールは使用しないでください。そのようにすると、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

戻り値

参照番号

このリソースの論理 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。物理 ID は、{ "Ref" : "myVPC" } などの AWS::EC2::VPC へのリファレンスを使用して取得できます。

基本的な Ingress ルールと Egress ルールの定義

次の例では、送受信ルールを持つセキュリティグループを指定します。

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 プロトコルで任意の場所への送信トラフィックを許可するデフォルト送信ルールが作成されます。デフォルトルールは、1 つ以上の送信ルールを指定したときにのみ削除されます。デフォルトルールを削除し、送信トラフィックを 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

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