SSL/TLS를 사용하여 MariaDB DB 인스턴스에 대한 클라이언트 연결 암호화
SSL(Secure Sockets Layer)은 클라이언트와 서버 간의 네트워크 연결을 보호하는 데 사용되는 업계 표준 프로토콜입니다. SSL 버전 3.0 이후로 이름이 전송 계층 보안(TLS)으로 변경되었습니다. Amazon RDS는 MariaDB DB 인스턴스에 SSL/TLS 암호화를 지원합니다. SSL/TLS를 사용하여 애플리케이션 클라이언트와 MariaDB DB 인스턴스 간의 연결을 암호화할 수 있습니다. SSL/TLS 지원 기능은 모든 AWS 리전에서 사용할 수 있습니다.
주제
MariaDB DB 인스턴스와 함께 SSL/TLS 사용
Amazon RDS가 SSL/TLS 인증서를 생성한 후 Amazon RDS가 인스턴스를 프로비저닝할 때 DB 인스턴스에 인증서를 설치합니다. 인증 기관이 서명하는 SSL 인증서에는 SSL/TLS 인증서에는 스푸핑 공격으로부터 보호해주는 SSL/TLS 인증서를 위한 일반 이름(CN)으로 DB 인스턴스 엔드포인트가 포함되어 있습니다.
Amazon RDS에서 생성하는 SSL/TLS 인증서는 신뢰할 수 있는 루트 개체이므로 대부분의 경우에 작동하지만, 애플리케이션에서 인증서 체인을 수락하지 않을 경우 사용하지 못할 수 있습니다. 애플리케이션에서 인증서 체인을 허용하지 않는 경우 중간 인증서로 사용 중인 AWS 리전에 연결해야 할 수도 있습니다. 예를 들어, SSL/TLS를 사용하여 AWS GovCloud (US) 리전에 연결하려면 중간 인증서를 사용해야 합니다.
인증서 다운로드에 대한 자세한 내용은 SSL/TLS를 사용하여 DB 인스턴스 또는 클러스터에 대한 연결 암호화 단원을 참조하세요. MySQL에서 SSL/TLS를 사용하는 방법에 대한 자세한 내용은 새 SSL/TLS 인증서를 사용해 MariaDB 인스턴스에 연결할 애플리케이션 업데이트 섹션을 참조하세요.
Amazon RDS for MariaDB는 전송 계층 보안(TLS) 버전 1.3, 1.2, 1.1 및 1,0을 지원합니다. TLS 지원은 MariaDB 마이너 버전에 따라 달라집니다. 다음 테이블은 MariaDB 마이너 버전에 대한 TLS 지원을 보여줍니다.
TLS 버전 | MariaDB 10.11 | MariaDB 10.6 | MariaDB 10.5 | MariaDB 10.4 |
---|---|---|---|---|
TLS 1.3 |
모든 마이너 버전 |
모든 마이너 버전 |
모든 마이너 버전 |
모든 마이너 버전 |
TLS 1.2 |
모든 마이너 버전 |
모든 마이너 버전 |
모든 마이너 버전 |
모든 마이너 버전 |
TLS 1.1 |
10.11.6 이하 |
10.6.16 이하 |
10.5.23 이하 |
10.4.32 이하 |
TLS 1.0 |
10.11.6 이하 |
10.6.16 이하 |
10.5.23 이하 |
10.4.32 이하 |
특정 사용자 계정에 대한 SSL/TLS 연결을 요구할 수 있습니다. 예를 들면, MariaDB 버전에 따라 다음 문 중 하나를 사용하여 사용자 계정 encrypted_user
에 대한 SSL/TLS 연결을 요구할 수 있습니다.
다음 문을 사용합니다.
ALTER USER 'encrypted_user'@'%' REQUIRE SSL;
MariaDB와의 SSL/TLS 연결에 대한 자세한 내용은 MariaDB 설명서에서 클라이언트 및 서버에 대한 연결 보안
MariaDB DB 인스턴스에 대한 모든 연결에 SSL/TLS 필요
require_secure_transport
파라미터를 사용하여 MariaDB DB 인스턴스에 대한 모든 사용자 연결이 SSL/TLS를 사용하도록 요구합니다. 기본적으로 require_secure_transport
파라미터는 OFF
로 설정됩니다. require_secure_transport
파라미터를 ON
으로 설정하면 해당 DB 인스턴스에 대한 연결 시 SSL/TLS를 요구합니다.
참고
require_secure_transport
파라미터는 MariaDB 버전 10.5 이상에서만 지원됩니다.
require_secure_transport
파라미터 값은 DB 인스턴스의 DB 파라미터 그룹을 업데이트하여 설정할 수 있습니다. 변경 사항을 적용하기 위해 DB 인스턴스를 재부팅할 필요가 없습니다.
DB 클러스터에 대해 require_secure_transport
파라미터를 ON
으로 설정하면 암호화된 연결을 설정할 수 있는 경우 데이터베이스 클라이언트가 인스턴스에 연결할 수 있습니다. 그렇지 않으면 다음과 유사한 오류 메시지가 클라이언트에 반환됩니다.
ERROR 1045 (28000): Access denied for user 'USER
'@'localhost' (using password: YES | NO
)
파라미터 설정에 대한 자세한 내용은 Amazon RDS에서 DB 파라미터 그룹의 파라미터 수정을 참조하세요.
require_secure_transport
파라미터에 대한 자세한 내용은 MariaDB 설명서
MySQL 명령줄 클라이언트에서 SSL/TLS를 사용하여 연결(암호화)
mysql
클라이언트 프로그램 파라미터는 MySQL 5.7 버전, MySQL 8.0 버전 또는 MariaDB 버전을 사용하는 경우 약간 다릅니다.
사용 중인 버전을 확인하려면 --version
옵션을 사용하여 mysql
명령을 실행합니다. 다음 예에서는 출력은 클라이언트 프로그램이 MariaDB의 프로그램임을 나타냅니다.
$ mysql --version mysql Ver 15.1 Distrib 10.5.15-MariaDB, for osx10.15 (x86_64) using readline 5.1
Amazon Linux, CentOS, SUSE 및 Debian과 같은 대부분의 Linux 배포판은 MySQL을 MariaDB로 대체했으며 mysql
버전은 MariaDB에서 가져온 것입니다.
다음 단계에 따라 SSL/TLS를 사용하여 DB 인스턴스에 연결합니다.
MySQL 명령줄 클라이언트를 사용하여 SSL/TLS를 통해 DB 인스턴스에 연결하려면
-
모든 AWS 리전에 적용되는 루트 인증서를 다운로드할 수 있습니다.
인증서 다운로드에 대한 자세한 내용은 SSL/TLS를 사용하여 DB 인스턴스 또는 클러스터에 대한 연결 암호화 단원을 참조하세요.
-
MySQL 명령줄 클라이언트를 사용하여 SSL/TLS를 통해 DB 인스턴스에 연결합니다.
-h
파라미터의 경우 해당 DB 인스턴스의 DNS 이름(엔드포인트)로 대체합니다.--ssl-ca
파라미터는 해당하는 SSL/TLS 인증서 파일 이름으로 대체합니다.-P
파라미터에는 DB 인스턴스의 포트로 대체합니다.-u
파라미터에는 마스터 사용자와 같이 유효한 데이터베이스 사용자의 사용자 이름으로 대체합니다. 입력 프롬프트가 표시되면 마스터 사용자 암호를 입력합니다.다음 예제는 MariaDB 클라이언트를 사용하여
--ssl-ca
파라미터를 통해 클라이언트를 시작하는 방법을 보여줍니다.mysql -h
mysql–instance1.123456789012.us-east-1.rds.amazonaws.com
--ssl-ca=global-bundle.pem
--ssl -P 3306 -umyadmin
-pSSL/TLS 연결에서 SSL/TLS 인증서의 엔드포인트와 비교하여 DB 인스턴스 엔드포인트를 확인하도록 요구할 수 있습니다.
mysql -h
mysql–instance1.123456789012.us-east-1.rds.amazonaws.com
--ssl-ca=global-bundle.pem
--ssl-verify-server-cert -P 3306 -umyadmin
-p다음 예제는 MySQL 5.7 클라이언트 이후 버전의 경우
--ssl-ca
파라미터를 사용하여 클라이언트를 시작하는 방법을 보여줍니다.mysql -h
mysql–instance1.123456789012.us-east-1.rds.amazonaws.com
--ssl-ca=global-bundle.pem
--ssl-mode=REQUIRED -P 3306 -umyadmin
-p 입력 프롬프트가 표시되면 마스터 사용자 암호를 입력합니다.
다음과 유사한 출력 화면이 표시되어야 합니다.
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 31 Server version: 10.6.10-MariaDB-log Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>