使用 AWS CDK 在映像配方中切换用户

问题描述 投票:0回答:1

我正在使用 EC2 Image Builder 构建 AMI。该 AMI 稍后将用于一些数据处理。我使用 AWS CDK 生成图像配方。

现在,就像设置物理计算机时一样,某些步骤需要以 root 身份运行,但对于许多步骤来说,最好以将运行正在设置该计算机的实际进程的用户身份运行它们。

原则上,我可以以 root 身份运行所有内容,但它有一些问题:

  1. 这是不好的做法
  2. 文件和文件夹最终拥有错误的所有权
  3. 一些缓存机制失败(因为不同的用户有单独的缓存文件夹)

因此,理想情况下,我想为每个命令选择谁应该运行它。

我查遍了AWS CDK的文档,但没有找到任何与切换用户相关的内容。我知道我可以做到:

sudo -u ec2-user do_something
,但这只是丑陋(而且并不总是有效)。

有什么想法吗?有其他人遇到过这个问题吗?

amazon-ec2 aws-cdk ec2-ami amazon-imagebuilder
1个回答
0
投票

您可以在构成配方的任何组件的 YAML 中使用

su ec2-user
。我在验证阶段使用它来确保指定用户可以访问在构建阶段完成的事情。但是,您可以在任何阶段(包括构建)
su

  - name: validate
    steps:
      - name: ValidationStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              su ec2-user 
              git --version
              docker --version
© www.soinside.com 2019 - 2024. All rights reserved.