배경
Azure DevOps를 통해 여러 RESTful 웹 서비스를 배포했습니다.릴리스 파이프라인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가 파일을 읽을 수 없기 때문에 작동하지 않을 것 같습니다.)
- 사용자가 시작된 시스템 서비스의 환경 변수를 읽을 수 있습니까?