8.6. IdM 클라이언트에서 서비스 계정으로 명령을 실행하는 IdM WebUI에서 sudo 규칙 생성
IdM에서는 RunAs 별칭 을 사용하여 sudo
규칙을 구성하여 다른 사용자 또는 그룹으로 sudo
명령을 실행할 수 있습니다. 예를 들어 데이터베이스 애플리케이션을 호스팅하는 IdM 클라이언트가 있을 수 있으며 해당 애플리케이션에 해당하는 로컬 서비스 계정으로 명령을 실행해야 합니다.
이 예제를 사용하여 idm_user
계정이 idmclient
호스트에서 타사 서비스 계정으로 /opt/ third-party-app/report 명령을 실행할 수 있도록
라는 IdM 웹 UI에 run_ third-party-
app
_reportsudo
규칙을 생성합니다.
사전 요구 사항
- IdM 관리자로 로그인했습니다.
-
IdM에서
idm_user
에 대한 사용자 계정을 생성하고 사용자의 암호를 만들어 계정의 잠금을 해제했습니다. CLI를 사용하여 새 IdM 사용자를 추가하는 방법에 대한 자세한 내용은 명령줄을 사용하여 사용자 추가를 참조하십시오. -
idmclient
호스트에 로컬idm_user
계정이 없습니다.idm_user
사용자는 로컬/etc/passwd
파일에 나열되지 않습니다. -
idmclient
호스트에타사-app
이라는 사용자 지정 애플리케이션이 설치되어 있습니다. -
타사 애플리케이션에 대한
report
명령이/opt/
디렉터리에 설치됩니다.third-party-app
/bin/report -
third-party-app
애플리케이션에 대한 명령을 실행하도록thirdpartyapp
이라는 로컬 서비스 계정을 생성했습니다.
절차
sudo
명령의 IdM 데이터베이스에/opt/ third-party-app/bin/report
명령을 추가합니다.- 정책 → Sudo → Sudo 명령으로 이동합니다.
- 오른쪽 상단 모서리에서 Add (추가)를 클릭하여 Add sudo 명령 대화 상자를 엽니다.
/opt/ third-party-app/bin/report
명령을 입력합니다.- 추가를 클릭합니다.
새
sudo
명령 항목을 사용하여 새sudo
규칙을 만듭니다.- 정책 → Sudo → Sudo 규칙으로 이동합니다.
- 오른쪽 상단 모서리에서 Add(추가 )를 클릭하여 Add sudo rule( sudo 규칙 추가) 대화 상자를 엽니다.
sudo
규칙의 이름을 입력합니다. run_ third-party-app_report.- Add and Edit(추가 및 편집)를 클릭합니다.
사용자를 지정합니다.
- who(사용자 ) 섹션에서 Specified Users and Groups(지정된 사용자 및 그룹 ) 라디오 단추를 선택합니다.
- User category the rule applies to 하위 섹션에 적용되는 규칙 추가 를 클릭하여 sudo 규칙 "run_ third-party-app_report" 대화 상자에 사용자 추가 를 엽니다.
Add users into sudo rule "run_ third-party-app_report" 대화 상자에서 Available 열의 idm_user 확인란을 확인하고 Prospective 열로 이동합니다.
- 추가를 클릭합니다.
호스트를 지정합니다.
- Access this host (이 호스트에 액세스) 섹션에서 Specified Hosts and Groups(지정된 호스트 및 그룹 ) 라디오 단추를 선택합니다.
- Host category this rule applies to 하위 섹션에 적용되는 규칙 추가 를 클릭하여 sudo 규칙 "run_ third-party-app_report" 대화 상자에 호스트 추가 를 엽니다.
Available 열의 Add hosts into sudo 규칙 "run_ third-party-app_report" 대화 상자에서 idmclient.idm.example.com 확인란을 선택하고 이를 Prospective 열로 이동합니다.
- 추가를 클릭합니다.
명령을 지정합니다.
- Command 카테고리에서 규칙이 Run Commands(명령 실행) 섹션의 하위 섹션에 적용되는 경우 Specified Commands and Groups(지정된 명령) 및 Groups (그룹) 라디오 버튼을 선택합니다.
- Sudo Allow Commands 하위 섹션에서 Add 를 클릭하여 Add allow sudo 명령을 sudo 규칙 "run_ third-party-app_report" 대화 상자에 엽니다.
Add allow sudo 명령의 Available 열의 sudo 규칙 "run_ third-party-app_report" 대화 상자에서
/opt/ third-party-app/bin/report
확인란을 선택하고 이를 Prospective 열로 이동합니다.- Add 를 클릭하여 run_ third-party-app_report 페이지로 돌아갑니다.
RunAs 사용자를 지정합니다.
- As whom 섹션에서 지정된 사용자 및 그룹 라디오 버튼을 확인합니다.
- RunAs Users 하위 섹션에서 Add 를 클릭하여 Add RunAs 사용자를 sudo 규칙 "run_ third-party-app_report" 대화 상자에 엽니다.
Add RunAs users into sudo rule "run_ third-party-app_report" 대화 상자에서 External 상자에
third partyapp
서비스 계정을 입력하고 Prospective 열로 이동합니다.- Add 를 클릭하여 run_ third-party-app_report 페이지로 돌아갑니다.
- 왼쪽 상단 모서리에서 Save(저장 )를 클릭합니다.
새 규칙은 기본적으로 활성화되어 있습니다.
그림 8.3. sudo 규칙의 세부 사항
서버에서 클라이언트로 변경 사항을 전파하는 데 몇 분이 걸릴 수 있습니다.
검증 단계
-
idmclient 호스트에 idm
_user
계정으로 로그인합니다. 새 sudo 규칙을 테스트합니다.
idm_user
계정이 수행할 수 있는sudo
규칙을 표시합니다.[idm_user@idmclient ~]$ sudo -l Matching Defaults entries for idm_user@idm.example.com on idmclient: !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY KRB5CCNAME", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin User idm_user@idm.example.com may run the following commands on idmclient: (thirdpartyapp) /opt/third-party-app/bin/report
thirdpartyapp
서비스 계정으로report
명령을 실행합니다.[idm_user@idmclient ~]$ sudo -u thirdpartyapp /opt/third-party-app/bin/report [sudo] password for idm_user@idm.example.com: Executing report... Report successful.