Advanced (업데이트: 2026. 7. 19.)

사내 FAQ용 Azure OpenAI 개인정보 메모

Claude Code로 FAQ, 개인정보, RBAC, content filtering, log, network를 분류합니다.

사내 FAQ용 Azure OpenAI 개인정보 메모

세무, 노무, 법무, 등기 사무소의 사내 FAQ는 쉽게 고객 사건 검색이 됩니다. 위험한 것은 chatbot만이 아니라, 공개 절차, 고객명, 조사 메모, 개인번호, 계약 조건, 개별 판단이 섞인 spreadsheet입니다.

Key Points

  • Azure OpenAI 테스트 전에 데이터를 분류합니다.
  • cloud privacy 설명은 prompt, file, vector, log에 무엇을 넣을지 대신 정해주지 않습니다.
  • Claude Code는 column, 가린 sample, 공개 reference, role을 봅니다.
  • 사람은 전문 판단, 개인정보, 계약, 공개, log, RBAC, network를 결정합니다.
  • 첫 답변 시간, 오답 수, 민감정보 발견, FAQ update, 상담 문의를 봅니다.

Internal FAQ Workflow

구체물은 FAQ row, 고객 메모, Teams 질문, 공개 template, 내부 절차, Azure role, logging rule입니다. model 테스트 전에 data boundary를 만듭니다.

Official sources checked: Data, privacy, and security for Models sold by Azure, Foundry Models sold by Azure, content filtering, managed identity, RBAC, network, and monitoring. Related guide: Vertex AI sales FAQ memo.

What Claude Code Handles And What Humans Decide

Claude Code에는 title, category, public URL, redacted sample, policy heading, Azure role name만 줍니다. 고객명, 개인번호, 주소, 계좌, 조사 내용, 계약, 결론은 주지 않습니다.

Claude Code classifies FAQ rows, detects sensitive columns, drafts RBAC and logging questions, and creates escalation notes. Humans decide professional judgment, privacy, contracts, publication, role assignment, network posture, and launch approval.

3 Use Cases

Use case 1: Split FAQ candidates

  • Input: FAQ table, column names, public references, procedure headings, redacted samples.
  • Output: safe for AI, human review first, never send.
  • Human review: client name, personal number, contract, professional judgment, case details.

Use case 2: Draft the Azure memo

  • Input: resource name, pilot team, RBAC candidates, log viewers, test environment, launch date.
  • Output: owner, tester, log viewer, deployment manager, audit memo.
  • Human review: admin rights, logs, privacy boundary, network decision.

Use case 3: Handle wrong answers or filter events

  • Input: wrong answer, content filter event, staff question, repair owner, approver.
  • Output: update FAQ, update prompt, route to human, or ban answer.
  • Human review: professional decision, client explanation, publication, recurrence prevention.

Copy-Paste Prompt

Act as an Azure OpenAI adoption memo reviewer for a professional services office.
Classify internal FAQ candidates into safe for AI, human review first, and never send.
Check client names, personal numbers, addresses, bank accounts, contracts, case details, RBAC, logs, network, content filtering, and human review.
Do not change Azure settings.
Return the five rows to inspect today.

Working Check Code

// verify-internal-faq-ai-boundary.mjs
// No dependencies. Run with: node verify-internal-faq-ai-boundary.mjs
const faqCandidates = [
  {
    id: "faq-001",
    title: "年末調整の必要書類",
    audience: "internal",
    source: "public template",
    text: "扶養控除申告書、保険料控除証明書、住宅ローン控除資料の提出期限を確認する。",
    containsClientName: false,
    containsMyNumber: false,
    containsContractTerm: false,
    approvedForAi: true
  },
  {
    id: "faq-002",
    title: "A社の税務調査メモ",
    audience: "internal",
    source: "case note",
    text: "A社 代表 山田太郎 様。マイナンバー 123456789012。調査官とのやり取り。",
    containsClientName: true,
    containsMyNumber: true,
    containsContractTerm: true,
    approvedForAi: true
  },
  {
    id: "faq-003",
    title: "電子帳簿保存の確認順",
    audience: "staff",
    source: "internal checklist",
    text: "保存場所、検索項目、権限、変更履歴、例外対応を担当者が確認する。",
    containsClientName: false,
    containsMyNumber: false,
    containsContractTerm: false,
    approvedForAi: false
  }
];

const deploymentMemo = {
  dataPrivacyRead: true,
  contentFilteringRead: true,
  rbacOwner: "",
  privateNetworkDecision: "undecided",
  loggingPolicy: "",
  humanReviewOwner: "partner"
};

const problems = [];

for (const item of faqCandidates) {
  const sensitive = [];
  if (item.containsClientName) sensitive.push("client name");
  if (item.containsMyNumber || /\d{12}/.test(item.text)) sensitive.push("my number");
  if (item.containsContractTerm) sensitive.push("contract or case detail");
  if (item.approvedForAi && sensitive.length > 0) {
    problems.push({ item: item.id, fix: "remove from AI FAQ input: " + sensitive.join(", ") });
  }
  if (!item.approvedForAi && item.source !== "public template") {
    problems.push({ item: item.id, fix: "route to human review before Azure OpenAI testing" });
  }
}

if (!deploymentMemo.dataPrivacyRead) {
  problems.push({ item: "data privacy", fix: "read Azure data privacy notes before choosing data sources" });
}
if (!deploymentMemo.contentFilteringRead) {
  problems.push({ item: "content filter", fix: "read content filtering behavior and write escalation rules" });
}
if (!deploymentMemo.rbacOwner) {
  problems.push({ item: "RBAC", fix: "assign owner for who can deploy, test, and view logs" });
}
if (deploymentMemo.privateNetworkDecision === "undecided") {
  problems.push({ item: "network", fix: "decide public network, private endpoint, or pilot-only access" });
}
if (!deploymentMemo.loggingPolicy) {
  problems.push({ item: "logging", fix: "write what prompts, outputs, and request IDs may be logged internally" });
}

if (problems.length > 0) {
  console.table(problems);
  process.exitCode = 1;
} else {
  console.log("Internal FAQ AI boundary passed.");
}

Pitfall: Common Failure Cases

Do not mix client notes into internal FAQ. Do not skip office-side classification after reading cloud privacy notes. Do not grant broad access just because the office is small. Do not repair every wrong answer with prompt edits. Fix the memo with data boxes, role separation, logging policy, network decision, and human review.

FAQ

Q. What should the office create first?

A. A classification table, not a chatbot.

Q. Is removing client names enough?

A. No. Dates, amounts, contracts, case names, and conclusions can identify a case.

Q. Does content filtering prevent professional mistakes?

A. No. It helps with harmful content categories, not specialist judgment.

Q. What metric matters?

A. First-answer time, wrong-answer count, sensitive data findings, FAQ updates, and training inquiries.

Training And Consultation Signal

If FAQ candidates contain case details or access rules are unclear, start with a data and permission memo. This is a fit for ClaudeCodeLab training.

What I Verified

I checked official Azure and Microsoft Foundry sources, CTA, executable JavaScript, internal link, external links, locale coverage, and queue removal. The first action is to classify 20 FAQ candidates into safe for AI, human review first, and never send.

#claude-code #전문서비스 #azure-openai #사내FAQ #개인정보
무료

무료 PDF: Claude Code 치트시트

이메일을 입력하면 명령, 리뷰 습관, 안전한 워크플로를 정리한 PDF를 받을 수 있습니다.

개인정보를 안전하게 관리하며 스팸을 보내지 않습니다.

Masa

작성자 소개

Masa

Claude Code 실무 워크플로와 팀 도입을 검증하는 엔지니어입니다.