tob*_*ias 5 security environment-variables systemd
背景
我有多个 RESTful Web 服务通过 Azure DevOps发布管道部署到 CentOS VM。这些服务中的每一个都由systemd管理,并使用环境变量来传递配置。
通常我的方法是为每个服务创建新用户,并在发布代理在虚拟机上运行时将变量注入用户的环境中。但是,由于我不想为添加的每个服务创建一个新用户,因此我使用 systemd 的EnvironmentFile来注入配置 - 尽管某些 systemd 核心成员不鼓励使用它。其中一些值非常敏感,因此需要受到保护。
当前保护环境文件的方法:
确保nologin 用户拥有环境文件
$ chown username:username /path/to/.service.env
Run Code Online (Sandbox Code Playgroud)
确保该文件只能由其所有者读取。
$ chmod 400 /path/to/.service.env
Run Code Online (Sandbox Code Playgroud)
使文件不可变。
$ chattr +i /path/to/.service.env
Run Code Online (Sandbox Code Playgroud)
以 nologin 用户身份运行 systemd 服务并使用 拉入环境文件EnvironmentFile=/path/to/.service.env
。
问题