背景
Azure DevOpsを介して複数のRESTful Webサービスをデプロイしました。リリースパイプラインCentOS仮想マシンに。これらの各サービスは以下で提供されます。システムそして環境変数を使って設定を渡します。
通常、私のアプローチは、各サービスに対して新しいユーザーを作成し、公開エージェントがVMで実行されているときにユーザー環境に変数を挿入することです。しかし、追加するすべてのサービスに対して新しいユーザーを作成したくないので、systemdを使用します。環境ファイル構成注入 - 一部のシステムコアメンバーも含まれていますその使用を防ぐ。これらの値のいくつかは非常に敏感であるため、保護する必要があります。
環境ファイルを保護する現在の方法:
確実にするログインしていないユーザー環境ファイルがある
$ chown username:username /path/to/.service.env
ファイルを所有者だけが読み取ることができることを確認してください。
$ chmod 400 /path/to/.service.env
ファイルを変更できないようにします。
$ chattr +i /path/to/.service.env
nologinユーザーとしてsystemdサービスを実行し、プール環境ファイルを使用しますEnvironmentFile=/path/to/.service.env
。
質問
- 環境ファイルにアクセスできないようにさらに保護する方法はありますか? (GnuPGのようなものを使用して暗号化すると、systemdがファイルを読み取れないため動作しないようです)。
- ユーザーが起動したシステムサービスの環境変数を読み取ることができますか?