我正在使用 EC2 Image Builder 构建 AMI。该 AMI 稍后将用于一些数据处理。我使用 AWS CDK 生成图像配方。
现在,就像设置物理计算机时一样,某些步骤需要以 root 身份运行,但对于许多步骤来说,最好以将运行正在设置该计算机的实际进程的用户身份运行它们。
原则上,我可以以 root 身份运行所有内容,但它有一些问题:
因此,理想情况下,我想为每个命令选择谁应该运行它。
我查遍了AWS CDK的文档,但没有找到任何与切换用户相关的内容。我知道我可以做到:
sudo -u ec2-user do_something
,但这只是丑陋(而且并不总是有效)。
有什么想法吗?有其他人遇到过这个问题吗?
您可以在构成配方的任何组件的 YAML 中使用
su ec2-user
。我在验证阶段使用它来确保指定用户可以访问在构建阶段完成的事情。但是,您可以在任何阶段(包括构建)su
。
- name: validate
steps:
- name: ValidationStep
action: ExecuteBash
inputs:
commands:
- |
su ec2-user
git --version
docker --version