반응형

Azure SQL Database 보안 기능 개요

 

·       Version : Azure SQL

 

Microsoft Azure SQL Database 클라우드 엔터프라이즈 애플리케이션용 관계형 데이터베이스 서비스를 제공한다. Azure SQL Database보안 전략은 아래 그림 처럼 계층형 심층 방어 방식을 따르며 외부에서 내부로 적용된다.

 

고객 데이터를 보호하기 위해 방화벽은 Azure Virtual Network 트래픽 출처 또는 IP 주소를 기준으로 액세스 권한이 명시적으로 부여될 때까지 네트워크에서 데이터베이스 서버에 액세스할 없도록 차단한다. Azure SQL Database 보안 기능의 자세한 내용은 Microsoft 공식 문서를 참고한다.

·       (영어) https://docs.microsoft.com/en-us/azure/sql-database/sql-database-security-overview?WT.mc_id=DP-MVP-4039834

·       (한국어) https://docs.microsoft.com/ko-kr/azure/sql-database/sql-database-security-overview?WT.mc_id=DP-MVP-4039834

 

[네트워크 보안]

·       IP 방화벽 규칙 : IP 방화벽 규칙은 요청이 시작된 IP 주소를 기준으로 하여 데이터베이스 액세스 권한을 부여한다.

·       Virtual Network 방화벽 규칙 : 가상 네트워크 서비스 엔드포인트는 Azure 백본을 통해 가상 네트워크 연결을 확장하며, 트래픽이 생성되는 가상 네트워크 서브넷을 Azure SQL Database 식별할 있도록 한다. 트래픽이 Azure SQL Database 전송되도록 하려면 SQL 서비스 태그를 사용해 네트워크 보안 그룹을 통한 아웃바운드 트래픽을 허용한다. Azure SQL Database 가상 네트워크 규칙을 통해 Virtual Network 내의 선택한 서브넷에서 전송된 통신만 수락할 있습니다.

 

[액세스 관리]

Azure 내에서 데이터베이스와 데이터베이스 서버를 관리하는 작업은 포털 사용자 계정의 역할 할당을 통해 제어된다. Azure SQL Database 가지 인증 유형을 지원한다.

·       SQL 인증 : SQL 데이터베이스 인증은 사용자 이름과 암호를 사용하여 Azure SQL Database 연결할 사용자가 수행하는 인증을 지칭한다.

·       Azure Active Directory 인증 : Azure Active Directory 인증은 Azure AD(Azure Active Directory) ID 사용하여 Azure SQL Database SQL Data Warehouse 연결하는 메커니즘이다. 관리자는 Azure AD 인증을 통해 데이터베이스 사용자의 ID 권한과 기타 Microsoft 서비스를 중앙 위치 곳에서 관리할 있다. SQL Database 사용한 Azure AD 인증을 사용하려면 서버 관리자 Active Directory 관리자를 만들어야 한다. Azure AD 인증에서는 관리 계정과 페더레이션된 계정이 모두 지원된다. 페더레이션된 계정은 Azure AD 페더레이션된 고객 도메인용 Windows 사용자 그룹을 지원한다. 사용 가능한 추가 Azure AD 인증 옵션으로는 다단계 인증 조건부 액세스를 비롯한 SQL Server Management Studio Active Directory 유니버설 인증 연결이 있다.

 

[Authorization]

권한은 데이터베이스 역할에 사용자 계정을 추가 해당 역할에 데이터베이스 수준 사용 권한을 할당 하거나 사용자에 특정 개체수준 사용권한을 부여하여 제어 된다. 필요한 경우 작업 기능을 수행 하는 필요한 최소한의 권한만 가진 사용자를 역할에 추가 한다. 서버 관리자 계정은 기본적으로 db_owner 역할의 구성원이며, 관리 업무를 사용하는 소수의 사용자 에게만 부여 되어야 한다.

 Azure SQL Database 응용 프로그램의 경우 EXECUTE AS 사용 호출 모듈의 실행 컨텍스트를 지정 하거나 제한 권한으로 응용 프로그램 역할을 사용한다. 이렇게 하면 데이터베이스에 연결 하는 응용 프로그램에 응용 프로그램에 필요한 최소한의 권한만 부여된다.

·       수준 보안 : 수준 보안을 통해 고객은 쿼리를 실행하는 사용자의 특성(: 그룹 멤버 자격 또는 실행 컨텍스트) 기반으로 하여 데이터베이스 테이블의 행에 대한 액세스를 제어할 있다.

 

[위협 보호]

·       Azure Monitor 로그 Event Hubs SQL 감사 : SQL Database 감사는 데이터베이스 활동을 추적하며 고객이 소유한 Azure Storage 계정의 감사 로그에 데이터베이스 이벤트를 기록하여 보안 표준 규정 준수 상태를 유지할 있도록 지원한다. 사용자는 감사를 통해 진행 중인 데이터베이스 활동을 모니터링하고 이전 활동을 분석 조사하여 잠재적 위협이나 악용 의심 사례 보안 위반을 식별할 있다.

·       Advanced Threat Protection : Advanced Threat Protection SQL Server 로그를 분석 비정상적인 동작을 감지 잠재적으로 유해한 데이터베이스 액세스 또는 악용 시도를 감지 한다.

 

[정보 보호 암호화]

·       TLS(전송 계층 보안)(전송 암호화) : SQL Server 모든 연결에 대해 항상 암호화 (SSL/TLS) 적용 한다. 연결 문자열에서 Encrypt 또는 TrustServerCertificate 설정에 관계 없이 모든 데이터가 클라이언트와 서버 간에 "전송 "으로 암호화 된다.

·       투명한 데이터 암호화(미사용 데이터 암호화) : Azure SQL Database TDE(투명한 데이터 암호화) 원시 파일이나 백업에 무단/오프라인으로 액세스할 없도록 미사용 데이터를 보호하기 위해 보안 계층을 추가한다. TDE AES 알고리즘을 사용하여 전체 데이터베이스를 암호화 한다. Azure에서는 새로 만드는 모든 SQL Database 기본적으로 암호화되며, 기본 제공 서버 인증서를 통해 데이터베이스 암호화 키가 보호된다. 서비스에서 인증서 유지 관리 순환을 관리하므로 사용자 입력은 불필요하며, 암호화 키를 직접 제어하려는 고객은 Azure Key Vault에서 키를 관리할 있다.

·       Azure Key Vault으로 관리 : 고객은 TDE( 투명한 데이터 암호화)용으로 지원되는 BYOK(Bring Your Own Key) 활용해 Azure 클라우드 기반 외부 관리 시스템인  Azure Key Vault 사용하여 관리 순환을 직접 제어할 있다. 데이터베이스의 자격 증명 모음 액세스 권한이 철회되면 데이터베이스를 암호 해독하여 메모리로 읽어들일 없다. 중앙 관리 플랫폼을 제공하며 철저하게 모니터링되는 HSM(하드웨어 보안 모듈) 활용하는 Azure Key Vault 사용하면 키와 데이터 관리 작업을 분리하여 보안 규정 준수 요구 사항을 충족할 있다.

·       Always Encrypted(사용 중인 데이터 암호화) : Always Encrypted 신용 카드 번호, 주민 등록 번호 또는 확인이 필요한 데이터와 같이 특정 데이터베이스 열에 저장된 중요한 데이터를 액세스할 없도록 보호하는 기능이다. 데이터는 항상 암호화되므로 암호화 액세스 권한이 있는 클라이언트 애플리케이션에서 처리해야 하는 경우에만 암호화된 데이터의 암호가 해독된다. 암호화 키는 SQL 표시되지 않으며 Windows 인증서 저장소 또는 Azure Key Vault 저장할 있다.

 

·       동적 데이터 마스킹 : SQL Database 동적 데이터 마스킹에서는 권한이 없는 사용자에 대해 중요한 데이터를 마스킹해 표시함으로써 데이터 노출을 제한한다. 동적 데이터 마스킹은 Azure SQL Database에서 잠재적으로 중요한 데이터를 자동으로 검색하고 애플리케이션 계층에 미치는 영향을 최소화하면서 이러한 필드를 마스킹할 있는 실행 가능한 권장 사항을 제공한다. 기능은 지정된 데이터베이스 필드를 통해 쿼리의 결과 집합에 있는 중요한 데이터를 혼란스럽게 만들면서 작동하지만 데이터베이스의 데이터를 변경하지는 않는다.

 

 

 

 

[참고자료]

·       (영어) https://docs.microsoft.com/en-us/azure/sql-database/sql-database-security-overview?WT.mc_id=DP-MVP-4039834

·       (한국어) https://docs.microsoft.com/ko-kr/azure/sql-database/sql-database-security-overview?WT.mc_id=DP-MVP-4039834

 

 

 

 

2019-10-16 / Sungwook Kang / http://sungwookkang.com/

 

 

Azure SQL Database, Azure TDE, Azure Security, Azure Network Security,  Azure SQL Dynamic Data Masking

반응형

+ Recent posts