Red Hat Training

A Red Hat training course is available for RHEL 8

54.6. IdM 클라이언트에서 서비스 계정으로 명령을 실행하는 IdM 웹UI에 sudo 규칙 생성

IdM에서는 RunAs 별칭 을 사용하여 sudo 규칙을 구성하여 sudo 명령을 다른 사용자 또는 그룹으로 실행할 수 있습니다. 예를 들어 데이터베이스 애플리케이션을 호스팅하는 IdM 클라이언트가 있을 수 있으며 해당 애플리케이션에 해당하는 로컬 서비스 계정으로 명령을 실행해야 합니다.

이 예제를 사용하여 idm _ user 계정이 idmclient 호스트에서 타사 서비스 계정으로 /opt/third-party-app/bin/report 명령을 실행할 수 있도록 run_ third-party-app_report 라는 IdM WebUI에 sudo 규칙을 생성합니다.

사전 요구 사항

  • IdM 관리자로 로그인했습니다.
  • IdM에서 idm_user 에 대한 사용자 계정을 생성하고 사용자의 암호를 만들어 계정의 잠금을 해제했습니다. CLI를 사용하여 새 IdM 사용자를 추가하는 방법에 대한 자세한 내용은 명령줄을 사용하여 사용자 추가를 참조하십시오.
  • idm client 호스트에 로컬 idm_user 계정이 없습니다. idm_user 사용자는 로컬 /etc/passwd 파일에 나열되지 않습니다.
  • idmclient 호스트에 third-party-app 이라는 사용자 지정 애플리케이션이 설치되어 있어야 합니다.
  • third-party-app 애플리케이션의 report 명령은 /opt/third-party-app/bin/report 디렉터리에 설치됩니다.
  • 타사-애플리케이션 애플리케이션에 대한 명령을 실행하기 위한 third partyapp 이라는 로컬 서비스 계정을 생성했습니다.

절차

  1. /opt/third-party-app/bin/report 명령을 sudo 명령의 IdM 데이터베이스에 추가합니다.

    1. 정책Sudo → Sudo 명령으로 이동합니다.
    2. 오른쪽 상단 모서리에서 Add (추가)를 클릭하여 Add sudo 명령 대화 상자를 엽니다.
    3. 명령 /opt/third-party-app/bin/report 를 입력합니다.

      "Add sudo command( sudo 명령 추가)"라는 팝업 창의 스크린샷입니다. "/opt/third-party-app/bin/report" 내용을 포함하는 "Sudo 명령"이라는 필수 필드가 있습니다. "설명" 필드가 비어 있습니다. 창의 오른쪽 아래에는 다음 네 개의 버튼이 있습니다. "add" - "Add and Add Other" - "Add and Edit" - "Cancel".
    4. 추가를 클릭합니다.
  2. sudo 명령 항목을 사용하여 새 sudo 규칙을 만듭니다.

    1. 정책Sudo → Sudo 규칙으로 이동합니다.
    2. 오른쪽 상단 모서리에서 Add(추가 )를 클릭하여 Add sudo rule( sudo 규칙 추가) 대화 상자를 엽니다.
    3. sudo 규칙 이름 run_third-party-app_report 를 입력합니다.

      " sudo 규칙 추가"라는 팝업 창의 스크린샷입니다. "run_third-party-app_report" 내용을 포함하는 필수 필드 "Rule name"이 있습니다. 창의 오른쪽 아래에는 다음 네 개의 버튼이 있습니다. "add" - "Add and Add Other" - "Add and Edit" - "Cancel".
    4. Add and Edit(추가 및 편집)를 클릭합니다.
    5. 사용자를 지정합니다.

      1. who(사용자 ) 섹션에서 Specified Users and Groups(지정된 사용자 및 그룹 ) 라디오 단추를 선택합니다.
      2. User(사용자) 카테고리에서 규칙이 하위 섹션에 적용되는 경우 Add(추가 )를 클릭하여 sudo 규칙 "run_third-party-app_report" 대화 상자를 엽니다.
      3. Available (사용 가능) 열의 Add users into sudo 규칙 "run_third-party-app_report" 대화 상자에서 idm_user 확인란을 선택한 다음 Prospective 열로 이동합니다.

        "사용자를 sudo 규칙에 추가"라는 팝업 창의 스크린샷입니다. 왼쪽의 Available(사용 가능) 목록에서 사용자를 선택하고 오른쪽의 후보 열로 이동할 수 있습니다. 창의 오른쪽 아래에는 두 개의 버튼이 있습니다. "add" - "Cancel".
      4. 추가를 클릭합니다.
    6. 호스트를 지정합니다.

      1. Access this host (이 호스트에 액세스) 섹션에서 Specified Hosts and Groups(지정된 호스트 및 그룹 ) 라디오 단추를 선택합니다.
      2. 이 규칙이 하위 섹션에 적용되는 호스트 범주에서 Add(추가 )를 클릭하여 sudo 규칙 "run_third-party-app_report" 대화 상자를 엽니다.
      3. Available (사용 가능) 열의 Add hosts rule "run_third-party-app_report" 대화 상자에서 idmclient.idm.example.com 확인란을 선택하여 Prospective 열로 이동합니다.

        " sudo 규칙에 호스트 추가"라는 팝업 창의 스크린샷입니다. 왼쪽에 있는 Available(사용 가능) 목록에서 호스트를 선택하고 오른쪽에 있는 Prospective(예측) 열로 이동할 수 있습니다. 창의 오른쪽 아래에는 두 개의 버튼이 있습니다. "add" - "Cancel".
      4. 추가를 클릭합니다.
    7. 명령을 지정합니다.

      1. Command 카테고리에서 규칙이 Run Commands(명령 실행) 섹션의 하위 섹션에 적용되는 경우 Specified Commands and Groups(지정된 명령) 및 Groups (그룹) 라디오 버튼을 선택합니다.
      2. Sudo Allow Commands 하위 섹션에서 Add allow sudo 명령을 sudo 규칙 "run_third-party-app_report" 대화 상자에 엽니다.
      3. Add allow sudo 명령을 sudo 규칙 "run_third-party-app_report" 대화 상자에서 Available 열의 /opt/third-party-app/bin/report 확인란을 선택하여 Prospective 열로 이동합니다.

        "Add allow sudo commands into sudo rule"라는 레이블이 지정된 팝업 창의 스크린샷입니다. 왼쪽의 Available(사용 가능) 목록에서 sudo 명령을 선택하고 오른쪽의 Prospective 열로 이동할 수 있습니다. 창의 오른쪽 아래에는 두 개의 버튼이 있습니다. "add" - "Cancel".
      4. Add(추가 )를 클릭하여 run_third-party-app_report 페이지로 돌아갑니다.
    8. RunAs 사용자를 지정합니다.

      1. As whom 섹션에서 Specified Users and Groups(지정된 사용자 및 그룹 ) 라디오 단추를 선택합니다.
      2. RunAs Users(As 사용자 실행) 하위 섹션에서 Add As(추가)를 클릭하여 AddAs users into sudo 규칙 "run_third-party-app_report" 대화 상자를 엽니다.
      3. RunAs 사용자를 sudo 규칙 "run_third-party-app_report" 대화 상자에서 External 상자에 third partyapp 서비스 계정을 입력하고 Prospective 열로 이동합니다.

        "third partyapp" 서비스 계정을 외부 사용자로 지정할 수 있는 대화 상자의 스크린샷입니다.
      4. Add(추가 )를 클릭하여 run_third-party-app_report 페이지로 돌아갑니다.
    9. 왼쪽 상단 모서리에서 Save(저장 )를 클릭합니다.

새 규칙은 기본적으로 활성화되어 있습니다.

그림 54.3. sudo 규칙의 세부 정보

추가된 sudo 규칙의 개요에 대한 스크린샷입니다. "Who" 섹션에는 "idm_user"에 대한 항목이 있습니다. "Access this host" 섹션에는 "idmclient.idm.example.com"이 있습니다. "Run Commands" 섹션에는 "/opt/third-party-app/bin/report" 명령이 있습니다. "As whom" 섹션에는 "third partyapp" 계정이 나열됩니다.
참고

서버에서 클라이언트로 변경 사항을 전파하는 데 몇 분이 걸릴 수 있습니다.

검증 단계

  1. idmclient 호스트에 idm _user 계정으로 로그인합니다.
  2. 새 sudo 규칙을 테스트합니다.

    1. 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
    2. third partyapp 서비스 계정으로 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.