보안 기업 RedAccess가 AI 코딩 도구로 제작되어 해당 도구의 자체 호스팅에 게시된 앱을 조사했을 때, 보안이나 인증이 사실상 없는 앱을 5,000개 이상 발견했습니다. Wired에 공유한 화면에는 “여러 다른 회사의 다양한 매출 및 재무 기록”도 있었습니다. 재무팀용 AI 제작 앱도 같은 종류의 공개 주소에 놓여 원장, 급여 및 미발표 실적을 노출할 수 있습니다.
Replit의 CEO Amjad Masad는 “공개 앱이 인터넷에서 접근 가능한 것은 예상된 동작입니다”라고 답했습니다. 작동 방식에 관해서는 맞는 말입니다. 제 해석으로는 공개 범위 설정과 생략된 검토 때문에 노출되었으며, 두 가지 모두 도구 제작자가 조치할 수 있는 문제입니다.
요약
- AI 제작 재무 도구는 제작자가 해결할 수 있는 여섯 가지 배포 실수로 데이터를 유출할 수 있습니다. 공개 링크, 코드나 채팅 기록에 남겨진 비밀번호와 키, 관리자 수준의 데이터베이스 접근, 두 번째 승인자 없는 장부 전기, 외부 서비스로의 데이터 전송, 아무도 기록하지 않은 계산 변경입니다.
- 각 실수에는 해결책이 있으며, 대부분 앱을 만든 AI 도구로 적용할 수 있습니다. 데이터베이스가 쓰기를 거부하거나 이전 비밀번호가 더는 작동하지 않는 것처럼 조치가 효과를 냈음을 입증하는 간단한 확인 방법도 있습니다.
- 재무 도구는 기본적으로 사설 네트워크에 두고, 재무팀 외부의 사람이 필요로 하면 회사 로그인을 추가하세요. 두 번째 승인자 없이 원장에 전기하거나 카드 데이터를 다루거나 SOX 범위의 재무제표에 수치를 제공하면 IT팀으로 넘기세요.
- 서버 리전은 앱의 기본 VPS 저장소 위치를 결정하지만 백업, 로그 및 제삼자 서비스는 다른 곳에 복사본을 만들 수 있습니다. 전체 구성이 규정을 준수하는지는 별개의 문제입니다. 해당 지역의 규제 체계를 규정 준수팀과 확인하세요.
재무 데이터를 유출하는 배포 실수
AI 제작 재무 도구는 여섯 가지 배포 실수로 데이터를 유출할 수 있습니다. 공개 링크에 방치하기, 코드나 채팅에 자격 증명 보관하기, 읽기 전용이면 충분한데 관리자 권한으로 연결하기, 두 번째 승인자 없이 전기하기, 외부 서비스에 재무 데이터 보내기, 기록 없이 계산 변경하기입니다. 모두 데모에서는 편리해 보이는 기본 설정입니다.
아래의 각 해결책에는 앱을 만든 AI 도구에 사용할 프롬프트가 있습니다. 붙여넣기 전에 대괄호 안의 항목을 바꾸세요. 이 프롬프트는 이 글을 위해 작성한 미검증 출발점이며, AI 도구가 변경했다고 보고하는 것만으로는 아무것도 입증되지 않습니다. 프롬프트 아래의 확인 절차가 증거입니다. 코드와 표본 또는 합성 데이터셋으로 실행하고, 실제 기록이나 유효한 키를 채팅에 붙여넣지 마세요.
AI 빌더의 공개 링크에 도구 방치하기
AI 빌더의 호스팅에 공개된 현금 예측 대시보드는 주소를 아는 누구나 열 수 있으며, 표시되는 매입채무 연령 분석, 예산 대비 실적, 발표 전 분기 실적도 함께 볼 수 있습니다. RedAccess의 조사 결과에 관한 Wired 보도는 연구자들이 AI 업체의 도메인을 Google과 Bing에서 단순 검색해 이러한 앱을 찾았다고 설명합니다.
일부 앱은 방문자에게 아무 이메일 주소로나 로그인하도록 요구할 뿐이었습니다. 모든 이메일 주소를 받아들이는 로그인은 접근 제어가 아닙니다.
실제 데이터를 업체의 호스팅에서 제거하세요. 도구가 직접 관리하는 서버에서 실행되기 전까지, 위치는 다음 절에서 설명하겠지만, 합성 데이터셋이나 ERP에 있다면 샌드박스 또는 테스트 회사로 제작하고 시연하세요. 실제 데이터 내보내기는 사용하지 마세요. 호스팅 주소는 마지막으로 배포한 버전을 제공하므로 변경 후 다시 배포하세요.
이 앱이 읽는 테이블과 열에 맞는 합성 데이터셋을 만드세요: [테이블과 열 목록, 예: vendors, invoices, journal_lines].
가상의 공급업체 및 고객 이름, 가상의 은행 계좌번호, 실제 장부처럼 동작하는 [통화] 금액을 사용하세요. 모든 분개는 차변과 대변이 일치하고 보조원장 합계는 [매입채무 / 매출채권 통제 계정]과 일치해야 합니다.
실제 내보내기 대신 이 데이터셋을 참조하도록 앱을 설정하고, 변경한 모든 파일과 설정을 나열하세요.
제게 실제 기록을 요청하지 마세요.
작동 확인: 로그아웃한 브라우저에서 업체 호스팅 주소를 열거나 재무팀 외부 동료에게 요청해 합성 데이터만, 로그인 화면만, 또는 아무것도 표시되지 않는지 확인하세요. 그런 다음 실제 ERP에서 가져온 공급업체 또는 고객 이름 세 개를 앱 데이터 파일과 저장소에서 검색해 일치 항목이 없는지 확인하세요. 마지막으로 앱의 시산표나 요약 화면을 실행해 차변 합계와 대변 합계가 같은지 확인하세요.
ERP, 은행 데이터 연동 및 데이터베이스 자격 증명을 코드나 채팅에 남기기
유효한 자격 증명을 그곳에 저장하면 채팅 기록, 저장소 또는 MCP 설정 파일을 읽을 수 있는 사람은 이를 이용해 ERP, 재무 데이터베이스 또는 은행 데이터 연동에도 접근할 수 있습니다. MCP는 Claude 같은 AI 도구가 ERP나 데이터베이스와 직접 통신하도록 하는 커넥터이며, 설정 파일은 비밀번호가 남을 수 있는 또 하나의 장소입니다.
GitGuardian의 State of Secrets Sprawl 2026은 MCP 설정 파일에서 고유한 비밀 정보 24,008개가 노출되었고, 그중 14%는 PostgreSQL 데이터베이스 연결 문자열이었다고 보고했습니다. 공개 GitHub 커밋에서도 같은 보고서는 Claude Code가 공동 작성한 커밋의 비밀 정보 유출률이 기준치의 약 두 배였다고 밝혔으며, 사람의 요인 역시 여전히 중요하다고 덧붙였습니다.
채팅 메시지를 삭제해도 노출이 취소되지 않습니다. 채팅, 저장소 또는 그 기록의 복사본이 있는 사람은 여전히 값을 갖고 있습니다. 그곳에 한 번이라도 있었던 모든 비밀번호, 키, 토큰을 ERP, 데이터베이스 또는 은행 연동 관리 콘솔에서 새로 발급하고 이전 것을 비활성화하세요. 이것이 자격 증명 교체입니다.
그다음 앱은 시작할 때 환경 변수, 즉 코드 밖에 보관하는 이름 있는 설정에서 자격 증명을 읽습니다. 환경 변수는 서버에서 앱을 빌드하고 실행하는 도구인 배포 계층이 제공합니다. 여러 도구가 비밀 정보를 공유하고 한곳에서 교체해야 한다면 HashiCorp Vault가 다음 단계입니다.
팀원이 보관하는 비밀번호 사본은 Vaultwarden처럼 사람이 쓰도록 만든 비밀번호 관리자에 두세요. 실행 중인 앱은 환경에서 값을 읽습니다. 먼저 AI 생성 코드에 하드코딩된 모든 비밀 정보를 찾으세요.
이 프로젝트의 하드코딩된 비밀 정보를 감사하세요. .env 파일, 노트북, MCP 설정 파일, [ERP 이름 / 은행 데이터 제공업체 / 재무 데이터베이스]에 연결하는 코드를 포함해 모든 비밀번호, API 키, 접근 토큰, 연결 문자열을 찾으세요.
코드의 각 값을 이름 있는 환경 변수로 바꾸고 변수 이름 목록을 제공하세요.
실제 값이 들어 있는 파일이 저장소에 커밋되지 않도록 하고, 저장소 기록에서 이러한 값이 나타나는 모든 커밋을 나열하세요.
위치만 보여주세요. 비밀 정보의 값은 출력하지 마세요.
작동 확인: 이전 비밀번호나 토큰을 직접 시험하거나 IT팀에 요청해 거부되는지 확인하세요. 그런 다음 현재 프로젝트 파일에서 이전 값을 검색해 없는지 확인하세요. 기록에 남은 일치 항목이 더는 접근을 허용하지 않는 것은 그 값이 폐기되었거나 만료되었음을 확인한 뒤입니다.
읽기만 필요한 도구에 제작자의 관리자 로그인으로 연결하기
매출채권 연령 분석을 보여주는 대시보드가 총계정원장을 수정할 수 있어서는 안 됩니다. 도구가 제작자의 관리자 로그인으로 연결하면 해당 계정의 권한을 물려받습니다. Supabase secret 키나 기존 service_role 키는 프로젝트 데이터에 높은 권한의 접근을 제공하고 Row Level Security를 우회하므로 일반적인 읽기 전용 접근에 쓰면 안 됩니다. 한 연령 분석표를 위해 만든 보고서가 급여 테이블을 포함한 총계정원장 전체를 노출하게 됩니다.
큰 비용이 발생하는 것은 쓰기 쪽입니다. Supabase를 사용하는 AI 제작 앱 1,072개에 대한 Symbiotic Security의 검사에서 누구나 인증 없이 기록을 삭제할 수 있는 앱이 172개, 기존 기록을 수정할 수 있는 앱이 172개, 공개 키를 가진 누구나 테이블 전체를 읽을 수 있는 앱이 39개 발견되었습니다.
도구가 읽는 테이블로 한정된 읽기 전용 자격 증명을 부여하세요. ERP나 데이터베이스에서는 전용 연동 사용자, 즉 도구를 위해 만든 별도 계정으로 보고서에 필요한 객체만 읽고 다른 권한은 없는 계정을 뜻합니다. Supabase에서는 도구가 사용하는 모든 노출 테이블에 Row Level Security, 즉 각 요청이 볼 수 있는 행을 결정하는 데이터베이스 규칙을 켜고 테이블 권한도 검토하세요. 권한은 역할이 select, insert, update, delete를 실행할 수 있는지 결정합니다. 읽기 전용 재무 앱의 역할에 불필요한 쓰기 작업이 있어서는 안 됩니다. RLS와 최소 권한 설정이 올바르면 publishable 키는 브라우저 코드에 있을 수 있습니다. secret 키와 기존 service_role 키는 서버에 남겨 두고, 높은 권한이 정말 필요하며 자체 권한 검사를 강제하는 백엔드 작업에만 사용하세요.
참고: 페이지 JavaScript에 Supabase publishable 키나 기존 anon 키가 보이는 것은 정상입니다. Supabase API 키 문서는 Row Level Security가 허용한 범위에만 접근한다고 설명합니다. secret 키는 Row Level Security를 우회하므로 브라우저에 보내는 어떤 내용에도 포함되어서는 안 됩니다.
이 앱이 [ERP 또는 데이터베이스 이름]에 수행하는 모든 읽기와 쓰기를 테이블 또는 객체별로 나열하세요.
앱이 [필요한 테이블]만 읽고 환경 변수로 제공되는 별도 읽기 전용 자격 증명으로 연결하도록 변경하세요. 제 개인 로그인은 사용하지 마세요.
앱이 Supabase를 사용한다면 접근하는 모든 노출 테이블에 Row Level Security를 켜세요. anon과 authenticated의 select, insert, update, delete 권한을 나열하세요. 이 읽기 전용 앱에 필요 없는 쓰기 권한은 제거하되, 다른 운영 앱이 그 권한에 의존한다면 변경하지 말고 표시하세요. 그런 다음 로그아웃한 방문자는 아무것도 읽지 못하고 로그인한 사용자는 [규칙, 예: 자신의 비용 센터에 해당하는 행]만 읽도록 정책을 작성하세요. 브라우저로 보내는 어느 파일에도 secret 키나 기존 service_role 키가 없는지 확인하세요.
만든 정책을 나열하세요.
작동 확인: 도구의 자격 증명으로 테스트 기록 수정 같은 쓰기를 한 번 시도해 거부되는지 확인하세요. Supabase에서는 로그아웃한 상태로 재무 테이블의 행을 요청해 빈 결과나 오류가 나오는지 확인하세요.
두 번째 승인자 없이 도구가 원장에 전기하도록 허용하기
직접 전기하는 분개 가져오기 도구나 은행으로 바로 보내는 지급 파일 생성기는 실행자를 작성자와 승인자로 동시에 만듭니다. 버그 하나로 한 달의 발생주의 계상액이 중복되고, 필드 하나를 바꾸면 공급업체 지급이 잘못된 계좌로 갑니다. 재무 부서가 두 사람 사이에서도 허용하지 않는 직무 분리 위반이며, AI 보조 도구로 만든 소프트웨어도 예외가 아닙니다.
피해는 앱 안에 머물지 않습니다. 잘못된 배치가 장부에 들어가면 되돌리려면 수정 분개와 결산 시 설명이 필요합니다. 도구가 제작자의 개인 로그인으로 전기하면 모든 중복 분개에 제작자의 이름이 남습니다.
AI 제작 도구는 읽고 준비하며, 전기와 지급 실행은 ERP 자체의 승인 절차에서 도구를 실행한 사람이 아닌 다른 사람이 승인합니다. 제가 작업했던 모든 회계 엔진은 분개와 승인을 두 책임자가 맡는 두 사건으로 취급하며, AI 제작 도구도 같아야 합니다.
실제로는 모든 직접 전기를 ERP 안에서 승인을 기다리는 초안 분개나 대기 상태의 가져오기로 바꾸세요. 도구는 여전히 매핑, 검증, 배치 구성이라는 번거로운 일을 하고, 승인은 결산에 필요한 다른 모든 승인과 함께 ERP에 남습니다. ERP에 가져오기 승인 단계가 없다면 도구의 출력을 파일로 만들고 두 번째 사람이 배치 요약과 대조한 뒤 직접 가져오게 합니다.
자동 전기, 지급 파일 생성 또는 공급업체 은행 정보 변경이 필요한 도구는 다음 절의 조건에 따라 IT팀이 맡아야 합니다.
이 앱이 [ERP 이름]에서 [분개 / 청구서 / 지급]을 생성, 수정 또는 전기하는 모든 위치를 나열하세요.
앱이 전기 전에 [ERP 이름]에서 승인받아야 하는 초안 분개나 대기 상태의 가져오기를 작성하도록 각 부분을 바꾸세요. [ERP 이름]에 가져오기 승인 단계가 없다면 가져오기 파일을 만들고 아무것도 전기하지 마세요.
그 승인 없이 전기하거나 지급을 실행하는 모든 코드 경로를 제거하세요.
각 배치에 대해 행 수, 차변 합계, 대변 합계를 담은 요약을 만드세요.
제가 검토할 수 있도록 여전히 직접 전기하는 항목을 모두 나열하세요.
작동 확인: 표본 데이터로 배치 하나를 실행하세요. 두 번째 사용자가 ERP에서 승인하기 전까지 아무것도 전기 완료로 표시되어서는 안 됩니다. 그다음 배치 요약과 ERP의 해당 배치를 비교하세요. 행 수, 차변 합계, 대변 합계가 정확히 일치해야 합니다. 한 행의 차이는 대사 실패이지 반올림 문제가 아닙니다.
관리할 수 없는 외부 서비스에 재무 데이터 보내기
총계정원장 전체 추출본을 AI API로 보내는 차이 설명 기능은 모든 행을 제삼자에게 전송합니다. 덜 눈에 띄는 두 경로도 데이터를 밖으로 내보냅니다. 방문마다 업체에 알리는 페이지 분석 스크립트와 요청 본문 전체를 보관하는 오류 추적기 또는 로그입니다. 그곳에 급여 행, 고객 은행 정보, 발표 전 수치가 남을 수 있습니다.
재무팀이 만든 내부 도구에서는 서비스와 정확한 데이터 흐름이 조직의 공급업체, 보안 및 규정 준수 절차를 통해 명시적으로 승인되지 않았다면 미발표 실적과 급여를 제삼자 호출에서 제외하세요. 나머지도 모든 목적지를 나열하고 각 호출에는 필요한 필드만 보내세요. 외부 서비스가 받은 내용을 저장하거나 학습하는지는 공급업체 계약 서명 담당자가 해당 업체의 약관을 확인해 판단할 문제입니다. 팀이 사용 빈도를 알고 싶다면 Umami 같은 자체 호스팅 분석 도구는 페이지 조회 정보를 자체 서버에 보관합니다.
AI API, 분석 스크립트, 오류 추적, 이메일, 웹훅 및 로그 파일을 포함해 이 앱이 [우리 서버] 밖으로 데이터를 보내는 모든 곳을 나열하세요.
각 목적지에 대해 받는 필드를 정확히 나열하세요.
[급여액 / 은행 계좌번호 / 미발표 실적 / 고객 이름]을 포함하는 항목을 모두 표시하세요.
표시한 각 항목에 대해 필드를 줄이거나 보내지 않는 방법을 보여주고, 제가 확인한 후에만 변경하세요.
작동 확인: 알아보기 쉬운 가짜 계좌번호와 가짜 급여액이 있는 표본 데이터로 각 기능을 한 번 실행하세요. 오류 추적기와 로그에서 두 값을 검색해 아무것도 없는지 확인하세요. AI API 경로에서는 표본 실행 중에 앱이 발신 요청 본문을 기록하게 하고, 로그에서 같은 두 값이 없고 승인한 필드만 있는지 확인하세요. 그 후 해당 로깅을 끄세요.
기록과 대사 없이 계산 변경하기
발생액 계산기나 수익 워터폴(revenue waterfall) 검증기에서는 코드가 통제입니다. 공식 하나를 바꾸면 결산에 도달하는 수치도 바뀌며, 버전 관리가 없다면 누가 무엇을 언제 바꿨는지 알 수 없습니다.
Claude Code로 만든 내부 도구에 관한 CPA 회계법인의 r/ClaudeAI 스레드에서 한 댓글 작성자는 한계를 직설적으로 말했습니다. “‘회계사 + claude code’는 감사 추적 요건에 부딪히기 전까지만 통한다. 그것이 실제 한계다.”
무엇이든 변경하기 전에 현재 동작을 고정하세요. 출력을 고정하면 합계가 모르는 사이에 달라지지 않으면서 로직을 개선할 수 있습니다. 작성자와 날짜를 포함해 모든 변경을 기록하는 버전 관리에 코드를 보관하세요.
고정된 표본 파일로 도구를 실행하고 결과를 기록된 기준값과 비교하는 테스트를 작성해 변경을 배포하기 전에 대사를 통과하게 하세요. 고정된 테스트는 오류까지 포함해 기록된 것을 보호하므로, 신뢰하기 전에 기준 합계를 해당 기간의 ERP 합계와 맞추세요.
계산 로직 변경은 두 번째 사람이 검토하도록 하고 모든 운영 실행을 ERP 자체 합계와 대사하세요.
아직 버전 관리 중이 아니라면 이 프로젝트에 버전 관리를 적용하고 계산 로직이 들어 있는 파일을 나열하세요.
[표본 파일]로 앱을 실행하는 테스트를 작성하고 현재 출력인 [계정 / 법인 / 기간]별 행 수와 합계를 기록하세요.
기록한 출력을 저장하기 전에 [기간]의 [ERP 이름]과 맞출 수 있도록 합계를 보여주세요.
이 합계 중 하나를 바꾸는 모든 변경은 테스트를 실패시켜야 합니다.
테스트를 작성하면서 계산 로직을 변경하지 마세요.
작동 확인: 반올림 규칙 같은 계산 하나를 의도적으로 바꿔 테스트가 실패하는지 확인하세요. 변경을 되돌리고 모든 테스트가 다시 통과하는지 확인하세요.
기본은 사설 네트워크, 이용자가 늘면 회사 로그인, 원장은 IT팀에

실제 재무 데이터는 AI 도구의 호스팅에 남겨 두지 않습니다. 재무팀만 사용할 AI 제작 재무 앱을 안전하게 배포하려면 사설 네트워크에서만 접근할 수 있는 직접 관리 서버에 두세요. 팀 밖의 사람이 필요로 하면 회사 로그인을 추가하고 아래 항목 중 하나라도 해당하면 IT팀으로 넘기세요.
VPS는 운영 체제와 소프트웨어 구성을 직접 관리하는 임대 가상 서버입니다. 사설 네트워크는 Tailscale 용어로 tailnet이며 승인된 기기를 해당 서버에 연결합니다. 공개 인터넷에서 도구를 차단하려면 서버 방화벽 등을 통해 앱의 공개 인바운드 접근을 막고 VPN이나 tailnet 인터페이스로만 노출해야 합니다. ID 제공자는 회사 사용자 계정을 보관하고, 리버스 프록시는 앱 앞에서 모든 요청을 먼저 로그인 절차로 보내는 문지기입니다.
| 배포 단계 | 접근할 수 있는 사람 | 적합한 용도 | 실행 기반 |
|---|---|---|---|
| 사설 네트워크만 | 자기 기기를 사용하는 재무팀 | 대사 보조, 현금 예측, 결산 체크리스트, 발표 전 수치를 보여주는 모든 것 | Coolify 또는 Dokku 같은 배포 계층을 갖추고 Tailscale 또는 WireGuard로만 접근하는 VPS |
| 앞단의 회사 로그인 | 예산 책임자와 부서장 등 회사 내 지정된 사람 | 예산 대비 실적 화면, 지출 요청 | 1단계에 더해 리버스 프록시(Caddy 또는 Nginx Proxy Manager) 뒤에 ID 제공자(Authentik 또는 Keycloak) |
| IT 또는 엔지니어링팀이 관리 | IT팀이 결정한 사람 | IT팀 인계 목록의 조건에 해당하는 모든 도구 | IT팀 자체 플랫폼 |
첫 번째 실수에서 설명한 이유로 AI 도구 자체의 호스팅은 표에 넣지 않았습니다. Northflank 같은 기업용 배포 플랫폼도 마찬가지입니다. 그런 플랫폼은 플랫폼 업체와 필요한 검토에 이미 예산을 마련한 큰 조직에 적합합니다. 소수 사용자의 부서용 도구에는 그 정도 계약이 필요하지 않습니다.
제 경험상 두 사설 네트워크 선택지 중 Tailscale이 더 빨리 도입되지만, Tailscale은 조정 서비스를 직접 호스팅합니다. 완전한 자체 호스팅 선택지는 WireGuard입니다.
사설 네트워크를 기본으로 하는 이유는 인터넷에서 응답하지 않는 도구는 검색으로 발견하거나 로그인 페이지를 공격할 수 없기 때문입니다. 반면 AI 도구가 작성한 로그인 페이지의 품질은 뒤에 있는 AI 생성 코드에 달려 있습니다. 사설 네트워크 밖으로 앱을 노출해야 한다면 회사 로그인이 관리되는 인증 계층을 앞에 추가하므로 두 번째 단계로 둡니다.
예산 책임자가 접근해야 한다면 도구 자체의 로그인을 회사 로그인, 즉 싱글 사인온(SSO)으로 바꾸세요. 기존 회사 계정을 사용하므로 그 계정을 비활성화하면 새 로그인이 차단됩니다. 기존 세션이 남지 않도록 세션 폐기, 백채널 로그아웃 또는 적절히 짧은 세션 수명을 설정하세요. 프롬프트는 Authentik과 Keycloak 모두 지원하는 표준 로그인 프로토콜 OIDC를 사용합니다.
OIDC를 사용해 이 앱 자체의 로그인을 [Authentik / Keycloak / 우리 ID 제공자]를 통한 회사 로그인으로 바꾸세요.
로그인에서 각 사용자의 그룹을 읽으세요.
[급여 페이지]는 [그룹 이름]의 구성원만 허용하고, 메뉴뿐 아니라 모든 페이지, 모든 내보내기, 모든 API 엔드포인트에 대해 서버에서 규칙을 강제하세요.
유효한 로그인 정보가 없는 모든 요청을 거부하세요.
작동 확인: 그룹에 속하지 않은 테스트 계정으로 로그인하고 제한 페이지와 내보내기 또는 API 주소를 직접 요청해 둘 다 거부되는지 확인하세요. 그런 다음 ID 제공자에서 테스트 계정을 비활성화하고 새 세션을 시작하지 못하는지 확인하세요. 기존 세션도 설정한 시간 안에 폐기되거나 만료되는지 확인하세요.
일부 도구는 팀이 계속 맡아서는 안 됩니다. 다음 중 하나라도 해당하면 IT 또는 엔지니어링팀으로 넘기세요.
- ERP에서 사람이 승인하지 않은 채 총계정원장이나 다른 공식 기록 시스템에 전기합니다.
- 지급 파일을 생성하거나 지급을 실행하거나 공급업체 은행 정보를 변경합니다.
- 출력이 SEC 등록 기업의 재무제표에 반영되어 재무보고 내부통제(ICFR)의 대상이 될 수 있습니다. 결산에서 사용하기 전에 내부 감사와 논의하세요. SOX 제404(b)조 대상 발행사의 경우 외부 감사인도 관련 통제를 검사할 수 있습니다.
- 결제 카드 데이터를 저장, 처리 또는 전송합니다.
- 개인의 신용도를 점수화합니다.
- 팀의 누구도 패치, 접근 권한 검토 및 폐기를 책임지지 않습니다.
여섯 번째 조건은 보기보다 중요합니다. 자체 호스팅에서는 업데이트, 백업 및 모니터링을 직접 책임집니다. 아무도 유지 관리하지 않는 재무 도구는 IT팀이 맡는 편이 안전합니다. IT팀이 더 느릴 수 있지만, 그것이 이러한 조건에 필요한 거버넌스의 비용입니다.
1단계와 2단계에서는 누군가 도구를 열기 전에 서버, 배포 계층, 사설 네트워크, 그리고 2단계의 경우 ID 제공자를 모두 마련해야 합니다. 엔지니어가 없는 재무팀은 이를 직접 구축해야 합니다. 당사의 Linux VPS에서는 root 접근을 제공합니다. Coolify와 WireGuard는 원클릭 배포가 가능하고, Tailscale은 공식 단일 명령 설치 도구로 설치하며, Authentik은 공식 Docker Compose 구성으로 실행됩니다. 따라서 배포 구성을 처음부터 만드는 대신 위의 해결책에 시간을 쓸 수 있습니다. 당사 위치에는 EU의 프랑크푸르트와 암스테르담, 영국 런던 및 여러 미국 도시가 포함되어 앱의 기본 VPS 저장소 리전을 선택할 수 있습니다. 그 선택이 허용되는지는 규정 준수 담당자의 판단입니다.
지역별로 규정 준수팀과 확인할 규칙
어떤 규제 체계가 적용되는지는 도구가 다루는 내용과 회사 및 데이터에 포함된 사람의 위치에 따라 달라집니다. EU 직원 급여를 담은 테이블과 미국 상장 회사의 재무제표에 반영되는 수익 명세는 서로 다른 체계에 해당할 수 있습니다.
이 글의 어떤 내용도 법률 자문이 아닙니다. 아래 표는 규정 준수팀에 논의할 체계를 나열하며, 실제로 해당되는지 판단하지 않습니다.
| 지역 / 조건 | 규정 준수 체계 | 규정 준수팀에 할 질문 | 참고 자료 |
|---|---|---|---|
| 미국, SEC에 보고하는 회사 | Sarbanes-Oxley 제404조, 재무보고 내부통제(ICFR) | 이 도구의 출력이 재무제표에 반영되며 우리의 통제 목록에 포함되어야 하나요? | PCAOB의 AS 2201 |
| EU, 개인정보(급여, 직원 경비, 고객 은행 정보) | GDPR | 이 도구에서 이 데이터를 처리하는 적법한 근거는 무엇이며 보안 조치가 제32조를 충족하나요? | EDPB 개인정보 보안 안내 |
| 영국, 개인정보 | UK GDPR | UK GDPR에 따른 적법한 근거는 무엇이며 도구가 보안 원칙을 충족하나요? | ICO 데이터 보호 원칙 안내 |
| 카드 데이터가 관련된 모든 곳 | PCI DSS(업계 표준이며 그 자체가 법은 아님) | 이 도구가 카드 데이터를 적용 범위에 포함시키며 카드 데이터를 전혀 다루지 않을 수 있나요? | PCI Security Standards Council의 PCI DSS 설명 |
| EU, 도구가 개인의 신용도를 평가할 때(부속서 III의 고위험 규칙은 현재 2027년 12월 2일부터 적용) | EU AI Act, 고위험 범주(금융 사기 탐지용 AI는 예외) | 부속서 III에 따른 고위험 AI 시스템인가요? | 유럽연합 집행위원회의 AI Act 페이지; AI Act 부속서 III |
| EU 또는 영국 개인정보를 해당 관할권 밖의 별도 수령자에게 제공하거나 고객 계약이 기록 위치를 지정하는 경우 | GDPR 제V장, 영국 국제 이전 규칙, 고객 계약 | 이 데이터를 [위치]의 서버에 둘 수 있으며 이를 제한하는 고객 계약이 있나요? | EDPB 국제 데이터 이전 안내; ICO 국제 이전 지침 |
SOX 행의 AS 2201은 Sarbanes-Oxley법 제404(b)조가 언급하는 감사인 증명에 관한 PCAOB 기준입니다. 사기 위험에 대응할 때 감사인이 평가하는 통제 중에 기간 말 재무보고 절차에서 수행하는 분개와 조정에 대한 통제를 명시합니다. 이 지역 밖에서는 자국 데이터 보호 규제 기관의 공식 사이트부터 확인하세요. 서버 위치는 기본 저장소가 있는 곳을 결정하지만 모든 백업, 로그 또는 제삼자 복사본의 위치를 알려주지 않으며, 그 자체로 위의 규제 체계를 충족하지 않습니다.
자주 묻는 질문
Vibe Coding은 재무 도구에 안전한가요?
데모에서 남은 빈틈을 메우면 안전할 수 있습니다. 저는 증거를 코딩보다는 배포 문제로 해석합니다. 재무 도구는 ERP를 읽고 장부에 쓸 수 있어 개인 프로젝트보다 위험합니다. 두 번째 승인자 없이 전기하거나 지급을 처리하거나 카드 데이터를 다루면 IT팀이 맡아야 합니다.
재무 분야의 Shadow AI란 무엇인가요?
Shadow AI는 IT팀의 인지나 승인 없이 회사 데이터에 사용하는 AI 도구나 AI 제작 앱입니다. 예를 들어 IT팀이 한 번도 본 적 없는 ERP 연결 예측 대시보드입니다. IBM의 2025년 Cost of a Data Breach Report에서 Shadow AI 수준이 높은 조직의 평균 침해 비용은 낮거나 없는 조직보다 $670,000 높았다고 합니다(IBM 발표에 따르면).
내부 감사나 외부 감사인에게 무엇을 보여줘야 하나요?
결산에 도구를 쓰기 전에 네 가지를 가져가세요. 실행 위치와 접근 가능한 사람, 출력을 고정한 테스트를 포함한 변경 기록, ERP에서 전기를 승인하는 방식, 각 배치를 ERP 합계에 맞춘 대사 증거입니다. 감사인이 무엇을 요구할지는 감사인이 결정하지만, 이는 구체적인 평가 자료가 됩니다.
제작자가 떠난 뒤 AI 제작 재무 도구는 누가 책임지나요?
출시 전에 재무 부서의 책임자와 기술 연락 담당자를 지정하세요. 제작자의 개인 로그인 대신 서비스 자격 증명으로 도구를 실행하고 회사 로그인으로 접근하게 하세요. 퇴사자의 회사 계정을 비활성화하면 새 로그인이 차단되고 기존 세션은 세션 정책에 따라 폐기되거나 만료됩니다. 도구 폐기는 자격 증명을 비활성화하고 보존 정책상 필요한 것을 남기고 나머지를 삭제한 후 종료하는 것입니다.
토론
댓글
토론에 참여하려면 로그인하세요.