繁体   English   中英

AWS IAM 实例策略将凭证应用于一个区域中的实例,但不应用于另一个区域中的实例

[英]AWS IAM instance policy applying credentials to instance in one region, but not another

我有一个设置,我从模板启动 AWS EC2 实例,它们的 AMI 包含 AWS CLI,因此它可以在启动时复制私有 S3 存储桶的内容。 此模板自动应用具有“AmazonS3ReadOnlyAccess”策略的 IAM 角色。 到目前为止,这在 eu-west-2 区域一直按预期运行,但现在我想在 us-east-2 区域运行这些实例。 我复制了 AMI 并使用与 eu-west-2 中相同的设置制作了一个新模板,但是当同步 S3 存储桶的脚本启动时(它只是一个运行“aws s3 同步...... ") 同步文件夹的内容为空。

环顾四周后,我注意到它会引发“致命错误:无法找到凭据”错误。 我使用“aws configure list”检查了凭据,发现没有设置 access_key、secret_key 和区域。 如果我在 eu-west-2 中运行相同的实例,这些字段将被填充。

aws 配置列表

我已经尝试重新复制基本 AMI,重新创建启动模板,创建区域特定的存储桶,创建新的 IAM 策略以及所有这些作为 IAM 用户和根用户,凭证仍然在 eu-west-2 中设置,但不是美国东部 2。 唯一不同的配置是 VPC、su.net 和路由表设置——原因很明显,因为它们需要位于新区域中。 有人知道为什么会这样吗? 因为我已经没有想法了。

us-east-2a 实例us-east-2a 实例

us-east-2b 实例us-east-2b 实例

好吧,因为我一直对复制的 AMI 有问题,所以我决定在 us-east-2 服务器上从头开始构建一个。

我创建了一个新实例,对其进行了设置,并创建了一个新的 AMI。 当我启动它时,实例策略正确应用并且一切正常。 然而,当我从 AMI 制作模板时,所有凭据再次丢失。 我尝试从 AMI(而不是模板)启动实例,一切都再次运行。 我比较了模板和 AMI 启动实例之间的设置,唯一的区别(除了不同的 IP 等)是 su.net - 工作 AMI 图像在 us-east-2a 上,模板创建的实例在 us-east- 2b. 现在这对我来说似乎很奇怪,该策略应用的凭据将依赖于 su.net,但就我测试的情况而言,情况似乎如此。

长话短说;博士 由于未在与构建原始 AMI 的位置(us-east-2a 和 us-east-2b)相同的 su.net 上启动新映像,因此未应用策略集凭据。 通过将启动模板设置为使用相同的 su.net 来解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM