説明
AWS::EC2::SecurityGroupのVpcIdを省略すると、リージョンのデフォルトVPCが使われます。デフォルトVPCもなければ作成に失敗します。省略によってVPCに属さないグループが作られるわけではありません。
想定される影響
環境によってデフォルトVPCが異なる、または存在しない場合、意図しないネットワークに作成されたり、デプロイに失敗したりするおそれがあります。
対処方法
意図したVpcIdを明示し、利用するリソースとの互換性を確認してください。既存グループのVPC変更ではリソースが置き換えられるため、接続への影響も確認してください。
例
デフォルトVPCに依存する構成に、明示的なVPC参照を追加します。AdminCidrには承認された管理用アドレス範囲を、myVPCには実際のVPC参照を指定してください。
変更前
yaml
Resources:
InstanceSecurityGroup:
Type: 'AWS::EC2::SecurityGroup'
Properties:
GroupName: My Group Name
# 22番ポートでSSH接続を許可
GroupDescription: Enable SSH access via port 22
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: !Ref AdminCidr
変更後
yaml
Resources:
InstanceSecurityGroup:
Type: 'AWS::EC2::SecurityGroup'
Properties:
GroupName: My Group Name
# 22番ポートでSSH接続を許可
GroupDescription: Enable SSH access via port 22
VpcId:
Ref: myVPC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: '22'
ToPort: '22'
CidrIp: !Ref AdminCidr