본문으로 건너뛰기

실행 권한 요구 사항

clmBot이 인증서 자동 갱신을 실행할 때, 대상 인증서 파일에 대한 읽기/쓰기가 필요하며, 갱신 후 해당 미들웨어 서비스를 다시 로드하거나 재시작해야 합니다. 본 문서에서는 다양한 미들웨어 시나리오에서 권장하는 최소 권한 구성을 설명합니다.

정보

미들웨어 reload / restart 명령은 config.yamlservers[].after_script 필드에 정의되어 있으며, 사용자는 실제 환경에 따라 조정할 수 있습니다. clmBot은 root 또는 Administrator 등 고권한 계정으로 장기간 실행할 것을 요구하지 않습니다.

최소 권한 원칙

전용 시스템 계정(예: clmbot)을 사용하여 clmBot을 실행하는 것을 권장합니다.

  • 해당 계정에는 clmBot 설정, 로그 디렉터리 및 대상 인증서 설치 지점을 읽는 데 필요한 권한만 부여합니다.
  • clmBot이 관리하는 인증서 파일, 개인 키 파일 및 해당 디렉터리에만 쓰기 권한을 부여합니다.
  • 확인된 미들웨어 reload / restart 명령만 실행을 허용하며, before_script, after_script는 반드시 수동 감사를 거쳐 항목별로 권한을 부여해야 합니다.

권장하지 않음:

  • clmBot이 root 또는 Administrator 신원으로 장기간 실행되도록 합니다.
  • 미들웨어 구성 디렉터리, 인증서 디렉터리 또는 시스템 서비스 제어 권한을 clmBot에 전체 개방합니다.
  • bash, powershell.exe, systemctl에 무제한 실행 권한 또는 NOPASSWD: ALL를 부여합니다.

각 미들웨어 권한 요구 사항

미들웨어필요한 권한after_script 예시
nginx인증서(.crt), CA 체인(선택 사항), 개인 키(.key) 파일 및 해당 디렉터리에 대한 읽기/쓰기 권한. 새 인증서를 쓰고 .bak 백업을 생성하는 데 사용됩니다nginx -t && nginx -s reload
ApacheSSLCertificateFile, SSLCertificateChainFile, SSLCertificateKeyFile이(가) 위치한 디렉터리의 읽기/쓰기 권한systemctl restart httpd.service 또는 systemctl restart apache2.service
TomcatPEM 인증서/개인 키 또는 JKS keystore 파일 및 해당 디렉터리의 읽기/쓰기 권한JAVA_HOME + shutdown.sh + startup.sh
IISclmBot 내장 PowerShell 스크립트로 PFX를 가져와 사이트 바인딩을 업데이트하며, 관리자 권한이 필요합니다. 임시 PFX 파일 생성 및 정리별도 구성 불필요, 내장 스크립트가 자동 처리
정보
  • 인증서 검색 기능을 통해 자동 생성된 스크립트는 명령의 절대 경로를 사용합니다(예: nginx에 -p, -c 매개변수가 포함되고, systemctl는 절대 경로를 사용). 실제 생성된 servers[].after_script를 기준으로 하십시오.
  • Tomcat이 systemd로 관리되는 경우, 자동 생성된 스크립트는 systemctl restart <tomcat 服务名>이며 shutdown.sh / startup.sh가 아닙니다.

Linux sudoers 구성 예시

다음 예시는 권한 부여 수준만 나타내며, 실제 경로는 대상 호스트에 맞게 조정하십시오.

nginx:

clmbot ALL=(root) NOPASSWD: /usr/sbin/nginx -t
clmbot ALL=(root) NOPASSWD: /usr/sbin/nginx -s reload

Apache:

clmbot ALL=(root) NOPASSWD: /bin/systemctl restart apache2.service

Tomcat:

clmbot ALL=(tomcat) NOPASSWD: /opt/apache-tomcat/bin/shutdown.sh
clmbot ALL=(tomcat) NOPASSWD: /opt/apache-tomcat/bin/startup.sh

인증서 디렉터리 권한 예시

chown -R root:clmbot /etc/ssl/example
chmod 0750 /etc/ssl/example
chmod 0640 /etc/ssl/example/site.crt /etc/ssl/example/ca.crt
chmod 0640 /etc/ssl/example/site.key

위 파일에 대한 clmBot의 쓰기 및 백업을 허용해야 하는 경우, ACL을 사용하여 정밀하게 권한을 부여할 수 있습니다:

setfacl -m u:clmbot:rwx /etc/ssl/example
setfacl -m u:clmbot:rw- /etc/ssl/example/site.crt
setfacl -m u:clmbot:rw- /etc/ssl/example/site.key

배포 전 권한 점검표

안내

clmBot을 배포하기 전에 다음 권한 구성을 항목별로 확인하는 것이 좋습니다.

  • clmBot이 root 또는 관리자 계정이 아닌 전용 계정으로 실행되는지 확인하세요.
  • config.yaml에 필요한 계정만 읽기 및 쓰기를 할 수 있도록 허용되어 있는지 확인하세요.
  • servers[].format가 가리키는 인증서 파일에 필요한 읽기/쓰기 권한만 부여되어 있는지 확인하세요.
  • 인증서 파일이 위치한 디렉터리에서 .bak 백업 파일을 생성하고 정리할 수 있는지 확인하세요.
  • before_script, after_script에 대해 수동 감사가 완료되었는지 확인하세요.
  • sudoers에 정확한 명령만 포함되어 있고 ALL, bash 또는 전체 systemctl가 아닌지 확인합니다.
  • nginx / Apache / Tomcat의 reload 또는 restart 권한이 대상 인스턴스만 포함하는지 확인합니다.
  • 서비스 모드(clm-bot server)의 수신 주소와 포트가 호스트 방화벽 정책에 부합하는지 확인합니다.