【发布时间】:2021-03-26 17:13:07
【问题描述】:
我有一个基于 CloudFormation 的应用程序部署,它使用 IAM 实例配置文件从 Marketplace AMI 创建一个 Amazon Linux 2 EC2 实例。在 CloudFormation 模板中,我通过 cfn-init 运行脚本,其中包含一些 AWS CLI 命令,例如 ssm get-parameter,并且还使用 mount 和 amazon-efs-utils 安装 EFS 卷。这一直很有效。
现在,我有一个客户正在使用通用 AMI 和 CloudFormation 模板在其 AWS 账户中运行。对于他们来说,cfn-init 失败是因为 cfn-init 以 root 身份运行,但奇怪的是 root 没有 IAM 权限并且无法运行脚本或基于 efs-helper 的挂载,即使实例配置文件在那里。但是 ec2-user 确实拥有来自 Instance Profile 的 IAM 权限!
总结一下:
ec2-user 是否拥有来自实例配置文件的 IAM 权限。
# logged in as ec2-user
aws ssm get-parameter --name "/aParameter"
返回结果
root 没有实例配置文件中的 IAM 权限。
# logged in as ec2-user
sudo aws ssm get-parameter --name "/aParameter"
An error occurred (ParameterNotFound) when calling the GetParameter operation:
我希望在实例中运行的所有用户如果没有通过其他方式明确地进行身份验证,就会将实例配置文件作为他们的凭据。我在客户的环境中看不到任何会导致这种情况的东西 - 我在想可能是服务控制策略 - 但他们没有。
有没有人看到这种行为并有解决办法?
提前非常感谢.....
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-iam