我有一个通过 Jenkins 在各个区域创建的 Cloudformation 堆栈。我在一个区域有一个 Chef 服务器,它有一个单独的安全组。我需要通过 Cloudformation 创建的新实例注册/创建,并将其自身添加到 us-west-1 中的 Chef SG,无论它们位于哪个区域。
这可行吗?
编辑:由于多种冗长/复杂的原因,我需要通过 Cloudformation 脚本来执行此操作,而不是使用其他方法。
编辑2:为了清楚起见,我不希望实例成为 SG 的一部分,而是希望将新实例的 EIP 添加为 SG 中的入口。
答案1
EC2/VPC 安全组受区域限制。
If you're using EC2-Classic, you must use security groups created specifically for
EC2-Classic. When you launch an instance in EC2-Classic, you must specify a security
group in the same region as the instance. You can't specify a security group that
you created for a VPC when you launch an instance in EC2-Classic.
答案2
这是可行的。
您想要的是安全组中有一个安全组。它的工作原理正如其名称所示。
1)创建名为 SG-CLIENT 和 SG-INGRESS 的安全组
2) 对于您的 CHEF 实例,使用 SG-INGRESS 安全组对其进行标记。在 SG-INGRESS 安全组中,添加一条规则以启用对 CHEF 端口的访问,使用“SG-CLIENT”源
3) 使用云形成模板/脚本,将任何新实例标记到 SG-CLIENT 安全组。
请参阅此处的图片:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#adding-security-group-rule例如规则中的安全组。
參閱https://s3.amazonaws.com/cloudformation-templates-us-east-1/EC2InstanceWithSecurityGroupSample.template通过云形成模板在安全组中注册实例。
注意:API 文档似乎暗示允许使用“帐户 ID/安全组名称”将其他人的“安全组”用作源。如果您尝试跨地区执行此操作,这应该会有所帮助。信息:http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-AuthorizeSecurityGroupIngress.html