我认为这个话题很容易找到信息,但我误会了。
我正在使用Paloalto实例构建Terraform,该实例需要用户数据并在HTTPS上卷曲以验证用户数据的应用。
当我在公共接口上指定安全组时入站出站https,ssh0.0.0.0/0它的工作就像魅力。
,但我需要收紧安全性并仅允许从某些CIDRS入站。
可以使用最紧密的安全组设置的成功用户数据引导程序的EC2连接性的要求?
感谢您的建议
这取决于您所说的"用户数据bootstrap"。
如果您是从实例元数据服务中获取实例的用户数据,这不需要规则,因为其IP地址为169.254.169.254是特殊规则的。
当调用亚马逊安全组和网络ACL不会过滤访问或从链接本地地址(169.254.0.0/16)或AWS-保留IPv4地址的流量,这些是子网的前四个IPv4地址(包括Amazon DNSVPC的服务器地址)。
https://docs.aws.amazon.com/vpc/latest/userguide/vpc_security.html
RunInstances
操作时,用户数据(从这个意义上讲)将传递给EC2服务API,要求启动实例。EC2服务存储用户数据,以便实例可以在实例元数据启动后将其获取。这样可以防止实例需要外部获取。
如果这是您所指的,则无需安全组配置。
另请参阅169.254.169.254?
的特殊内容但是,由于您提到了Paloalto,因此您似乎还需要访问S3存储桶,以此为基础:
VM系列防火墙的管理接口必须能够访问S3存储桶以完成自举。您可以将公共IP地址或弹性IP地址分配给管理接口,以便可以通过Internet访问S3存储桶。或者,如果您希望在VPC和S3存储桶之间创建私人连接,并且不想在防火墙管理接口上启用Internet访问,则在与S3存储桶同一区域中创建AWS VPC端点。有关更多信息,请参阅有关设置VPC端点的AWS文档
S3的VPC端点不仅允许您不仅可以访问S3(在与端点同一区域内),而且还可以使用Internet网关,还可以使用VPC端点限制实例,以仅访问特定的存储桶并执行特定的操作。这是控制整个S3的限制访问的唯一有效方法,因为否则必须通过Internet访问它,并且其IP地址不是静态的,因此在安全组中无法引用。即使可能基于IP的限制,它也不会提供有意义的安全性,因为恶意用户可以使用自己的存储桶来完成数据剥落,因为您将允许与所有S3的连接。IP地址与特定存储桶没有相关性。