MySQL의 암호화 이해

완료됨

전송 중 데이터.

Azure Database for MySQL은 TLS 1.2를 사용하여 암호화된 연결을 지원합니다. 이 프로토콜은 기본적으로 활성화되며 tls_version 서버 매개 변수에 의해 관리됩니다. 이 매개 변수를 통해 서버에서 허용하는 최소 TLS 버전을 적용할 수 있습니다. 예를 들어 TLS 1.2 및 1.3을 허용하려는 경우 둘 이상의 버전을 선택할 수 있습니다. 이 매개 변수를 변경할 때 변경 사항을 적용하려면 서버를 다시 시작해야 합니다.

Screenshot showing the server parameter tls_version page.

클라이언트 애플리케이션이 암호화된 연결을 지원하지 않는 경우 Azure Database for MySQL에서 암호화된 연결을 비활성화해야 합니다. Azure Portal에서 MySQL 서버로 이동하고 설정 아래에서 서버 매개 변수를 선택합니다. 검색 상자에서 require_secure_transport를 입력합니다. 이 매개 변수는 클라이언트 연결이 보안 연결, 즉 TCP/IP를 통한 SSL을 사용하거나, Unix에서 소켓 파일을 사용하거나 Windows에서 공유 메모리를 사용하는 연결을 사용해야 합니다. 클라이언트 애플리케이션이 암호화된 연결을 지원하지 않는 경우 require_secure_transportOFF로 설정합니다.

참고

require_secure_transportOFF로 설정하지만 클라이언트가 암호화된 연결로 연결하는 경우에도 계속 허용됩니다.

클라이이언트 애플리케이션과 암호화된 연결을 사용하려면 Azure Portal에서 퍼블릭 SSL 인증서를 다운로드합니다. MySQL 서버로 이동하고 왼쪽 메뉴에서 네트워킹을 선택합니다. 상단 메뉴에서 SSL 인증서 다운로드를 선택합니다. 애플리케이션이 SSL을 통해 데이터베이스에 안전하게 연결할 수 있도록 하려면 로컬 환경 또는 애플리케이션이 호스트되는 클라이언트 환경에 인증서 파일을 저장합니다.

미사용 데이터

미사용 데이터 암호화는 InnoDB 스토리지 엔진에서 지원됩니다. 암호화는 테이블스페이스 수준에서 설정되며 InnoDB는 테이블당 파일, 일반 및 시스템의 테이블스페이스에 대한 암호화를 지원합니다. MySQL 버전 8.0의 경우 서버 매개 변수 default_table_encryptionON으로 설정되어 있는지 확인합니다(기본값으로 OFF임). 암호화된 테이블의 경우 다시 실행 로그를 암호화할 수도 있습니다. 이 옵션은 기본적으로 사용하지 않도록 설정되어 있습니다.

테이블당 파일 테이블스페이스의 테이블을 암호화하려면 다음을 수행합니다.

CREATE TABLE myEncryptedTable (myID INT) ENCRYPTION = 'Y';

그런 다음 테이블을 변경하는 경우 암호화 절을 지정해야 합니다.

ALTER TABLE myEncryptedTable ENCRYPTION = 'Y';

Azure Database for MySQL은 Microsoft의 관리형 키를 사용하여 기본적으로 미사용 데이터 암호화를 지원합니다. 데이터 및 백업은 항상 디스크에서 암호화되고, 이것은 비활성화할 수 없습니다.