时,我有这是CFN模板使用此类创建EC2实例:更新现有的安全组创建新的EC2 CloudFormation
参数:
"VPCId": {
"Type": "AWS::EC2::VPC::Id"
"Description": "The VPC Id to where this instance is being created"
}
"Subnet": {
"Description": "Subnet to put Instance",
"Type": "AWS::EC2::Subnet::Id",
},
有以下安全组:
"InstanceSecurityGroup": {
"Type": "AWS::EC2::SecurityGroup",
"Properties": {
"GroupDescription": "Enables access to instance by port 80",
"VPCId": {
"Ref": "VPCId"
},
"SecurityGroupIngress": [
{
"IpProtocol": "tcp",
"FromPort": "80",
"ToPort": "80",
"CidrIp": {
"Ref": "ClientCIDR"
}
}
]
},
并且实例资源的一部分:
"WebServer": {
"Type": "AWS::EC2::Instance",
"Properties": {
"IamInstanceProfile": "access-profile",
"SecurityGroupIds": [
{ "Fn::GetAtt": [
"InstanceSecurityGroup",
"GroupId"
]
}
],
"SubnetId": {
"Ref": "Subnet"
},
我想使用另一个模板创建另外几个实例。这个实例应该可以通过端口22访问上面的实例,并在UserData中连接到它。
我不知道它是如何组织的,我看到的一种方法是在建立到第一个实例的ssh连接之前,通过UserData使用aws cli更新安全组。如何使用资源进行组织?我没有找到任何有关这方面的信息或例子。请帮忙!谢谢!
您是否可以为需要打开端口22的实例创建第二个安全组? – jbird
当我使用第二个模板创建实例时,它们每次都有随机的公用IP。所以,我应该能够以某种方式更新WebServer实例的规则 – BigBoss
啊,我明白了。西蒙 - 皮埃尔的回答如下。安全组可以引用其他安全组。 – jbird