접근 제어와 암호화
저장된 데이터를 보호합니다
접근 제어와 암호화은(는) CoddyKit의 무료 Cyber Security Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cyber Security Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
저장된 데이터 보호
데이터베이스에는 가장 중요한 자산이 저장되므로 두 가지 제어가 특히 중요합니다. 접근 제어(누가 데이터에 접근할 수 있는지)와 암호화(데이터가 도난당해도 쓸모없게 만드는 것)입니다.
이 두 가지를 함께 적용하면 시스템이 실행 중일 때와 디스크 또는 백업이 유출될 때 모두 데이터를 보호할 수 있습니다.
인증과 권한 부여의 차이
두 개념을 구분해야 합니다.
- 인증은 사용자가 누구인지 증명합니다(로그인, 인증서, IAM 토큰).
- 권한 부여는 사용자가 식별된 후 무엇을 할 수 있는지 결정합니다.
강력한 데이터베이스 보안에는 검증된 신원과 범위가 엄격히 제한된 권한이 모두 필요합니다.
최소 권한 원칙
각 계정에는 필요한 권한만 부여하고 그 이상은 부여하지 마십시오. 보고 서비스는 읽기 전용이어야 하며, 애플리케이션의 데이터 기록 서비스가 테이블을 DROP할 수 있어서는 안 됩니다.
CREATE ROLE report_reader;
GRANT SELECT ON sales.* TO report_reader;
GRANT report_reader TO 'analytics_svc'@'%';역할 기반 접근 제어
RBAC는 권한을 역할로 묶고 사용자에게 역할을 할당합니다. 사용자별로 권한을 부여하는 것보다 확장성이 높고 감사를 명확하게 수행할 수 있습니다.
- 역할 정의:
read_only,app_writer,dba - 사용자를 역할에 할당
- 역할 구성원을 정기적으로 검토
행 및 열 수준 보안
세밀한 제어를 적용하면 테이블 내부의 접근을 제한할 수 있습니다.
- 열 수준: 일부 역할에서 급여 또는 SSN 열을 숨깁니다.
- 행 수준 보안(RLS): 테넌트가 자신의 행만 볼 수 있도록 합니다.
-- PostgreSQL row-level security
ALTER TABLE orders ENABLE ROW LEVEL SECURITY;
CREATE POLICY tenant_isolation ON orders
USING (tenant_id = current_setting('app.tenant')::int);저장 데이터 암호화
저장 데이터 암호화는 디스크에 있는 데이터를 보호합니다. 누군가 드라이브나 백업 파일을 훔쳐도 키 없이는 내용을 읽을 수 없습니다.
전체 디스크 암호화, 파일 시스템 암호화, 데이터베이스 기본 제공 투명한 데이터 암호화(TDE) 등의 방법을 사용할 수 있습니다.
투명한 데이터 암호화
TDE는 데이터베이스 파일을 자동으로 암호화합니다. 애플리케이션을 변경할 필요가 없으며, 엔진이 기록할 때 암호화하고 읽을 때 복호화합니다. 도난당한 파일을 방어할 수 있지만, 이미 유효한 데이터베이스 세션을 보유한 공격자까지 막을 수는 없습니다.
-- SQL Server example concept
CREATE DATABASE ENCRYPTION KEY
WITH ALGORITHM = AES_256
ENCRYPTION BY SERVER CERTIFICATE tde_cert;
ALTER DATABASE appdb SET ENCRYPTION ON;열 수준 암호화
카드 번호나 건강 정보처럼 특히 민감한 필드는 개별 열을 암호화하십시오. DBA조차 평문을 데이터베이스에서 볼 수 없습니다.
절충점도 있습니다. 암호화된 열은 색인화하고 검색하기 어려우므로 선별적으로 적용하십시오.
전송 중 암호화
전송 중인 데이터도 보호해야 합니다. 모든 클라이언트와 데이터베이스 간 연결에 TLS를 요구하여 자격 증명과 결과 집합이 도청되지 않도록 하십시오.
-- PostgreSQL: force SSL in pg_hba.conf
hostssl appdb webapp 0.0.0.0/0 scram-sha-256
-- reject non-TLS:
hostnossl appdb all 0.0.0.0/0 reject키 관리
암호화의 강도는 키 관리 방식만큼 강합니다. 키가 보호하는 데이터 옆에 키를 절대 저장하지 마십시오.
- 키 관리 서비스(KMS) 또는 HSM을 사용하십시오.
- 일정에 따라 키를 교체하십시오.
- 책임을 분리하십시오. DBA가 마스터 키까지 보유해서는 안 됩니다.
종합 적용
저장된 데이터를 보호하는 계층형 모델은 다음과 같습니다.
- 모든 연결을 인증합니다(TLS + 강력한 자격 증명).
- RBAC와 최소 권한을 통해 권한을 부여합니다.
- 세밀한 제어가 필요할 때 RLS 및 열 수준 보안을 적용합니다.
- 저장된 데이터는 TDE로 암호화하고 민감한 열은 별도로 암호화합니다.
- 데이터베이스와 분리된 KMS에서 키를 관리합니다.
빠른 확인
각 제어 수단이 무엇을 방어하는지 생각해 보십시오.
요약
저장된 데이터는 접근 제어와 암호화를 결합하여 보호합니다.
- 인증과 권한 부여를 구분합니다.
- 최소 권한과 RBAC를 적용하고, 필요할 때 행 및 열 수준 보안을 추가합니다.
- 저장된 데이터는 암호화하고(TDE, 열 수준 암호화), 전송 중인 데이터는 TLS로 암호화합니다.
- KMS에서 키를 별도로 관리하고 주기적으로 교체합니다.
자주 묻는 질문
“접근 제어와 암호화” 강의는 무료인가요?
네 — “접근 제어와 암호화” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cyber Security Academy 강의 전체를 잠금 해제할 수 있습니다. Cyber Security Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“접근 제어와 암호화”에서 뭘 배우나요?
저장된 데이터를 보호합니다 브라우저에서 직접 실행하는 실습 코드로 Cyber Security Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cyber Security Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cyber Security Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“접근 제어와 암호화” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cyber Security Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cyber Security Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- SQL 삽입 방어
- 접근 제어와 암호화
- 감사와 모니터링
- 백업 및 복구 보안