CCAR-P 개념 카드

■ HIPAA 구성

HIPAA configuration — BAA + HIPAA readiness + PHI 경계 · ZDR 불필요5.4 본편

표시가 없는 문장은 공식 문서에서 확인한 내용이에요. 다른 표시는 읽는 법

왜 배우나 — 시험이 요구하는 것

시험 목표 5.4 규정 준수 · D5 규정·안전 14%
Ensure compliance with regulations (e.g., GDPR, HIPAA, FedRAMP)

이 개념으로 푸는 판단 (할 수 있어야 하는 것)

  • 5.4① 병원 환자 메시지를 Claude API 로 — BAA·HIPAA readiness 면 되나, ZDR 도? — HIPAA 구성 고르기 (BAA + HIPAA readiness + PHI 경계) vs ZDR
  • 6.1③ 민감 데이터라며 BAA·GDPR·ZDR 을 한꺼번에 걸자고 한다 — 디스커버리에서 무엇을 사실로 확인하나? — 규정 약정을 데이터 사실(PHI 유무·거주지·보존)에서 끌어내기

한눈에

PHI(개인을 식별할 수 있는 건강 정보)를 Claude API 로 처리하려면 아래 넷을 갖춘다.

  • BAA 에 서명한다
  • HIPAA readiness 를 켠 조직을 쓴다
  • 지원 기능만 쓴다
  • PHI 는 메시지 본문·첨부 같은 보호 필드에만 넣는다. 스키마에는 넣지 않는다

PHI 면 HIPAA readiness 가 쓸 방식이다. ZDR 은 따로 필요 없다 (2026-09-28 조회)

HIPAA readiness 는 즉시 삭제가 아니다. 암호화·접근 통제(access control)·감사 로그로 PHI 를 수명 내내 보호한다. 데이터는 그 보호 아래 남을 수 있다. ZDR 은 응답 뒤 저장하지 않는 약정이다. 둘은 덮는 기능 목록도 다르다

비유 PCI 범위 줄이기와 같다. 카드 데이터는 전용 계정에만 둔다. 리소스 태그·메타데이터에는 넣지 않는다

PHI 를 Claude API 로 다루려면 BAA 서명, HIPAA readiness 조직, 지원 기능만, 보호 칸에만 네 조건이 동시에 필요하고 ZDR 은 따로 필요 없다는 그림
그림으로 보기 (AI 생성 · Codex · 누르면 크게)

ELI5

병원 환자 기록을 맡기는 특별 금고를 빌리는 거예요.

  • 금고를 빌리려면 약속서(BAA)에 도장을 찍고, 금고 모드(HIPAA readiness)를 켜야 해요.
  • 금고 모드는 한 번 켜면 못 꺼요. 그래서 일반 물건은 다른 창고에 둬요.
  • 환자 이름은 금고 안(메시지 본문)에만 넣고, 금고 겉 이름표(스키마)엔 쓰면 안 돼요.
  • "바로 버리는 창고"(ZDR)는 따로 안 빌려도 돼요. 금고가 이미 지켜 주니까요.

개념 설명

영상 — 환자 이름은 어느 칸에 — HIPAA 구성 (약 43초 · 소리 없음 · 자막). 작은 화면에서는 전체화면(⛶)으로 보세요.

원리

두 약정은 목적이 다르다

  • ZDR : 응답을 돌려준 뒤 프롬프트·응답을 저장하지 않는다. "남기지 않기"로 지킨다.
  • HIPAA readiness : 암호화·접근 통제(access control)·감사 로그로 PHI 를 수명 내내 보호한다. 데이터는 그 보호 아래 남을 수 있다. "남겨도 잠가 두기"로 지킨다.
  • 그래서 PHI 를 Claude API 로 다루면 HIPAA readiness 하나로 충분하다. ZDR 을 더 붙인다고 HIPAA 가 되지 않는다.
  • 덮는 기능 목록도 다르다. 예를 들어 구조화 출력은 ZDR 에서 "qualified" 이고 HIPAA 에서 Yes 다. tool search 는 ZDR 에서 Yes 이고 HIPAA 에서 No 다.

조직이 경계다

  • HIPAA readiness 는 조직 단위로 강제된다. 그 조직 안의 요청은 전부 기능 제한을 받는다.
  • 켜면 영구다. 그래서 일반 업무가 같은 조직에 있으면 일반 업무도 묶여 버린다. 그러니 조직을 나눈다.
  • BAA 는 수락한 그 한 조직에만 적용된다.

PHI 는 "보호되는 칸"에만 둔다

  • 보호되는 칸은 메시지 본문·첨부·파일 이름·메타데이터다.
  • JSON 스키마는 생성 제약용 문법(grammar)으로 컴파일돼 따로 캐시된다(최대 24시간). 그래서 같은 보호를 못 받는다. 스키마에는 환자 값을 넣지 않는다.
  • 워크스페이스 이름·사용자 정보·청구·지원 티켓은 애초에 PHI 가 없어야 하는 칸이다.

어디서 켜지나

  • Anthropic 이 처리자인 Claude API 에서만 켜진다. Claude Platform on AWS·Microsoft Foundry 는 Anthropic 이 처리자인데도 HIPAA readiness 가 없다.
  • Bedrock·Google Cloud 는 클라우드 사업자가 처리자다. 그래서 그쪽 규정을 따른다.

규칙과 판단

프롬프트·응답·첨부·파일 이름은 보호 대상, JSON 스키마는 PHI 금지, 워크스페이스 이름·청구·지원 티켓엔 넣지 않는다는 결정 그림
그림으로 보기 (AI 생성 · Codex · 누르면 크게)

갈림길

① 어떤 약정 [5.4①]

PHI 를 어디로 보내나?
Claude API

HIPAA readiness

BAA 와 HIPAA readiness 조직을 쓴다. ZDR 은 따로 필요 없다

Claude Platform on AWS·Foundry

못 쓴다

Claude Platform on AWS·Microsoft Foundry 는 HIPAA readiness 를 못 쓴다

Bedrock·Google Cloud

그쪽 규정 문서

클라우드 사업자가 처리자다. 그래서 그쪽 규정 문서를 따른다

Claude Code

HIPAA readiness 대상이 아니다

Claude Code 는 HIPAA readiness 대상이 아니다. 자세한 것은 ■ BAA 적용 범위 에 있다

② 조직 나누기 [5.4①]

일반 업무도 같은 조직에서 하나?
예

조직을 따로 둔다

HIPAA 와 일반 업무는 같은 조직에 둘 수 없다. 그래서 조직을 따로 둔다

아니오 (HIPAA 전용 조직)

켜면 영구다

HIPAA readiness 는 조직 단위로 강제된다. 켜면 영구이고, 관리자가 끌 수 없다. BAA 는 수락한 그 한 조직에만 적용된다

③ PHI 어디에 [5.4①]

어느 칸에 넣나?
프롬프트·응답·첨부·파일 이름

보호 대상

메시지 본문(프롬프트·응답)·첨부(이미지·PDF)·파일 이름·메타데이터가 보호 대상이다

JSON 스키마

PHI 를 넣지 않는다

속성 이름·enum·const·pattern 에 PHI 를 넣지 않는다. 환자 정보는 메시지 본문·첨부 같은 보호 필드에만 넣는다

워크스페이스 이름·청구·지원 티켓

넣지 않는다

BAA 상 PHI 가 없다고 보는 칸이다

흐름

그림 속 이름·금액·시간·토큰 수는 예시예요. 공식 한도·동작은 카드 본문 값이 기준.

장면 글로 보기

칸 : 앱 → HIPAA 조직 → 스키마 캐시

블록 : 프롬프트, 첨부, JSON 스키마 (바뀌는 것)

규칙 (스키마 캐시) : 따로 캐시한다(마지막 사용부터 최대 24시간). 같은 PHI 보호가 없다

질문 : 환자 이름은 어느 칸에 둬야 할까?

① PHI 는 본문에 ✓

  1. 시작 : 앱 — 쪽지 : 진료 기록 #M-5520 / 환자 최서연 · 52세 / 흉통 3일
  2. 보내기 : 프롬프트 → HIPAA 조직 : 환자 정보는 본문·첨부 같은 보호 필드에만 넣는다 — 쪽지 : messages: / "최서연 52세, 흉통 3일" / 분류해 줘
  3. 첨부 : 첨부 → HIPAA 조직 : 첨부도 보호 필드다 — 쪽지 : 첨부: 흉부_X-ray.png
  4. 스키마 : JSON 스키마 → 스키마 캐시 : 스키마에는 환자 값이 없다 — 쪽지 : { 분류: enum [ "심장", / "호흡기", "기타" ] }
  5. 끝 : PHI 는 본문·첨부에만 둔다. 암호화·접근 통제·감사 로그로 수명 내내 보호한다

② 스키마 enum 에 환자 값 ≠

  1. 시작 : 앱 — 쪽지 : 진료 기록 #M-5520 / 환자 최서연 · 52세 / 흉통 3일
  2. 보내기 : 프롬프트 → HIPAA 조직 : 메시지 본문을 보낸다 — 쪽지 : messages: / "흉통 3일, 분류해 줘"
  3. 스키마 : JSON 스키마 → 스키마 캐시 : enum 에 PHI 를 넣는다 — 쪽지 : { 환자: enum [ "최서연", / "박지호", "이하준" ] }
  4. 끝 : 따로 캐시된 스키마는 같은 PHI 보호를 못 받는다

나머지 규칙

  1. 켜는 길 : 표준 BAA 는 Console > Settings > Privacy 에서 켠다. 여기서 BAA 와 HIPAA Implementation Guide 를 받고 법적 대리인이 수락한다. 그러면 즉시 적용되고, 받은 그 BAA 버전에 묶인다(docs) [5.4①]

    협상 BAA 가 필요하거나 셀프가 안 되는 조직은 영업팀을 거친다

    privacy 글은 "Primary Owner 가 BAA 서명 뒤 Anthropic 담당·영업팀에 연락해 켜기" 라고 적는다. 공식 문서끼리 다르다 (설명 쪽 미해결)

규칙 원문 ①②③ (갈림길로 그린 규칙)
  1. 약정 고르기 : PHI 를 Claude API 로 다루면 BAA 와 HIPAA readiness 조직을 쓴다. ZDR 은 따로 필요 없다 [5.4①]

    HIPAA readiness 는 Claude API(api.anthropic.com)의 지원 기능에만 적용된다

    Claude Platform on AWS·Microsoft Foundry 는 HIPAA readiness 를 못 쓴다

    Bedrock·Google Cloud Agent Platform 은 클라우드 사업자가 처리자다. 그래서 그쪽 규정 문서를 따른다

    3P 클라우드로 산 서비스에는 Anthropic BAA 가 적용되지 않는다

    Console 에서 켤 수는 있지만, Console 로 PHI 를 처리하는 것은 대상이 아니다

    Claude Code 는 HIPAA readiness 대상이 아니다. 자세한 것은 ■ BAA 적용 범위 에 있다

  2. 조직 단위 : HIPAA readiness 는 조직 단위로 강제된다. 켜면 영구이고, 관리자가 끌 수 없다 [5.4①]

    HIPAA 와 일반 업무는 같은 조직에 둘 수 없다. 그래서 조직을 따로 둔다

    BAA 는 수락한 그 한 조직에만 적용된다

    HIPAA readiness 와 ZDR 을 한 조직에 같이 두는 문제는 ■ BAA 적용 범위 · 규칙 ④ 에 있다

  3. PHI 경계 : PHI 는 메시지 본문(프롬프트·응답)·첨부(이미지·PDF)·파일 이름·메타데이터에 나타난다. 여기가 보호 대상이다 [5.4①]

    구조화 출력과 strict: true 도구의 JSON 스키마는 생성 제약용 문법(grammar)으로 컴파일된다. 그리고 따로 캐시된다(마지막 사용부터 최대 24시간). 그래서 같은 PHI 보호를 못 받는다

    속성 이름·enum·const·pattern 에 PHI 를 넣지 않는다. 환자 정보는 메시지 본문·첨부 같은 보호 필드에만 넣는다

    워크스페이스 이름·사용자 정보(이름·이메일·전화)·청구 데이터·지원 티켓은 BAA 상 PHI 가 없다고 보는 칸이다

더 깊이 : 판단 규칙 · 상황 변수 (설명)

판단 규칙

조건답등급근거
PHI 를 Claude API 로 다룬다BAA 와 HIPAA readiness 조직을 쓴다. ZDR 은 필요 없다en-zero-data-retention "If your organization handles PHI, HIPAA readiness is the arrangement to use; you do not also need ZDR." · -full FAQ "No. HIPAA-ready API access is designed as an alternative to ZDR"
HIPAA 와 일반 업무를 같이 한다조직을 나눈다-full "use separate organizations for each" · FAQ
HIPAA readiness 를 켠 뒤 끄고 싶다끌 수 없다 (영구)en-zero-data-retention
환자별 값을 스키마 enum·속성 이름에 넣으려 한다넣지 않는다. 본문으로 보낸다en-zero-data-retention
첨부·파일 이름에 PHI 가 있다보호 대상 칸이다en-zero-data-retention
Claude Platform on AWS·Foundry 로 PHI 를 다룬다HIPAA readiness 를 못 쓴다en-zero-data-retention
Bedrock·Google Cloud 로 PHI 를 다룬다그 사업자의 규정 문서를 따른다en-zero-data-retention · -full
3P 클라우드로 산 서비스다Anthropic BAA 가 적용되지 않는다en-covered-models-baa
Console(playground)로 PHI 를 처리한다대상이 아니다 (Console 에서는 켜기만 한다)en-zero-data-retention
표준 BAA 로 켠다Console > Settings > Privacy 에서 셀프로 켠다. 즉시 적용된다(docs) · 공식 문서끼리 다름en-zero-data-retention vs en-privacy-baa (미해결 1)

상황 변수

변수값답 쪽근거
배포 경로Claude API (api.anthropic.com)HIPAA readiness 를 쓴다판단 규칙 1
배포 경로Claude Platform on AWS · Foundry쓸 수 없다. 1P API 로 옮기거나 다른 경로를 쓴다판단 규칙 6
배포 경로Bedrock · Google Cloud사업자 규정을 따른다판단 규칙 7
도구Claude CodeHIPAA readiness 대상이 아니다. ZDR 을 켰을 때만 BAA 대상이다. 자세한 것은 ■ BAA 적용 범위 에 있다en-zero-data-retention
같은 조직의 다른 업무있다조직을 나눈다판단 규칙 2
PHI 위치스키마(enum·const·pattern·속성 이름)넣지 않는다판단 규칙 4
모델Covered Models(Fable 5.1 등)가 필요하다HIPAA-ready API 는 표준 보존이라 쓸 수 있다en-covered-models-baa
이미 ZDR 조직이다같은 조직에 HIPAA readiness 를 추가하려 한다그럴 수 없다. 조직 ID 를 따로 둔다en-covered-models-baa
BAA 종류협상·맞춤 BAA영업팀을 거친다en-zero-data-retention

연습 문제

병원이 BAA 를 맺고 HIPAA readiness 를 켠 조직에서 진료 기록을 분류한다. 정확도를 올리려고 구조화 출력 스키마의 enum 에 환자 이름 목록을 넣자스키마 enum는 안이 나왔다. "HIPAA 조직이니 어느 칸에 넣어도 보호된다" 는 말도 있다. 환자 정보는 어디에 둬야 할까?

시험 대비

함정

  • "ZDR 을 켜서 HIPAA 준수" 나 "HIPAA 에 ZDR 도 추가" 는 함정이다. PHI 를 API 로 다루면 HIPAA readiness 를 쓴다. ZDR 은 따로 필요 없다
  • "BAA 만 서명하면 PHI 를 어디든" 은 함정이다. PHI 는 수락한 그 한 조직에서, 지원 기능으로, 보호 필드에만 보낸다
  • 환자별 값을 구조화 출력 스키마 enum 에 넣는 것은 함정이다. 스키마는 따로 캐시돼 같은 보호를 못 받는다
  • "HIPAA readiness = 바로 지움" 은 함정이다. 암호화·접근 통제·감사 로그로 지킨다. 즉시 삭제가 아니다
  • "시범 끝나면 끄면 됨" 이나 한 조직에서 HIPAA 와 일반 업무를 같이 하는 것은 함정이다. 켜면 영구다. 조직을 따로 둔다
  • "AWS 를 쓰니 Claude Platform on AWS 로 HIPAA" 는 함정이다. 거기서는 HIPAA readiness 를 못 쓴다
  • "HIPAA 면 아무것도 안 남음" 은 함정이다. 법적 요구가 있거나 자동 안전 시스템에 걸리면 남을 수 있다(걸리면 입력·출력 최대 2년)

신호

"If your organization handles PHI, HIPAA readiness is the arrangement to use; you do not also need ZDR."

"HIPAA readiness applies a broader set of privacy and security safeguards than ZDR (encryption, access controls, and audit logging that protect PHI throughout its lifecycle) rather than requiring immediate deletion."

"These cached schemas do not receive the same PHI protections as prompts and responses."

"Once HIPAA readiness is enabled for your organization, the configuration is permanent and cannot be disabled by an administrator."

"HIPAA readiness is enforced at the organization level. If you need both HIPAA-ready and general-purpose API access, use separate organizations for each."

"For clarity, the BAA only covers the single organization that accepted it" (privacy BAA 글)

PHI 를 API 로 다루면 보통 HIPAA readiness 로 ZDR 이 필요 없지만, Claude Code 는 ZDR 이 있어야 BAA 대상, Platform on AWS 는 불가, 켜면 못 끈다.
그림으로 보기 (AI 생성 · Codex · 누르면 크게) — 자세한 조건은 아래 '더 깊이'에 있어요
더 깊이 : 뒤집히는 때 · 오답 재료 (설명)

뒤집히는 때

1. "ZDR 불필요" 가 뒤집히는 곳 — Claude Code

  • 조건 : 같은 병원 개발팀이 PHI 가 섞인 저장소를 Claude Code 로 다룬다.
  • 판단 : Claude Code 는 HIPAA readiness 대상이 아니다. 그래서 BAA 를 받으려면 ZDR 을 켜야 한다. API 앱과는 답이 반대다.
  • 결과 : HIPAA API 조직 하나와 ZDR Claude Code 조직 하나를 둔다. 둘은 한 조직에 같이 둘 수 없다.
  • 근거 : en-zero-data-retention · en-privacy-baa · en-covered-models-baa

2. 이름은 AWS 인데 답이 둘로 갈림

  • 조건 : "AWS 위에서 쓰고 싶다" 는 요구다.
  • 판단 : Bedrock 이면 AWS 가 처리자다. 그래서 AWS 규정을 따른다. Claude Platform on AWS 면 Anthropic 이 처리자인데도 HIPAA readiness 가 없다. 그래서 이 경로로는 PHI 를 다룰 수 없다.
  • 근거 : en-zero-data-retention · -full

3. 시범 조직에서 켜 버린 때

  • 조건 : 일반 챗봇을 돌리던 조직에서 "잠깐 시험해 보자"며 HIPAA readiness 를 켰다.
  • 판단 : 영구라서 끌 수 없다. 그 조직의 일반 업무도 기능 제한(예 : Batch 막힘)을 받게 된다. 그래서 처음부터 HIPAA 전용 조직을 새로 만드는 것이 맞다.
  • 등급 : (영구·조직 단위·분리는 확인, "일반 업무가 막힘"은 그 두 사실에서 나온 결론)
  • 근거 : en-zero-data-retention · -full

4. 최신 큰 모델이 필요한 때

  • 조건 : 진료 기록 요약에 Fable 5.1 이 필요하다.
  • 판단 : HIPAA-ready API 는 표준 보존이라 Covered Models 를 쓸 수 있다. 반대로 "더 안전하게 ZDR 도" 를 붙이면 Covered Models 를 못 쓴다. 그래서 ZDR 을 더하는 것은 손해만 낸다.
  • 근거 : en-covered-models-baa · en-zero-data-retention

오답 재료

오답왜 끌리나왜 틀리나근거
"ZDR 을 켜서 HIPAA 준수"안 남기면 가장 안전해 보인다PHI 를 API 로 다루면 HIPAA readiness 가 쓸 방식이다. ZDR 은 다른 약정이다en-zero-data-retention
"HIPAA readiness 에 ZDR 도 추가"겹쳐 걸면 더 안전해 보인다필요 없다. 한 1P API 조직에 같이 둘 수 없다. Covered Models 도 잃는다-full · en-covered-models-baa
"BAA 만 서명하면 PHI 를 어디든 보내도 됨"계약이 곧 전부 허용처럼 들린다PHI 는 수락한 그 한 조직에서, 지원 기능으로, 보호 필드에만 보낸다en-privacy-baa · en-zero-data-retention
환자별 값을 구조화 출력 enum 에분류 정확도가 올라 보인다스키마는 따로 캐시돼 같은 PHI 보호를 못 받는다en-zero-data-retention
"HIPAA readiness = 즉시 삭제"ZDR 과 섞어 외운다암호화·접근 통제·감사 로그로 지킨다. 즉시 삭제를 요구하지 않는다en-zero-data-retention · -full
"한 조직에서 HIPAA·일반 업무를 워크스페이스로 나눔"워크스페이스로 나누면 될 것 같다HIPAA readiness 는 조직 단위로 강제된다. 그래서 조직을 나눠야 한다-full
"Claude Platform on AWS 로 HIPAA"Anthropic 이 처리자라 1P 와 같아 보인다HIPAA readiness 가 없다en-zero-data-retention
"HIPAA 조직이면 아무것도 안 남음"보호를 삭제로 오해한다법적 요구가 있거나 자동 안전 시스템에 걸리면 남을 수 있다(걸리면 최대 2년)en-zero-data-retention

참고

더 깊이 : 출처 · 상태 · 미해결 (참고)

출처

상태

  • 공식 문서끼리 다름 1곳(④ 켜는 길)

미해결

  1. 켜는 절차가 공식 문서끼리 다르다. docs 는 "적격 조직은 Console 에서 직접 BAA 를 체결하고 켤 수 있음" 이라 적는다(en-zero-data-retention). privacy BAA 글은 "1P API 로 PHI 를 쓰려면 Primary Owner 가 BAA 에 서명한 뒤 Anthropic 담당·영업팀에 연락해 켜야" 한다고 적는다(en-privacy-baa). 시험이 절차를 물으면 "BAA 서명 + HIPAA readiness 조직" 까지만 확실하다.
  2. 공공부문 FAQ(en-public-sector-faqs)는 BAA 가 "It requires a Zero Data Retention (ZDR) agreement" 라 적는다. 이것은 docs 의 "you do not also need ZDR"와 반대다. 같은 FAQ 가 "web search is excluded"라 한 것도 지금 BAA 글과 다르다(en-privacy-baa에서 웹 검색은 대상이다). 그래서 옛 문장으로 본다(추론). 자세한 것은 ■ BAA 적용 범위 의 미해결에 있다.
  3. 목록 5.4① 은 "규제 업무는 전용 조직으로 분리 = 근거 확인 필요, 추론" 이라 적었다. 이것은 원문에서 확인됐다. 목록은 추론 표시였다.
  4. 목록 5.4① 은 "PHI 는 메시지 본문에만" 이라 적었다. 원문은 첨부(이미지·PDF)·파일 이름·메타데이터도 PHI 가 나타나는 보호 필드로 적는다. 금지 필드는 스키마다. 카드에는 고친 값을 적었다.
  5. HIPAA Implementation Guide(Trust Portal PDF)는 받지 않았다. 서명한 BAA 와 이 가이드가 기능 목록의 최종 기준이다. 그래서 docs·privacy 글과 다를 수 있다(미확인).
  6. Skilljar "Deploying Claude Enterprise with Confidence" 과정은 세션 skjd5-3 에서 등록되지 않았다(Enroll 버튼). 그래서 건너뛰었다.