【问题标题】:Sudo cannot find a file that exists in EC2 instance when running in an ebextension config在 ebextension 配置中运行时,Sudo 找不到 EC2 实例中存在的文件
【发布时间】:2021-02-21 03:18:24
【问题描述】:

我有一个弹性 beanstalk 实例,我可以使用 SSM 访问底层 EC2,当我这样做时,我可以清楚地看到这个文件 /etc/sudoers.d/ssm-agent-users 存在但是,当我将以下命令添加到 ebextension 配置时:

01-command:
  command: sudo sed -i '/ssm-user ALL=(ALL) NOPASSWD:ALL/d' /etc/sudoers.d/ssm-agent-users

在尝试部署 EB 实例时显示此错误:

Command failed on instance. Return code: 2 Output: sed: can't read /etc/sudoers.d/ssm-agent-users: No such file or directory. command 01-command in .ebextensions/05_run_startup_script.config failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.

有谁知道为什么我在使用会话访问 EC2 时可以清楚地看到该文件,但 ebextension 命令似乎找不到相同的文件?

对于任何好奇的人,我正在尝试在启动时自动禁用实例的 SSM 访问。

【问题讨论】:

  • 你为什么要这样做?您可以通过不授予您的实例角色 SSM 权限来拒绝对 SSM 的权限。
  • 我认为出于安全原因,如果可能,请阻止具有 IAM 访问权限的人将 SSM 权限授予没有他们的角色。

标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk config


【解决方案1】:

ssm-agent-users 文件仅第一次 SSM 会话管理器登录后创建。因此,没有新实例会立即使用此文件。

但如果您想阻止会话管理器,您可以在您的实例角色中Deny 其权限。权限显示为here

【讨论】:

  • 是的,我们可以通过 IAM 做到这一点,我想如果没有其他选择的话。您是否碰巧知道这是否可以作为替代sudo yum erase amazon-ssm-agent –y 工作?我相信它基本上完全卸载了 SSM 代理。
  • @new-dev-123 我还是不明白。如果删除它会解决什么问题?以后任何人仍然可以安装它。这就是为什么您拥有 IAM 权限来控制对 SSM 的访问。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-14
  • 2020-08-20
  • 2014-03-08
  • 1970-01-01
  • 2012-01-11
  • 2020-07-14
相关资源
最近更新 更多