사용자가 비밀번호를 제공하지 않고도 플레이북을 실행할 수 있도록 허용

사용자가 비밀번호를 제공하지 않고도 플레이북을 실행할 수 있도록 허용

일반 사용자가 CentOS 서버에 애플리케이션을 설치하기 위해 실행할 수 있도록 허용하고 싶은 Ansible 플레이북이 있지만 반드시 로그인 자격 증명을 제공하고 싶지는 않습니다. Ansible Vault를 사용하여 암호화된 데이터를 저장할 수 있다는 것을 알고 있지만, 제가 알 수 있는 바에 따르면 이 데이터를 꽤 쉽게 해독할 수도 있습니다. 이것이 가능한지, 그리고 그것을 달성하는 방법에 대한 아이디어가 있습니까?

답변1

대부분의 소프트웨어 설치 방법에는 권한 있는 사용자가 필요합니다.

최소 권한 및 책임 원칙은 로그인이 권한이 낮은 개인 사용자를 통해 이루어져야 하며 필요한 경우 권한이 부여되어야 함을 의미합니다. Ansible은 doas나 sudo 등을 사용하여 다른 사용자로서 작업을 실행하는 플러그인이 되는 데 도움을 줄 수 있습니다.

비밀번호는 일반적으로 가비지 인증 방법입니다. 낮은 엔트로피, 역사적으로 열악한 관행, 자동화가 불편함. 일부는 다른 사용자로 실행하여 개인 비밀번호를 요구하므로 공유 자격 증명의 필요성이 줄어듭니다. Ansible은 다음을 사용하여 사용자에게 이러한 비밀번호를 묻는 메시지를 표시할 수 있습니다.--ask-become-pass

ansible-vault(및 보안 시스템 조회 플러그인)는 사용 중인 데이터가 아닌 저장 중인 데이터만 보호합니다. Ansible을 실행하는 사람은 일반 텍스트 비밀에 액세스할 수 있습니다. 자세한 디버깅이 활성화되면 표시될 수 있습니다.

위의 모든 사항을 고려하면 비밀번호 없이 구성하는 것이 적절한 솔루션일 수 있습니다. ssh에서는 키나 인증서를 사용할 수 있지만 패키지 작업을 루트로 실행하려면 make를 사용하세요. 그러나 루트로서 수행하는 작업은 제한될 수 없습니다. Ansible은 모듈을 실행하기 위해 임시 스크립트를 생성하며 다음과 같은 명령을 제한하는 좋은 sudo 규칙은 없습니다./bin/sh -c '/usr/bin/python3 ~/.ansible/tmp/ansible-tmp-1628781435.871488-116497-130276452381107/AnsiballZ_setup.py'

사용자를 위해 권한 있는 플레이북을 실행합니다. 무엇을 해야 할지에 대한 의견을 제공하도록 권장하되 이를 수행할 수 있는 자격 증명을 제공하지는 마십시오. 이러한 플레이북을 버전 관리에 넣고 변경 요청을 수락하세요. 원하는 대로 연극을 진행하세요.

  • 앤서블 러너 크론에 예약되어 있습니다.
  • 병합에 의해 트리거된 파이프라인에서 버전 제어의 프로덕션 분기까지.
  • 작업은 AWX 사용자 인터페이스에서 실행됩니다.

관련 정보