보안 기능 설명
Azure Database for MySQL - 유연한 서버는 데이터와 작업을 보호하고 보안을 유지하도록 설계된 여러 기능을 제공합니다. 각 기능을 살펴보겠습니다.
네트워킹
Azure Database for MySQL – 유연한 서버는 공용 액세스 및 Azure VNet(Virtual Network)에 대한 데이터베이스 연결을 보호하기 위한 강력한 방화벽 설정을 제공합니다. MySQL 유연한 서버 연결에는 공용 액세스, 프라이빗 액세스, 프라이빗 링크의 세 가지 설정이 있습니다. 모든 경우에 연결은 여전히 서버에서 인증되어야 합니다.
공용 액세스는 허용된 IP 주소 범위 목록을 통해 인터넷을 통해 액세스할 수 있는 공개적으로 확인 가능한 DNS 주소를 제공합니다. 기본적으로 IP 주소는 허용되지 않습니다. 만드는 중이거나 만든 후에 IP 주소를 추가할 수 있습니다. 또한 모든 Azure IP 주소(다른 지역의 다른 고객 구독 포함)에서의 액세스를 허용할 수도 있습니다.
프라이빗 액세스는 위임된 서브넷을 사용하여 MySQL 유연한 서버를 호스팅하고 해당 VNet 또는 피어링된 VNet 내에서 확인할 수 있는 DNS 주소를 제공합니다. 이렇게 하면 가상 네트워킹 인프라에 대한 데이터베이스 액세스만 잠깁니다. NSG(네트워크 보안 그룹) 방화벽 규칙을 설정하여 네트워크 트래픽을 보다 정확하게 필터링할 수 있습니다. 프라이빗 액세스를 사용하면 동일한 VNet 내에서, 피어링을 사용하는 다른 VNet에서, 심지어 ExpressRoute나 VPN 연결을 사용하는 온-프레미스에서도 MySQL 유연한 서버에 안전하게 연결할 수 있습니다.
프라이빗 링크는 VNet 서브넷 내의 개인 IP 주소 엔드포인트를 제공하여 MySQL 유연한 서버에 직접 연결할 수 있습니다. Azure Private Link는 기본적으로 다른 VNet 리소스와 마찬가지로 IP 주소를 통해 프라이빗 VNet 내부에 Azure 서비스를 가져옵니다. 예를 들어, 연결 애플리케이션 또는 Azure PaaS 리소스당 하나씩 여러 프라이빗 엔드포인트를 만들 수 있습니다. NSG 방화벽 규칙과 결합된 프라이빗 링크는 데이터베이스에 액세스할 수 있는 서비스를 세밀하게 제어할 수 있습니다.
Microsoft Defender for Cloud
클라우드용 Microsoft Defender는 비정상적이고 잠재적으로 유해한 작업이 있는지 데이터베이스를 모니터링합니다. 클라우드용 Defender는 보안 모니터링을 빌드하거나 관리할 필요 없이 잠재적인 위협을 해결하기 위한 추가 기능 계획으로 제공됩니다. 클라우드용 Defender는 AWS Aurora 및 RDS의 MySQL 외에도 Azure Database for MySQL - 유연한 서버에서 다중 클라우드 가용성을 제공합니다. 클라우드용 Defender는 PostgreSQL 및 MariaDB도 지원합니다.
클라우드용 Defender는 다음과 같은 데이터베이스 위협을 검색합니다.
- 무차별 암호 대입 공격: 로그인 실패율이 비정상적으로 높고, 여러 번의 실패 후에 로그인에 성공합니다.
- 비정상적인 로그인 패턴: 사용자가 2개월 이내에 처음으로 로그인하는 경우.
- 비정상적인 로그인 위치: 사용자가 비정상적인 Azure 데이터베이스, 다른 클라우드 공급자 또는 의심스러운 것으로 표시된 IP에서 로그인하는 경우.
클라우드용 Defender는 Azure Portal과 이메일을 통해 검색 경고를 보냅니다. 경고에는 다음이 포함됩니다.
- 의심스러운 활동에 대한 세부 정보.
- 관련 MITRE ATT&CK(악의적 전술, 기술 및 공통 지식).
- 공격을 조사하고 완화하기 위한 제안.
- Microsoft Sentinel을 통해 조사할 수 있는 추가 옵션.
인증
Azure Database for MySQL은 두 가지 인증 모드를 제공합니다. MySQL 인증(사용자 이름/암호) 및 Microsoft Entra ID 인증. 두 가지를 동시에 사용하도록 설정할 수 있습니다.
Microsoft Entra ID 인증은 Microsoft Entra ID에서 제공하는 ID를 사용하여 MySQL 유연한 서버에 대한 ID 기반 인증을 가능하게 합니다. 이는 데이터베이스 및 기타 Microsoft 서비스에 대한 사용자 관리를 중앙 집중화합니다.
기본적으로 MySQL 유연한 서버는 MySQL 인증(사용자 이름/암호)만 사용하도록 설정되어 있습니다. Microsoft Entra ID 인증만 사용하거나(데이터베이스 사용자 없음) 관리 ID를 MySQL 인증과 결합하도록 이 설정을 변경할 수 있습니다.
Microsoft Entra ID 인증을 사용하는 경우 원래 MySQL 관리자와 Microsoft Entra ID 관리자라는 두 가지 관리자 계정이 있습니다. Microsoft Entra ID 관리자는 사용자 또는 사용자 그룹일 수 있습니다. 관리자가 그룹인 경우 그룹의 모든 멤버는 Microsoft Entra ID 인증을 관리할 수 있습니다. 관리자 그룹은 MySQL 사용자 또는 권한을 직접 업데이트하지 않고 Microsoft Entra ID에서 사용자 관리를 중앙 집중화하므로 관리하기가 더 쉽습니다. 단일 사용자이든 단일 사용자 그룹이든 관계없이 Microsoft Entra ID 관리자는 한 명만 구성할 수 있습니다.
다음 다이어그램은 인증을 관리하는 두 가지 모드를 보여 줍니다.
사용자 또는 애플리케이션이 Microsoft Entra ID를 사용하여 MySQL 유연한 서버에 연결을 시도하면 로그인을 허용하는 토큰이 발급됩니다. ID는 이름이나 기타 특성이 아닌 고유한 Microsoft Entra 사용자 ID를 통해 데이터베이스 사용자와 연결됩니다.
데이터 암호화
MySQL의 유연한 서버는 전송 중인 데이터를 암호화합니다. 기본적으로 서버는 TLS(전송 계층 보안) 1.2로 연결해야 하며 암호화되지 않은 연결이나 더 이상 사용되지 않는 TLS 1.0 및 1.1 프로토콜을 사용하는 연결을 거부합니다. 암호화된 연결을 사용하지 않도록 설정하거나(레거시 애플리케이션은 암호화를 지원하지 않을 수 있음) 1.2 이전 버전을 허용하거나 새 애플리케이션 개발에 권장되는 설정인 TLS 1.3을 사용할 수 있습니다.
기본적으로 Azure Database for MySQL - 유연한 서버는 대칭 AES 256비트 DEK(데이터 암호화 키)를 사용하여 미사용 데이터(쿼리를 실행하는 동안 만들어진 백업 및 임시 파일 포함)를 암호화합니다. CMK(고객 관리형 키)를 사용하면 BYOK(Bring Your Own Key)를 수행하여 서비스의 DEK를 암호화하여 또 다른 암호화 계층을 추가할 수 있습니다.
BYOK를 사용하면 데이터 암호화 및 키 수명 주기(만들기, 업로드, 회전, 삭제)를 완벽하게 제어할 수 있습니다. 키 수명 주기를 관리하면 회사 정책에 맞게 키 회전을 조정할 수 있고 보안 팀, DBA 및 시스템 관리자 책임을 분리할 수 있습니다.
CMK를 사용하도록 설정하려면 데이터베이스를 UMI(사용자 할당 관리 ID)에 연결한 다음 사용할 키(Azure Key Vault에 저장됨)를 지정해야 합니다. 서버의 복사본을 만들면 복사본이 암호화되며, 기존 복제본에 관리 ID 및 키를 추가할 수도 있습니다.