엑셀로 만드는 API 키 보안 운영표: 최소 권한·교체·폐기 기록

API 키 운영대장에 필요한 것은 키 문자열이 아니라 누가 어떤 권한을 언제까지 사용하는지 확인할 기록입니다. 이 글의 api-key-metadata-register.xlsx는 별칭·환경·담당자·권한·보관 참조·교체 예정일·폐기 근거만 다룹니다. 셀, 메모, 파일명, 링크에 실제 키나 인증 헤더를 넣는 칸은 없습니다.

예제의 report-dev-01, vault-ref-01, ticket-demo-05는 모두 합성 식별자입니다. 특정 비밀 저장소의 실제 주소나 유효한 키가 아니며 어떤 서비스에도 연결하지 않습니다. SecretStored=Y인 행도 실제 비밀을 삽입한 것이 아니라 위험 표시를 재현하는 가상 테스트입니다.

실제 API 키 대신 별칭·담당자·권한·보관 참조·교체와 폐기 기록을 남기는 설명 도해
실제 API 키 대신 별칭·담당자·권한·보관 참조·교체와 폐기 기록을 남기는 설명 도해. 가상 입력과 기대값을 설명한 그림이며 실제 Excel 실행 화면이나 실행 성공 증거가 아닙니다.

OWASP 원칙을 운영 기록으로 좁혀 사용하기

OWASP 비밀정보 관리 지침은 최소 권한 원칙을 적용하도록 안내합니다. 지침 원문에서 비밀정보 접근 통제를 확인할 수 있습니다. 이 글은 이를 확인할 담당자와 권한 메타데이터를 남기는 연습입니다. 엑셀 수식이 실제 서비스 권한을 읽거나 키를 교체·폐기한다는 뜻은 아닙니다.

ScopeClass는 이 파일에서 read·write·admin으로 기록합니다. 실제 서비스는 더 세분화된 권한을 가질 수 있으므로 해당 별칭의 권한 화면을 사람이 확인해야 합니다. 교체 예정일 역시 조직의 정책과 서비스 조건에 따라 정합니다. 아래 날짜가 보편적인 교체 주기나 보안 기준은 아닙니다.

실제 비밀 없이 열을 채우기

키대장!A4:J9가 입력과 결과 범위입니다. 가상 입력의 점검일 B13은 재현 가능한 계산을 위해 2026-09-23으로 고정했습니다. TODAY 함수로 매일 바뀌게 하지 않았으므로 실제 점검 때 이 셀을 바꾸어야 합니다.

열 필드 기록 내용
A KeyAlias 실제 키와 무관한 내부 별칭
B:C Environment, Owner development 또는 production과 책임 팀
D:E ScopeClass, VaultRef 권한 분류와 승인된 보관 위치의 식별자
F:G RotateBy, Revoked 교체 예정일과 폐기 여부 N/Y
H:I SecretStored, RevokeRef 대장 내 비밀 발견 여부 N/Y와 폐기 근거 참조
J Gate 입력 필드 충족, HOLD, 폐기 기록

VaultRef에는 키를 복사하거나 비밀이 포함된 URL을 넣지 않습니다. 실제 보관 위치를 공유할 수 없다면 담당자가 해석할 수 있는 내부 식별자만 사용합니다. 별칭·서비스 구조 자체도 운영 정보이므로 파일의 공유 범위를 관리하세요.

별칭 등록부터 권한 검토·운영 결과 확인·근거 갱신까지의 기록 절차 설명 도해
별칭 등록부터 권한 검토·운영 결과 확인·근거 갱신까지의 기록 절차 설명 도해. 가상 입력과 기대값을 설명한 그림이며 실제 Excel 실행 화면이나 실행 성공 증거가 아닙니다.

가상 다섯 행과 예상 판정

다음 입력은 첨부 5~9행과 같습니다. 표에서 생략한 VaultRef는 차례로 vault-ref-01부터 vault-ref-05이며, 마지막 행의 폐기 근거는 ticket-demo-05입니다. 다른 행의 폐기 근거는 빈칸입니다.

별칭 환경 담당자 권한 교체 예정일 폐기 비밀 발견 기대 Gate
report-dev-01 development data-team read 2026-12-01 N N 필드 충족
report-prod-01 production 빈칸 read 2026-12-01 N N HOLD
export-prod-01 production ops-team write 2026-12-01 N Y HOLD
legacy-prod-01 production ops-team read 2026-08-31 N N HOLD
admin-old-01 production sec-team admin 2026-12-01 Y N 폐기 기록

입력 후 J5:J9의 기대 출력은 필드 충족, HOLD, HOLD, HOLD, 폐기 기록입니다. 정상처럼 보이는 첫 행도 실제 안전을 증명하지 않습니다. 두 번째는 책임자가 없고, 세 번째는 비밀 발견 표시가 있으며, 네 번째는 점검일보다 교체 예정일이 과거입니다. 마지막은 폐기했다고 적은 행에 근거 참조까지 있는 상태를 뜻할 뿐, 실제 폐기 사실을 수식이 확인한 것은 아닙니다.

판정 순서와 보수적인 예제 규칙

수식은 비밀 발견 표시가 N이 아니거나 필수 별칭·담당자·보관 참조가 없으면 먼저 HOLD로 둡니다. 환경·권한·폐기 여부가 정해진 값이 아니어도 HOLD입니다. 폐기 Y 행은 근거 참조가 있어야 폐기 기록이 됩니다. 폐기 여부가 N인 행은 날짜가 실제 숫자로 저장되어 있고 점검일 이상이어야 합니다.

이 연습에서는 사용 상태를 가정한 write·admin 권한을 일단 HOLD로 분류합니다. 해당 권한이 항상 잘못됐다는 뜻이 아니라 왜 필요한지 별도 검토하게 만드는 예제 규칙입니다. read 권한도 필요 이상일 수 있으므로 실제 자원 범위까지 확인해야 합니다. 기준을 조직에 맞춰 바꿀 때에는 변경 이유와 재검산 결과를 남깁니다.

=ISNUMBER(F5)
=F5>=$B$13

위 식은 F5가 날짜 계산에 쓸 수 있는 숫자인지와 점검일보다 늦거나 같은지를 따로 확인하는 보조 검산입니다. 날짜처럼 보이는 문자에 셀 서식만 적용해도 숫자 날짜로 바뀌는 것은 아닙니다. 실제 판정은 J열에서 나머지 필드와 함께 수행합니다.

점검일 2026-09-23의 가상 다섯 별칭과 필드 충족 1·HOLD 3·폐기 기록 1을 대조한 설명 도해
점검일 2026-09-23의 가상 다섯 별칭과 필드 충족 1·HOLD 3·폐기 기록 1을 대조한 설명 도해. 가상 입력과 기대값을 설명한 그림이며 실제 Excel 실행 화면이나 실행 성공 증거가 아닙니다.

점검과 교체·폐기를 연결하는 절차

  1. 실제 키를 조회해 문서에 복사하지 말고 별칭과 담당자부터 등록합니다.

  2. 권한은 서비스 관리 화면에서 확인하고 필요한 작업에 비해 넓지 않은지 담당자가 검토합니다.

  3. 승인된 저장 위치의 식별자와 조직 정책상 교체 예정일을 기록합니다.

  4. 실제 교체는 해당 서비스의 운영 절차로 수행하고 의존 프로그램을 확인한 뒤 기록을 갱신합니다.

  5. 폐기는 실제 서비스의 폐기 작업 결과를 확인한 후 Revoked를 Y로 바꾸고 근거 티켓이나 확인 기록의 식별자를 남깁니다.

  6. J열의 HOLD 행을 따로 모아 누락·기한·권한·비밀 발견 중 무엇을 해결해야 하는지 결정합니다.

점검표를 작성했다는 이유로 실제 키를 새로 발급하거나 비활성화하지 않습니다. 이 연습 파일에는 그런 실행 기능이 없습니다. 원래 서비스의 정책과 권한을 가진 운영자가 실제 변경을 수행해야 합니다.

실패를 다시 만들고 복구하기

확인 대상은 J5:J9의 Gate와 실제 입력 자료형입니다. 사본에서 C5의 담당자 누락 오류를 만들거나 F5를 문자 날짜로 바꾸면 J5는 HOLD가 되어야 합니다. D5를 admin으로 바꿔도 HOLD입니다. H5를 Y로 바꾸면 다른 값이 정상이더라도 HOLD이며, I9를 비우면 폐기 기록이 HOLD로 바뀝니다. 각 입력을 원본으로 복구했을 때 다섯 상태가 다시 재현되는 것이 합격 값입니다.

만약 실제 비밀이 파일에 들어갔다면 파일의 셀 삭제만으로 복구됐다고 판단하지 않습니다. 담당 보안·운영 절차로 노출 범위를 확인하고 필요한 폐기와 재발급, 의존 서비스의 변경을 수행합니다. 공유본과 변경 이력도 함께 확인해야 합니다. 새로 발급한 비밀을 이 대장에 다시 넣지 않고 별칭과 근거만 갱신합니다. 진행 사실을 확인하기 전에는 SecretStored를 N으로 바꾸어 경고를 지우지 않습니다.

공통 필드 검사 뒤 폐기 여부·근거·숫자 날짜·권한을 나누는 Gate 판정 설명 도해
공통 필드 검사 뒤 폐기 여부·근거·숫자 날짜·권한을 나누는 Gate 판정 설명 도해. 가상 입력과 기대값을 설명한 그림이며 실제 Excel 실행 화면이나 실행 성공 증거가 아닙니다.

이 대장이 보장하지 않는 것

첨부 XLSX는 날짜와 판정 수식을 가진 연습 파일이며 CSV는 같은 다섯 행의 계산 결과입니다. 제작 도구에서 정상·실패 입력을 검산했고 실제 키, 서비스 호출, Excel 앱 실행은 사용하지 않았습니다. 데스크톱 Excel의 기본 함수로 구성했으며 다른 표 계산기에서는 날짜 값과 판정을 다시 확인해야 합니다.

수식은 Owner의 실제 권한, VaultRef의 존재, 티켓의 진실성, 서비스에서의 폐기를 확인하지 않습니다. 비밀 스캐너도 아니므로 H열 N은 입력자의 선언입니다. 빈칸이 없다는 사실과 안전한 운영은 다릅니다. 이 한계를 인정하고 실제 저장소·서비스·변경 기록을 함께 점검할 때 운영 대장으로 쓸 수 있습니다.

C5·F5·D5·H5·I9의 실패 입력과 원래 1·3·1 판정으로 복원하는 설명 도해
C5·F5·D5·H5·I9의 실패 입력과 원래 1·3·1 판정으로 복원하는 설명 도해. 가상 입력과 기대값을 설명한 그림이며 실제 Excel 실행 화면이나 실행 성공 증거가 아닙니다.

출처 원문 수집일: S1 2026-09-23.

이어서 연습할 글

키 운영 기록을 자동화 변경의 승인·중단 근거와 연결할 때는 엑셀 자동화 변경 승인대장의 판정 범위도 함께 확인하세요.

작성자 소개