SSL/TLS 인증서 회전
SSL/TLS 인증서 회전
Amazon RDS 인증 기관(CA) 인증서 rds-ca-2019는 2024년 8월에 만료됐어요. 인증서 검증으로 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security)를 사용해 RDS DB 인스턴스나 Multi-AZ DB 클러스터에 연결하고 있다면, 새 CA 인증서 rds-ca-rsa2048-g1, rds-ca-rsa4096-g1, 또는 rds-ca-ecc384-g1 중 하나를 사용하는 것을 고려해보세요.
출처: 문서
본문
Amazon RDS 인증 기관(CA) 인증서 rds-ca-2019는 2024년 8월에 만료됐어요. 인증서 검증으로 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security)를 사용해 RDS DB 인스턴스나 Multi-AZ DB 클러스터에 연결하거나 연결할 계획이라면, 새 CA 인증서 rds-ca-rsa2048-g1, rds-ca-rsa4096-g1 또는 rds-ca-ecc384-g1 중 하나를 사용하는 것을 고려해보세요. 현재 인증서 검증으로 SSL/TLS를 사용하지 않는다면 만료된 CA 인증서가 여전히 있을 수 있으므로, 인증서 검증으로 SSL/TLS를 사용해 RDS 데이터베이스에 연결할 계획이라면 이를 새 CA 인증서로 업데이트해야 해요.
Amazon RDS는 AWS 보안 모범 사례로 새 CA 인증서를 제공해요. 새 인증서와 지원되는 AWS 리전에 대한 정보는 "SSL/TLS를 사용해 DB 인스턴스 또는 클러스터로의 연결 암호화" 문서를 참고하세요.
데이터베이스의 CA 인증서를 업데이트하려면 다음 방법을 사용해요.
- DB 인스턴스 또는 클러스터를 수정해 CA 인증서 업데이트
- 유지보수 적용으로 CA 인증서 업데이트
DB 인스턴스나 Multi-AZ DB 클러스터를 새 CA 인증서로 업데이트하기 전에 RDS 데이터베이스에 연결하는 클라이언트나 애플리케이션을 먼저 업데이트해야 해요.
인증서 회전 시 고려 사항
인증서를 회전하기 전에 다음 상황을 고려해요.
- Amazon RDS Proxy는 AWS Certificate Manager(ACM)의 인증서를 사용해요. RDS Proxy를 사용한다면 SSL/TLS 인증서를 회전할 때 RDS Proxy 연결을 사용하는 애플리케이션을 업데이트할 필요가 없어요. 자세한 내용은 "RDS Proxy와 TLS/SSL 사용" 문서를 참고하세요.
- Go 1.15 버전 애플리케이션을 DB 인스턴스나 2020년 7월 28일 이전에
rds-ca-2019인증서로 생성되거나 업데이트된 Multi-AZ DB 클러스터와 함께 사용한다면 인증서를 다시 업데이트해야 해요. 엔진에 따라 인증서를rds-ca-rsa2048-g1,rds-ca-rsa4096-g1또는rds-ca-ecc384-g1으로 업데이트해요. DB 인스턴스에는modify-db-instance명령을, Multi-AZ DB 클러스터에는modify-db-cluster명령을 새 CA 인증서 식별자와 함께 사용해요. 특정 DB 엔진과 DB 엔진 버전에서 사용 가능한 CA는describe-db-engine-versions명령으로 찾을 수 있어요. - 2020년 7월 28일 이후에 데이터베이스를 생성했거나 인증서를 업데이트했다면 조치가 필요 없어요. 자세한 내용은 Go GitHub issue #39568을 참고하세요.
DB 인스턴스 또는 클러스터를 수정해 CA 인증서 업데이트
다음 예시는 CA 인증서를 rds-ca-2019에서 rds-ca-rsa2048-g1로 업데이트해요. 다른 인증서를 선택할 수도 있어요. 자세한 내용은 "인증 기관(Certificate authorities)" 문서를 참고하세요.
CA 인증서 업데이트와 관련된 중단 시간을 줄이려면 애플리케이션 신뢰 저장소를 업데이트해요. CA 인증서 회전과 관련된 재시작에 대한 자세한 내용은 "자동 서버 인증서 회전" 문서를 참고하세요.
DB 인스턴스 또는 클러스터를 수정해 CA 인증서를 업데이트하려면
- "SSL/TLS를 사용해 DB 인스턴스 또는 클러스터로의 연결 암호화" 문서에 설명된 대로 새 SSL/TLS 인증서를 다운로드해요.
- 애플리케이션을 새 SSL/TLS 인증서를 사용하도록 업데이트해요.
- 새 SSL/TLS 인증서로 애플리케이션을 업데이트하는 방법은 특정 애플리케이션에 따라 달라져요. 애플리케이션 개발자와 협력해 애플리케이션의 SSL/TLS 인증서를 업데이트해요.
- SSL/TLS 연결 확인과 각 DB 엔진의 애플리케이션 업데이트에 대한 정보는 다음 주제를 참고하세요.
- 새 SSL/TLS 인증서로 MariaDB 인스턴스에 연결하도록 애플리케이션 업데이트
- 새 SSL/TLS 인증서로 Microsoft SQL Server DB 인스턴스에 연결하도록 애플리케이션 업데이트
- 새 SSL/TLS 인증서로 MySQL DB 인스턴스에 연결하도록 애플리케이션 업데이트
- 새 SSL/TLS 인증서로 Oracle DB 인스턴스에 연결하도록 애플리케이션 업데이트
- 새 SSL/TLS 인증서로 PostgreSQL DB 인스턴스에 연결하도록 애플리케이션 업데이트
- Linux 운영 체제의 신뢰 저장소를 업데이트하는 샘플 스크립트는 "신뢰 저장소로 인증서 가져오기 샘플 스크립트"를 참고하세요.
참고
인증서 번들에는 이전 CA와 새 CA 모두에 대한 인증서가 포함되어 있어요. 그래서 전환 기간 동안 연결을 유지하면서 애플리케이션을 안전하게 업그레이드할 수 있어요. AWS Database Migration Service를 사용해 데이터베이스를 DB 인스턴스나 클러스터로 마이그레이션한다면, 마이그레이션 중 연결을 보장하기 위해 인증서 번들을 사용할 것을 권장해요.
- DB 인스턴스 또는 Multi-AZ DB 클러스터를 수정해 CA를
rds-ca-2019에서rds-ca-rsa2048-g1로 변경해요. 데이터베이스가 CA 인증서 업데이트를 위해 재시작이 필요한지 확인하려면describe-db-engine-versions명령을 사용하고SupportsCertificateRotationWithoutRestart플래그를 확인해요.
중요
인증서 만료 후 연결 문제가 발생한다면, 콘솔에서 **Apply immediately(즉시 적용)**를 지정하거나 AWS CLI에서 --apply-immediately 옵션을 지정해 즉시 적용 옵션을 사용해요. 기본적으로 이 작업은 다음 유지보수 기간에 실행되도록 예약돼요.
- RDS for Oracle DB 인스턴스의 경우 연결 오류를 방지하려면 Oracle DB를 다시 시작할 것을 권장해요.
- AlwaysOn 또는 Mirroring 옵션이 활성화된 RDS for SQL Server Multi-AZ 인스턴스의 경우, 인증서 회전 후 인스턴스를 재부팅하면 장애 조치(failover)가 예상돼요.
기본 RDS CA와 다른 인스턴스 CA를 재정의하려면 modify-certificates CLI 명령을 사용해요.
AWS Management Console 또는 AWS CLI를 사용해 DB 인스턴스나 Multi-AZ DB 클러스터의 CA 인증서를 rds-ca-2019에서 rds-ca-rsa2048-g1로 변경할 수 있어요.
유지보수 적용으로 CA 인증서 업데이트
다음 단계를 수행해 유지보수 적용으로 CA 인증서를 업데이트해요.
자동 서버 인증서 회전
루트 CA가 자동 서버 인증서 회전을 지원하면 RDS가 DB 서버 인증서의 회전을 자동으로 처리해요. RDS는 이 자동 회전에 동일한 루트 CA를 사용하므로 새 CA 번들을 다운로드할 필요가 없어요. "인증 기관(Certificate authorities)" 문서를 참고하세요.
DB 서버 인증서의 회전과 유효 기간은 DB 엔진에 따라 달라져요.
- DB 엔진이 재시작 없이 회전을 지원한다면 RDS는 별도 조치 없이 DB 서버 인증서를 자동으로 회전해요. RDS는 DB 서버 인증서 반감기(half life)에 선호하는 유지보수 기간에 DB 서버 인증서를 회전하려고 시도해요. 새 DB 서버 인증서는 12개월 동안 유효해요.
- DB 엔진이 재시작 없이 회전을 지원하지 않는다면 Amazon RDS는 인증서 반감기 또는 만료 최소 3개월 전에
Describe-pending-maintenance-actionsAPI를 통해server-certificate-rotationPending Maintenance Action을 표시해요.apply-pending-maintenance-actionAPI를 사용해 회전을 적용할 수 있어요. 새 DB 서버 인증서는 36개월 동안 유효해요.
describe-db-engine-versions 명령을 사용하고 SupportsCertificateRotationWithoutRestart 플래그를 검사해 DB 엔진 버전이 재시작 없이 인증서 회전을 지원하는지 확인해요. 자세한 내용은 "데이터베이스의 CA 설정" 섹션을 참고하세요.
중요
Amazon RDS for Oracle DB 인스턴스의 경우 DB 엔진 버전의 SupportsCertificateRotationWithoutRestart 플래그가 FALSE로 표시되는 것을 볼 수 있어요. 그러나 Amazon RDS for Oracle DB 인스턴스는 재시작이 필요하지 않으며, 서버 인증서 회전 중에 데이터베이스 리스너만 다시 시작돼요. 기존 데이터베이스 연결은 영향을 받지 않지만, 새 연결은 리스너가 다시 시작되는 동안 잠시 오류를 겪을 수 있어요. 서버 인증서를 수동으로 회전하려면 apply-pending-maintenance-action AWS CLI 명령을 사용해요.
신뢰 저장소로 인증서 가져오기 샘플 스크립트
다음은 인증서 번들을 신뢰 저장소로 가져오는 샘플 셸 스크립트예요.
각 샘플 셸 스크립트는 JDK(Java Development Kit)의 일부인 keytool을 사용해요. JDK 설치에 대한 정보는 "JDK 설치 가이드"를 참고하세요.