C.W.K.
Stream
Lesson 06 of 08 · published

SDK 경계의 보안과 프라이버시

~14 min · security, privacy, secrets, logging

Level 0Observer
0 XP0/64 lessons0/13 achievements
0/150 XP to next level150 XP to go0% complete

프로세스를 떠나는 게 뭔지

SDK 호출마다 프롬프트, 시스템 instruction, 첨부 파일, 도구 정의가 Anthropic 서버(또는 Bedrock/Vertex)로 가. 반대 방향 표면은 모델이 할 수 있는 것 — 파일 읽기, 셸 실행, URL 호출. 양쪽 다 보안 모델의 일부야.

시크릿 규율

API 키는 환경변수랑 시크릿 매니저에. 코드 안 X, 프롬프트 안 X, 도구 description 안 X. JSONL 로그는 특히 위험 — 시스템 프롬프트나 요청 바디를 redact 없이 로그하면 value-pattern 키(sk-ant-...)가 git 히스토리로 새.

데이터 거주성과 보존

Anthropic 디폴트 API는 입력으로 학습하지 않아. Bedrock·Vertex는 자기 클라우드의 거주성 약속을 따라. Zero Data Retention(ZDR)은 특정 플랜에서 쓸 수 있는 기능이고 규제 워크로드의 프라이버시 스토리를 바꿔. 데이터를 'send해도 안전'으로 분류하기 전에 계정이 뭘 사인했는지 알아.

원칙: SDK 경계를 공개 경계로 다뤄. 보내는 것과 로그하는 것 둘 다 감사 흔적이야.

Code

구조화 로그에서 API 키 redact·python
import re

KEY_PATTERN = re.compile(r"\bsk-ant-[A-Za-z0-9_-]{20,}\b")

def redact(text: str) -> str:
    return KEY_PATTERN.sub("sk-ant-***REDACTED***", text)

# 로그된 페이로드는 항상 redact() 통해서 — 프라이빗 레포라도.
log_line = '{"prompt": "hi", "key": "sk-ant-api03-abcdef0123456789"}'
print(redact(log_line))
스테이지된 파일에 키 패턴 있으면 거부하는 pre-commit 훅·bash
#!/usr/bin/env bash
# .git/hooks/pre-commit
set -euo pipefail
if git diff --cached -U0 | grep -E 'sk-ant-[A-Za-z0-9_-]{20,}' >/dev/null; then
  echo 'refusing to commit: detected an Anthropic key pattern in staged content'
  exit 1
fi

External links

Exercise

코드 한 곳에서 SDK 요청·응답 로그하는 자리를 골라. API 키 패턴이랑 사용자 PII에 대해 redaction 필터를 추가. fake 키가 절대 필터 통과 못 하는 unit test로 증명.
Hint
sk-ant-가 매칭할 prefix; suffix는 가변 길이지만 항상 alphanumeric + 대시.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.