DBMS 암호화 기능과 데이터 암호화
개인 정보의 중요성이 강조되는 요즘, 기업들은 사내 직원 및 고객 데이터 정보를 안전하게 보관해야 할 의무가 강화되고 있습니다. 기업이 수집한 데이터를 기반으로 고도화된 분석과 인공지능 서비스의 확대로 개인 정보 이외의 데이터 가치도 높아졌습니다. 따라서 DBMS를 운영하는 과정에서 보안의 중요성은 날이 갈수록 더해지고 있습니다.
AgensSQL은 몇 가지 기본적인 보안 기능을 제공하고 있습니다. AgensSQL에서 제공하는 보안 기능에 대한 간단한 설명과 몇 가지 예시를 살펴보겠습니다.
1. Password Profile
AgensSQL을 사용하면 데이터베이스 슈퍼유저가 명명된 프로파일을 만들 수 있습니다. 각 프로필은 암호 및 md5인증을 강화하는 암호 관리 규칙을 정의합니다. 프로필의 규칙은 다음과 같습니다.
- 실패한 로그인 시도 횟수
- 과도한 로그인 시도 실패로 인해 계정 잠금
- 비밀번호 만료 표시
- 암호 만료 후 유예 기간 정의
- 암호 복잡성에 대한 규칙 정의
- 암호 재사용을 제한하는 규칙 정의
Password Profile은 인증 요구 사항이 적용된 유저를 관리하는 데 사용합니다. 암호 요구 사항이 변경되면 해당 프로필과 연결된 각 사용자에게 새 요구 사항이 적용되도록 프로필을 수정할 수 있습니다.
프로필은 한 명 이상의 사용자와 연결할 수 있습니다. 사용자가 서버에 연결하면 서버는 자신의 로그인 역할과 연결된 프로필을 적용합니다. 프로파일은 클러스터 내의 모든 데이터베이스에서 공유되지만, 각 클러스터는 여러 개의 프로파일을 가질 수 있습니다. 여러 데이터베이스에 대한 액세스 권한을 가진 단일 사용자는 클러스터 내의 각 데이터베이스에 연결할 때 동일한 프로파일을 사용합니다.
AgensSQL은 다음 이름의 프로파일을 만듭니다. DEFAULT 대체 프로필을 지정하지 않으면 역할이 생성될 때 새 역할과 연결되어 DEFAULT 프로필을 삭제할 수 없습니다.
DEFAULT 프로필에는 다음 특성이 포함되어 있습니다:
FAILED_LOGIN_ATTEMPS | UNLIMITED |
PASSWORD_LOCK_TIME | UNLIMITED |
PASSWORD_LIFE_TIME | UNLIMITED |
PASSWORD_GRACE_TIME | UNLIMITED |
PASSWORD_REUSE_TIME | UNLIMITED |
PASSWORD_REUSE_MAX | UNLIMITED |
PASSWORD_VERIFY_FUNCTION | NULL |
데이터베이스 SuperUser만 ALTER PROFILE 명령을 사용하여 DEFAULT 프로필의 매개 변수 값을 수정할 수 있습니다.
FAILED_LOGIN_ATTEMPTS
사용자가 시도할 수 있는 실패한 로그인 시도 횟수를 지정합니다 .
PASSWORD_LOCK_TIME
서버가 FAILED_LOGIN_ATTEMPTS 로 인해 잠긴 계정의 잠금을 해제되기 전에 경과해야 하는 시간을 지정합니다.
PASSWORD_LIFE_TIME
사용자에게 새 암호를 입력하라는 메시지가 표시되기 전에 현재 암호를 사용할 수 있는 일 수를 지정합니다. PASSWORD_LIFE_TIME 절을 사용하여 암호가 만료된 후 연결이 거부되기 전에 경과할 일 수를 지정하는 경우 PASSWORD_GRACE_TIME 절을 포함합니다. PASSWORD_GRACE_TIME이 지정되지 않은 경우 암호는 기본값인 PASSWORD_GRACE_TIME으로 지정된 날짜에 만료되며 사용자는 새 암호가 제공될 때까지 명령을 실행할 수 없습니다.
PASSWORD_GRACE_TIME
암호가 만료된 후 사용자가 암호를 변경해야 할 때까지의 유예 기간을 지정합니다. 유예 기간이 만료되면 사용자는 연결할 수 있지만 만료된 암호를 업데이트할 때까지 명령을 실행할 수 없습니다.
PASSWORD_REUSE_TIME
사용자가 암호를 다시 사용하기 전에 기다려야 하는 일 수를 지정합니다. PASSWORD_REUSE_TIME 및 PASSWORD_REUSE_MAX 매개변수는 함께 사용하기 위한 것입니다. 이러한 매개변수 중 하나에 대해 유한한 값을 지정하고 다른 하나는 UNLIMITED 로 지정하면 이전 암호를 다시 사용할 수 없습니다. 두 매개변수가 모두 UNLIMITED로 설정되면 암호 재사용에 대한 제한이 없습니다.
PASSWORD_REUSE_MAX
비밀번호를 재사용하기 전에 발생해야 하는 비밀번호 변경 횟수를 지정합니다. PASSWORD_REUSE_TIME 및 PASSWORD_REUSE_MAX 매개변수 는 함께 사용하기 위한 것입니다. 이러한 매개변수 중 하나에 대해 유한한 값을 지정하고 다른 하나는 UNLIMITED로 지정하면 이전 암호를 다시 사용할 수 없습니다. 두 매개변수가 모두 UNLIMITED로 설정되면 암호 재사용에 대한 제한이 없습니다.
PASSWORD_VERIFY_FUNCTION
암호 복잡성을 지정합니다.
2. Data Redaction
Data Redaction은 특정 사용자에게 표시되는 데이터를 동적으로 변경하여 민감한 데이터 노출을 제한합니다. CREATE REDACTION POLICY 명령을 사용하여 Data Redaction 정책을 등록 합니다.
이 명령은 정책이 적용되는 테이블, 열, 사용자를 결정 및 기타 옵션을 지정합니다.
SuperUser와 테이블 소유자는 데이터 편집을 건너뛰고 원본 데이터를 볼 수 있습니다.
다른 모든 사용자는 수정 정책이 적용되어 제한된 데이터를 볼 수 있습니다.
Data Redaction 기능을 활용하여 민감한 정보를 관리할 수 있습니다.
3. Audit
AgensSQL은 데이터베이스 보안 관리자 및 운영자가 감사 로깅 기능을 사용하여 데이터베이스 활동을 추적하고 분석할 수 있도록 합니다. AgensSQL 감사 로깅은 지정된 데이터베이스 이용 정보를 포함한 감사 로그 파일을 생성합니다. 감사 로그 파일은 ag_audit 구성 매개 변수의 설정에 따라 CSV 형식으로 생성됩니다
postgresql.conf 또는 postgresql.auto.conf에 지정된 매개변수로 Audit 기능을 제어할 수 있습니다.
postgresql.conf의 매개변수를 사용하여 데이터베이스 Audit을 구성할 수 있습니다. Audit 기능을 사용하기 위해선 기본적으로 logging_collector 설정이 on으로 설정되어 있어야 합니다. Audit 기능의 경우 서비스 부하 및 Log Disk Full 등의 이슈가 있으므로 서비스에 모니터링이 가능한 경우에만 적용을 권고합니다.
ag_audit
데이터베이스 감사 기능을 활성화하거나 비활성화합니다. csv 값은 데이터베이스 감사 기능을 활성화합니다. 이러한 값은 감사 정보가 저장되는 파일 형식을 나타냅니다. 기본값은 none으로 데이터베이스 감사 기능을 비활성화합니다.
ag_audit_directory
Audit 로그 파일을 저장 디렉터리를 지정합니다. 디렉터리의 경로는 데이터 폴더에 상대적이거나 절대적일 수 있습니다. 기본값은 ag_audit으로 $PGDATA/ag_audit 디렉토리 입니다.
ag_audit_filename
감사 정보가 저장될 감사 파일의 파일 이름을 지정합니다. 기본 파일 이름은 ag-audit-%Y%m%d_%H%M%S입니다.
ag_audit_rotation_size
파일 크기에 따라 로그파일의 교체가 발생합니다. 주석 처리하거나 0으로 설정하면 파일 크기에 따른 파일 교체가 발생하지 않습니다. 단위는 Kb 이며 기본값은 0 입니다.
ag_audit_rotation_age
로그파일 교체가 발생하는 시간(분)을 지정합니다. 이 기능을 사용하지 않으려면 이 매개 변수를 0으로 설정하면 됩니다. 기본값은 0 입니다.
ag_audit_connect
데이터베이스 연결 시도에 대한 감사 범위를 설정합니다. 연결 시도에 대한 감사를 사용하지 않으려면 none으로 설정합니다. 실패한 연결 시도를 감사하려면 값을 failed 값으로 설정합니다. 모든 연결 시도를 감사하려면 값을 all 값으로 설정합니다. 기본값은 failed 입니다.
ag_audit_disconnect
연결된 사용자가 데이터베이스 연결 끊김을 감사할 수 있습니다. 연결 끊김 감사를 사용하려면 값을 all 값으로 설정합니다. 사용하지 않으려면 값을 none로 설정합니다. 기본값은 none 입니다.
ag_audit_statement
세션 감사를 기록할 명령문 클래스를 지정합니다. 가능한 값은 다음과 같습니다
READ: SELECT, COPY
WRITE: INSERT, UPDATE, DELETE, TRUNCATE, COPY
FUNCTION : 함수 호출 및 DO 블록
ROLE : 역할 및 권한과 관련된 명령문 (예: GRANT, REVOKE, CREATE/ALTER/Drop ROLE)
DDL : ROLE 클래스에 포함되지 않은 모든 DDL
MISC : 기타 명령(예: DISCOVER, FETCH, CHECKPOINT, VACUUM, SET).
MISC_SET : 기타 SET 명령(예: SET ROLE)
ERROR: 모든 데이터베이스 오류
ALL: 위의 내용을 모두 포함합니다
쉼표로 구분된 목록을 사용하여 여러 클래스를 제공할 수 있습니다. 기본값은 DDL, ERROR입니다.
ag_audit_tag
이 구성 매개 변수를 사용하여 각 항목에 대한 감사 로그 파일에 포함될 문자열 값을 추적 태그로 지정합니다.
글 : 이정안 전임 ( 비트나인 DB Tech팀 )
'DBMS > AgensSQL' 카테고리의 다른 글
Oracle 데이터베이스에서 AgensSQL을 사용하는 방법 (0) | 2023.11.08 |
---|---|
AgensSQL: 하이엔드 데이터 관리 솔루션 (0) | 2023.11.07 |
데이터 암호화와 AgensSQL을 활용한 DB 보안 전략 (0) | 2023.09.14 |
AEM-Monitor의 아키텍쳐 및 데이터 수집 방법 (1) | 2023.09.07 |
AgensSQL EE Plus : AGE 와 BI솔루션의 비교 및 특징 (0) | 2023.09.03 |