M365.FM DUB
홈 / 한국어 / 2026-10-28
M365.FM · 한국어

관리 센터 말고 PowerShell: Microsoft 365 Copilot을 제대로 통제·자동화·감사하는 법 (AI 더빙)

Microsoft 365 Copilot을 관리 센터로만 관리하면 차트는 보여도 증거는 남지 않습니다. PowerShell이 왜 Copilot 거버넌스의 진짜 제어 도구인지, 확장성과 자동화, 로그와 타임스탬프를 통한 검증 가능성 측면에서 설명합니다.

이번 에피소드에서 배울 내용:

  1. 관리 센터는 보기 위한 도구이고, PowerShell은 제어·확장·증명을 위한 도구인 이유
  2. Copilot의 거버넌스 공백: 추적되지 않는 프롬프트, DLP 규칙의 일괄 적용, 일관성 없는 라이선스
  3. 자동화가 정책을 반복 가능하고 기록이 남는 코드로 바꾸는 방법: 탐지, 수정, 검증의 리듬
  4. 스크린샷 대신 Search-UnifiedAuditLog, Microsoft Graph, 변경 불가능한 타임스탬프 내보내기로 하는 감사
  5. PowerShell 역량이 Copilot 관리자의 기본 직무 역량이 되는 이유

이 에피소드는 Microsoft MVP 미르코 피터스의 M365 Show 애니메이션 영상을 AI로 더빙한 한국어 버전입니다.

아직도 관리 센터에서 마우스 클릭으로 Microsoft 365 Copilot을 관리하고 계신가요? 토글과 탭, 차트, 편안한 파란색 화면은 분명 안심이 됩니다. 하지만 이 화면은 통제권을 보여 주는 대시보드일 뿐, 엔터프라이즈 규모에서 AI를 다루는 진짜 엔진은 아닙니다.

PowerShell로 Copilot 거버넌스 세우기
  1. 1한계 인식관리 센터는 가시성 도구입니다. 대량 적용, 프롬프트 감사, 증거 확보에는 한계가 있습니다.
  2. 2코드로 규칙 정의DLP 확인, 라이선스 SKU 매핑 같은 정책을 반복 가능한 스크립트로 작성합니다.
  3. 3탐지·수정·검증get, set, confirm 흐름으로 이상 징후를 찾고 고친 뒤 타임스탬프와 함께 확인합니다.
  4. 4증거 내보내기Graph API와 통합 감사 로그를 JSON으로 내보내고 해시로 서명해 보관합니다.
  5. 5상시 감사 자동화예약 작업으로 매일 밤 로그를 내보내고 불일치를 경고해 감사를 일상으로 만듭니다.
M365.FM · Mirko Peters

이 글에서는 Copilot 거버넌스에서 PowerShell이 왜 선택이 아니라 필수인지 정리합니다. 대량 적용, 라이선스 관리, 자동화, 감사 추적 순서로 살펴보고, 현장에서 자주 하는 오해와 바로 적용할 수 있는 실무 포인트까지 다룹니다.

관리 센터는 통제 센터가 아니라 가시성 도구입니다

대부분의 관리자가 관리 센터를 좋아하는 이유는 보기에 그럴듯하기 때문입니다. 하지만 그 뒤에서는 결국 PowerShell 명령을 실행하는 스위치를 누르고 있을 뿐입니다. 관리 센터는 일반 사용자가 실수하지 않도록 위험한 기능을 숨겨 둔 인터페이스이고, Microsoft도 GUI를 명령이 아니라 가시성을 위해 설계했습니다.

문제는 규모가 커질 때 드러납니다. 여러 테넌트에 걸쳐 규정 준수 레이블 작업을 수천 번 반복해야 한다면 클릭 기반 관리는 확장성과 재현성을 잃습니다. 가장 위험한 것은 증거를 잃는다는 점입니다. 오늘날 감사 현장에서 통하는 것은 스크린샷이 아니라 감사 추적(audit trail)이고, "변경 내용 저장" 버튼을 누르는 행위는 문서화가 아닙니다.

지도와 차량의 차이

관리 센터는 어디에 무엇이 있는지 알려 주는 지도입니다. 반면 PowerShell은 실제로 그곳까지 데려다 주는 차량이고, 경로를 기록해 다른 사람이 그대로 따라올 수 있게 해 줍니다. 컴플라이언스와 규모, 자동화가 중요할수록 관리자는 이 차량을 몰아야 합니다.

Copilot 거버넌스의 공백: 프롬프트는 어디로 사라지나

많은 관리자가 Copilot을 켜면 Microsoft 365의 규정 준수 프레임워크가 AI 계층까지 자동으로 보호해 줄 것이라고 생각합니다. 하지만 그렇지 않습니다. Copilot이 만든 이메일, 문서, 회의 요약 같은 출력물은 감사할 수 있어도, 그 결과를 만든 프롬프트 입력값은 종종 기록에서 사라집니다.

재무 이사가 민감한 예측치를 Copilot에 입력했다고 가정해 봅시다. 출력물은 삭제할 수 있어도 누가, 언제, 어떤 데이터 범위에서 질문했는지는 남지 않을 수 있습니다. 관리 센터는 도입 지표와 사용 추세는 보여 주지만 감사에 필요한 증거 체계는 보여 주지 못합니다. 추적 가능성이 없는 거버넌스는 보여주기에 불과합니다.

DLP 정책의 대량 적용 문제

Copilot 액세스 권한이 있는 모든 사용자에게 새 데이터 손실 방지(DLP) 규칙을 적용하고 싶다고 해 봅시다. 관리 센터에서는 DLP 정책을 넓게 켤 수는 있어도 Copilot 활동에 특화된 테넌트 단위 업데이트는 하기 어렵습니다. 전등 스위치만으로 건물 전체 배선을 다시 하려는 것과 비슷합니다.

PowerShell은 벽 뒤의 회로도까지 들어갑니다. 숨겨진 속성, 데이터 엔드포인트, 라이선스 권한, 모델 동작 로그를 드러내므로, 스크립트 하나로 Copilot이 활성화된 모든 계정을 찾아 DLP 적용 여부를 확인하고 감사용으로 내보낼 수 있습니다.

라이선스 관리: 목록은 보이지만 관계는 보이지 않습니다

모든 사용자가 같은 수준의 Copilot 액세스를 가졌을 것이라는 생각은 낙관일 뿐입니다. 실제로는 라이선스가 흩어져 있고, 수동으로 할당되거나 제멋대로 이전되며, 중복되거나 누락되기도 합니다. 관리 센터는 목록을 보여 줄 수 있지만 서비스 간 데이터를 필터링하거나 피벗하거나 연관시키지는 못합니다.

PowerShell은 해당 개체를 조회해 사용자를 라이선스 SKU에 매핑하고, 부서별로 묶고, 규정 준수 정책과 대조합니다. 추측이 아니라 환경의 실제 상태를 확인할 수 있습니다.

E5 테넌트 사례

E5 테넌트의 모든 임원이 Copilot 프리미엄을 갖고 있는지, 임시 계약자에게 실수로 액세스가 부여되지는 않았는지 확인해야 한다고 가정해 봅시다. 관리 센터에서는 사용자 메뉴를 열고, 스크롤하고, 필터를 적용하고, 엑셀로 내보낸 뒤 중복을 수동으로 제거해야 합니다. PowerShell이라면 SKU로 필터링하고 Select-Object를 거쳐 타임스탬프가 포함된 CSV로 내보내는 한 줄이면 됩니다. 몇 시간의 불확실성이 몇 초의 확실성으로 바뀝니다.

"그래도 눈으로 볼 수 있잖아요"라는 반론이 나오곤 합니다. 하지만 눈으로 볼 수 있다는 것과 제어할 수 있다는 것은 다릅니다. 가시성과 제어는 같은 말이 아닙니다.

법으로서의 자동화: 탐지, 수정, 검증

Copilot 거버넌스에서 자동화는 편의가 아니라 성문법에 가깝습니다. 스크립트로 만들지 않은 모든 작업은 잠재적 위험이고, 사람의 실수는 어떤 알고리즘보다 빨리 퍼집니다. Word로 쓴 정책은 희망 사항이지만 PowerShell로 쓴 정책은 집행됩니다. 스크립트는 셋째 주 금요일의 설정을 잊거나 커피가 떨어졌다고 계정 처리를 건너뛰지 않습니다.

12줄 스크립트의 사례

여러 사업부를 관리하던 한 관리자는 Copilot 라이선스를 조정하는 데 일주일을 꼬박 썼습니다. 그러다 12줄짜리 PowerShell 스크립트를 작성했습니다. 이 스크립트는 테넌트에서 어긋난 권한을 조회하고, 누락된 항목을 할당하고, 불필요한 항목을 회수한 뒤 CSV 감사 보고서를 생성했습니다. 작업 시간은 35시간에서 5분으로 줄었고 누락된 기록도 없었습니다. 더 큰 성과는 "나를 믿어 달라"는 관행이 사라지고 스크립트가 규정 준수를 증명하게 되었다는 점입니다.

세 단계의 리듬

PowerShell은 감사 기능을 기본적으로 지원하며, 업무는 탐지, 수정, 검증의 세 단계로 흐릅니다. 각 단계에는 get, set, confirm 같은 명령어가 대응합니다. 예를 들어 탐지 로직이 Copilot 사용 로그에서 이상 징후, 인식되지 않은 API 호출, 과도한 데이터 경계 요청을 스캔한다고 상상해 보세요. 수정 스크립트가 문제 세션을 비활성화하고 규정 준수 지표를 갱신하면, 검증 루틴이 액세스를 다시 확인합니다. 이 모든 과정에는 타임스탬프가 찍히고 되돌릴 수도 있습니다.

자동화는 사람을 제거하는 것이 아닙니다. 설정 관리자를 제어 설계자로 끌어올립니다. 시니어 관리자가 작성한 스크립트는 조직의 기억이 되고, 신입 직원은 명확한 구문으로 표현된 운영 원칙을 물려받습니다.

감사 추적: 영수증을 남기는 PowerShell

자동화가 거버넌스를 실행 가능하게 만든다면, 그것을 신뢰할 수 있게 만드는 것은 감사입니다. 관리 센터에서 클릭할 때마다 "이게 정말 일어났나?"라고 묻는다면 시스템은 "아마도요"라고 답합니다. 로그를 집계하면서 세부 정보를 생략하고, 복제는 내킬 때 일어나기 때문입니다. PowerShell은 확률이 아니라 기록을 다룹니다.

감사 피라미드

  • 기반 단계: 관리 센터의 활동 로그입니다. 보고용 슬라이드에 맞게 단순화되고 다듬어진 과거 요약본에 가깝습니다.
  • 중간 단계: PowerShell이 Graph API 엔드포인트를 통해 원본 감사 기록을 가져옵니다.
  • 최상위 단계: 실행 ID, 세션 출처, 수정 전후의 속성 변화 같은 명령 수준 메타데이터를 추출합니다. 규제 기관에 제시할 수 있는 법의학적 수준의 증거입니다.

사서함 감사를 예로 들면, GUI는 전체 발송 수와 표시된 이벤트 정도만 보여 줍니다. PowerShell로 통합 감사 로그를 검색하면 누가 권한을 위임했는지, 언제 첨부 파일을 복사했는지, 그 작업이 기존 보존 태그와 일치하는지까지 확인할 수 있습니다. "뭔가 의심스러운 일이 발생함"이 "사용자 A가 특정 시각에 장치 D로 API를 통해 폴더에 접근함"이라는 방어 가능한 기록으로 바뀝니다.

변경 불가능한 증거 보관

Graph API를 사용하면 표준 보고서에는 나오지 않는 Copilot 프롬프트 기록, 세션 경계, 모델 접근 추적까지 쿼리할 수 있습니다. 이를 변경 불가능한 JSON 패키지로 내보내고 해시로 서명할 수 있으며, 꼼꼼한 관리자라면 Azure에 7년간 보관할 수도 있습니다. Copilot 상호작용을 매일 자동 추출해 블록 저장소에 넣고 체크섬으로 봉인하면, 규제 기관이 증거를 요구할 때 해시로 서명된 타임스탬프 기록을 제출하면 됩니다. 이런 재구성 역량은 ISO 27000부터 EU AI 법에 이르는 책임 프레임워크의 근간이라고 합니다.

데이터 정규화도 큰 장점입니다. PowerShell로 수집하면 모든 데이터 소스가 구조화된 데이터 세트가 됩니다. Copilot 사용량, SharePoint 파일 민감도, Exchange 액세스, Entra 역할을 하나의 파이프라인에서 연관 지을 수 있습니다. 관리 센터가 사일로를 그대로 둔다면, PowerShell은 이를 같은 로그 테이블로 끌어들입니다.

내부 감사 사례

한 기업이 내부 감사에서 Copilot 응답이 제한된 제품 데이터를 인용하고 있음을 발견했습니다. 관리자는 PowerShell로 프롬프트 체인을 추적해 쿼리를 수행한 계정을 식별하고, 프로젝트 마이그레이션 중 임시 계약자에게 부여된 상위 권한과 대조했습니다. 그리고 즉시 권한을 취소하고 수정 조치를 문서화해 입증 가능한 증거와 함께 감사를 마쳤습니다.

흔한 오해와 함정

  • "Copilot을 켜면 규정 준수가 AI 계층까지 보호해 준다": 그렇지 않습니다. 특히 프롬프트 입력값의 감사 공백이 큽니다.
  • "보이면 관리하는 것이다": 대시보드의 그래프는 무슨 일이 왜 일어났고 누가 시작했는지 알려 주지 않습니다.
  • 복제 지연: 대량 변경 후 일부 사이트만 업데이트되면 데이터 경계가 어긋나고, 컴플라이언스 담당자의 문의가 이어집니다.
  • 모호한 오류 메시지: 관리 센터의 빨간 배너는 "무언가 잘못되었다"고만 말합니다. PowerShell은 명령, 영향받은 개체, 줄 번호를 알려 줍니다.
  • "자동화는 위험하다": PowerShell의 위험은 투명하게 드러나고 한 번의 수정으로 해결됩니다. 수동 프로세스는 실수를 사방에 흩뿌려 정리하기 어렵게 만듭니다.
  • 기억에 의존하기: "테넌트 전체에 보존 정책을 적용했었나?"를 기억에 맡기지 마세요. 서명되고 반복 가능한 스크립트에 맡기는 편이 안전합니다.

실무 Takeaways

  • 관리 센터는 현황을 보는 지도로 쓰고, 변경과 검증은 PowerShell로 하세요.
  • Copilot 활성 계정, DLP 적용 여부, 라이선스 SKU 매핑을 스크립트 하나로 조회하고 CSV로 내보내세요.
  • 거버넌스 규칙을 문서가 아니라 코드로 정의해 매번 같은 방식으로 집행되게 하세요.
  • 모든 작업을 탐지, 수정, 검증의 세 단계로 설계하고 타임스탬프를 남기세요.
  • Graph API와 통합 감사 로그로 프롬프트 기록과 세션 정보를 수집하고, JSON과 해시 서명으로 보관하세요.
  • 예약된 PowerShell 작업으로 매일 밤 로그를 내보내고 불일치를 경고하게 하세요.
  • 오류 메시지를 모니터링 스크립트의 입력으로 활용하세요.

결론: 거버넌스는 보는 것이 아니라 스크립트로 짜는 것입니다

편의는 임대이고 제어는 소유입니다. 관리 센터는 명령 권한을 빌려줄 뿐이지만, PowerShell은 그 권한을 온전히 소유하게 해 줍니다. AI는 이메일을 쓰고 회의를 요약할 수 있어도 규정 준수 서명까지 대신해 주지는 못합니다. 그 권한은 스크립트로 규칙을 정의하고 증거를 남길 수 있는 사람에게 있습니다. Copilot을 제대로 통제하고 싶다면 모든 명령이 증거를 만들고, 증거가 모니터링으로 이어지고, 모니터링이 다시 개선을 촉발하는 순환부터 만들어 보세요.

Mirko Peters, Microsoft MVP
Mirko Peters · Microsoft MVP

Mirko Peters는 Microsoft MVP이자 팟캐스트 M365.FM의 진행자이며 무료 온라인 컨퍼런스 M365Con의 주최자입니다.

Mirko Peters는 Microsoft MVP이자 팟캐스트 M365.FM의 진행자이며 무료 온라인 컨퍼런스 M365Con의 주최자입니다.

다른 에피소드

Copilot 에이전트 거버넌스: Microsoft 365 관리 센터와 Copilot Studio로 완벽하게 통제하기 (AI 더빙)

AI 에이전트 vs 자동화: 진짜 차이와 에이전트를 만들지 말아야 할 때 (AI 더빙)

AI 혼란 끝내기: 깨끗한 데이터와 실질적 거버넌스를 위한 Microsoft Copilot Studio의 RFI 작업 (AI 더빙)

프롬프트 인젝션과 AI 거버넌스: Microsoft 365와 Power Platform 워크플로를 보호하는 방법 (AI 더빙)

Power Platform과 Azure OpenAI로 만드는 엔터프라이즈 AI: 챗봇 데모를 넘어선 아키텍처·보안·거버넌스 (AI 더빙)

Microsoft Copilot 도입 성공 전략: 데이터 혼란을 정리하고 사용자 신뢰를 얻는 10가지 실천 방법 (AI 더빙)

모든 에피소드 →

공유LinkedInXFacebookWhatsAppTelegramRedditE-Mail