공유 계정 액세스 관리에 대한 모범 사례는 무엇입니까?

공유 계정 액세스 관리에 대한 모범 사례는 무엇입니까?

우리 회사에는 개발에 사용되는 웹 서버가 있고, 개발자 각자는 사용자 계정을 가지고 있습니다. 서버에도 사용자 계정이 있습니다''. 사용자 "애플리케이션"은 한 사람에게 속하지 않습니다. 이는 모든 개발자가 QA용으로 준비된 코드를 배포하는 데 사용할 수 있는 공유 계정입니다. 테스트 준비가 완료된 코드는 /home/app/public_html/에 업로드되었습니다.

우리는 이 공유 계정에 대한 접근을 관리하기 위한 효율적인 시스템을 찾기 위해 노력하고 있습니다. 현재 우리는 모두 "애플리케이션" 사용자의 비밀번호만 공유하고 있습니다. 이는 여러 가지 이유로 좋지 않습니다.

우리는 개발자가 SFTP 또는 FTP를 사용하여 애플리케이션 사용자 계정에 직접 파일을 업로드할 수 있는 시스템을 원합니다. "wheel" 그룹의 구성원도 파일을 추가, 수정 및 삭제할 수 있는 권한을 갖도록 /home/app 및 하위 폴더의 그룹을 수정하는 것을 고려했습니다. 그러나 문제가 발생합니다. 사용자가 /home/app에 업로드하는 파일은 "app"의 소유가 아니라 해당 파일을 업로드한 사용자의 소유입니다.

공유 계정 액세스를 관리하기 위한 모범 사례가 있습니까?

답변1

공유 계정을 관리하는 가장 좋은 방법은 공유 계정을 잠그는 것입니다.

공유 계정에 대한 액세스를 관리하는 대신 모든 개발자를 하나의 그룹(예: app_development)에 추가하고 테스터를 다른 그룹(예: )에 추가해야 합니다 . 이는 여러 가지 이유로 좋지 않습니다. app_testing한 사람만 사용할 수 있도록)은 현재 실행 중인 작업 및/또는 작업을 기반으로 그룹에 배치되어 해당 그룹에 파일에 대한 적절한 권한을 부여합니다.

software_development이 예에서 웹 애플리케이션 개발을 위해 고용된 소프트웨어 개발자는 및 에 속합니다 web_development(로컬 애플리케이션을 개발하는 개발자는 application_developmentnot 에 속할 수 있음 web_development). 팀의 테스터/QA 구성원은 software_testingweb_testing그룹에 속하게 됩니다.

그룹의 사용자는 wheel항상 루트로서 읽기 및 쓰기 권한을 갖습니다(SELinux를 사용하여 액세스를 직접 제한하지 않는 한).

sudo -i
groupadd software_development
groupadd web_development
groupadd software_testing
groupadd web_testing
mkdir -p /home/software_development/web_development/staging`

POSIX 액세스 제어 목록

협업 디렉터리 구조를 개발하고 그룹에 최소한의 권한을 부여합니다.

chown -R root:software_development /home/software_development
chmod 550 /home/software_development
setfacl -m g:software_development:r-x /home/software_development
setfacl -m g:software_testing:r-x /home/software_development

chown -R root:web_development /home/software_development/web_development
chmod -R 2570 /home/software_development/web_development
setfacl -R -m g:web_development:rwx /home/software_development/web_development
setfacl -R -m d:g:web_development:rwx /home/software_development/web_development
setfacl -m g:web_testing:r-x /home/software_development/web_development
setfacl -m d:g:web_testing:0 /home/software_development/web_development
setfacl -m d:g:web_testing:r-x /home/software_development/web_development/staging
setfacl -R -m d:u:root:r-x /home/software_development
  1. root그룹의 모든 사용자가 해당 콘텐츠를 입력 하고 볼 software_development수 있습니다 . software_testing/home/software_testing
  2. 누구나 모든 하위 디렉터리 (현재 존재하는 모든 하위 디렉터리 및 향후 생성될 하위 디렉터리) web_developers의 내용을 보고 수정할 수 있습니다 ./home/software_development/web_development
  3. web_testers직접적인 내용은 모든 사람이 볼 수 있지만 /home/software_development/web_development그 밖의 하위 디렉토리는 볼 수 없습니다 staging.
  4. 작업을 수행하는 데는 쓰기 권한이 필요하지 않으므로 쓰기 권한이 전혀 없습니다 web_testing.software_testing

웹 개발자는 자신의 프로젝트가하위 디렉토리web_development(일반적으로 프로젝트 이름: ie.) 로 web_development/project_1설정하여 현재 개발 중인 소스 코드에 대한 테스터의 액세스를 거부합니다. 테스트/QA 준비가 되면 이를 스테이징 하위 디렉터리에 복사합니다.

관련 정보