Amazon Web Services 한국 블로그

중요 고지 – Amazon RDS, Aurora, DocumentDB 인증서 교체

이미 관련 이메일을 받거나 AWS 콘솔 알림을 보신 분도 있겠지만 문제가 없도록 다시 알려드립니다! Amazon Aurora, Amazon Relational Database Service(RDS) 또는 Amazon DocumentDB를 사용 중이며 데이터베이스 인스턴스에 연결할 때 SSL/TLS 인증서 검증을 활용하고 있는 경우, 신규 인증서를 다운로드하여 설치하고 인스턴스의 CA(인증 기관)를 교체한 다음, 인스턴스를 재부팅해야 합니다.

SSL/TLS 연결 또는 인증서 검증을 사용하지 않는 경우, 업데이트를 할 필요가 없지만 향후 SSL/TLS 연결을 사용하기로 결정하는 경우에 대비하여 업데이트하는 것이 좋습니다. 이 경우 새 인증서로 교체하고 스테이징하지만 재시작을 하지 않아도 되는 새 CLI 옵션을 사용할 수 있습니다.

새 인증서(CA-2019)는 닭과 달걀의 문제를 유발하지 않고 원활한 이전이 가능하도록 이전 인증서(CA-2015)도 포함하는 인증서 번들의 일부로 제공됩니다.

배경 설명
RDS, Aurora 및 DocumentDB용 SSL/TLS 인증서는 AWS의 표준 유지 관리 및 보안 원칙에 따라 5년마다 만료 및 교체됩니다. 다음은 알아두어야 할 일부 주요 일정입니다.

2019년 9월 19일 – CA-2019 인증서가 출시되었습니다.

2020년 1월 14일 – 이 날짜 또는 그 이후에 생성된 인스턴스는 새 인증서(CA-2019)를 사용합니다. 필요한 경우 일시적으로 이전 인증서로 복귀할 수 있습니다.

2020년 2월 5일 ~ 3월 5일 – RDS가 기존 인스턴스에 새 인증서를 스테이징합니다(즉, 설치하지만 활성화하지는 않음). 인스턴스를 재시작하면 인증서가 활성화됩니다.

2020년 3월 5일 – CA-2015 인증서가 만료됩니다. 인증서 검증을 사용하지만 업데이트되지 않은 애플리케이션은 연결이 끊깁니다.

교체 방법
이 블로그 게시물을 위해 이달 초에 Amazon RDS for MySQL 데이터베이스 인스턴스를 생성해 두었습니다. 위 스크린샷에서 볼 수 있듯이 RDS 콘솔에서 인증서 업데이트를 수행해야 함을 알려주었습니다.

이 알림을 받으면 Using SSL/TLS to Encrypt a Connection to a DB Instance 페이지를 방문하여 새 인증서를 다운로드합니다. 데이터베이스 클라이언트가 인증서 체인을 처리하는 방법을 알고 있는 경우, 루트 인증서를 다운로드하여 모든 리전에 대해 사용할 수 있습니다. 그렇지 않은 경우, 데이터베이스 인스턴스가 상주하는 특정 리전에 대한 인증서를 다운로드합니다. 여기에서는 이전 인증서와 새 루트 인증서를 모두 포함하는 번들을 다운로드하겠습니다.

다음에는 새 인증서를 사용하여 클라이언트 애플리케이션을 업데이트합니다. 이 프로세스는 각 앱과 각 데이터베이스 클라이언트 라이브러리에 따라 다르므로 여기에서는 세부 사항을 설명하지 않겠습니다.

일단 클라이언트 애플리케이션이 업데이트되면 CA(인증 기관)를 rds-ca-2019로 변경합니다. 콘솔에서 인스턴스를 수정하여 새 CA를 선택할 수 있습니다.

CLI를 통해 이 작업을 수행할 수도 있습니다.

$ aws rds modify-db-instance --db-instance-identifier database-1 \
  --ca-certificate-identifier rds-ca-2019

변경 내용은 다음 유지 관리 기간에 적용됩니다. 변경 내용을 즉시 적용할 수도 있습니다.

$ aws rds modify-db-instance --db-instance-identifier database-1 \
  --ca-certificate-identifier rds-ca-2019 --apply-immediately

인스턴스가 재부팅된 후 즉시 또는 유지 관리 기간 중에 애플리케이션이 예상대로 계속 작동하는지 테스트합니다.

SSL을 사용하지 않으며 재시작을 원하지 않는 경우 --no-certificate-rotation-restart를 사용합니다.

$ aws rds modify-db-instance --db-instance-identifier database-1 \
  --ca-certificate-identifier rds-ca-2019 --no-certificate-rotation-restart

데이터베이스 엔진은 다음에 예정된 재시작 또는 예정되지 않은 재시작 중에 새 인증서를 가져옵니다.

RDS ModifyDBInstance API 함수 또는 CloudFormation 템플릿을 사용하여 인증 기관을 변경할 수도 있습니다.

다시 알려드리지만 이 모든 과정을 2020년 3월 5일까지 완료하지 않으면 애플리케이션이 SSL 또는 TLS를 사용하여 데이터베이스 인스턴스에 연결하지 못할 수 있습니다.

주요 사항
다음은 알아두어야 할 몇 가지 주요 사항입니다.

Amazon Aurora ServerlessACM(AWS Certificate Manager)이 이 데이터베이스 엔진에 대한 인증서 교체를 관리하는 데 사용되며 별도 조치가 필요하지 않습니다.

해당 리전 정보 – 인증서 교체는 아시아 태평양(홍콩), 중동(바레인)중국(닝샤)을 제외한 모든 상용 AWS 리전의 데이터베이스 인스턴스에 필요합니다.

클러스터 크기 조정 – 기존 클러스터에 더 많은 노드를 추가하면, 하나 이상의 기존 노드에 이미 CA-2019 인증서가 있는 경우 새 노드는 CA-2019 인증서를 받게 됩니다. 그렇지 않은 경우에는 CA-2015 인증서가 사용됩니다.

자세한 내용
다음은 일부 추가 정보에 대한 링크입니다.

Jeff