난 전혀 모르는 RDS 인증서 갱신 트랩과 회피 방법

나입니다.

평소 RDS Aurora를 이용하고 있는 우리는, 최근 AWS 콘솔에 액세스할 때마다 표시되는 RDS SSL/TLS 증명서 교환의 통지와 매일과 같이 쾅쾅하고 있다고 생각합니다. 1주일 뒤 리마인드 송신 훗... RDS♥⇔♥나같은 느낌이군요. 모두 확실히 그렇습니다.

그래서 증명서의 강제 로테이션에 수반하는 reboot가 있다는 것은 누구나가 알고 있으므로 쓰지 않습니다만,

긴급하고 중요한 알림 - Amazon RDS, Aurora 및 DocumentDB 인증서를 회전하십시오. 을 보고 멘테 RTA에 도전한 결과 도가니에 빠져 절망했기 때문에, 가까운 미래에 같은 습관을 밟을 것 같은 세계의 어딘가에 있는 만난 적이 없는 이름도 모르는 우리들을 위해 기록 떠나 둡니다.
유지 보수 시간을 단축하고 싶습니다. 혹은 CA교환시의 재기동을 컨트롤러블로 하고 싶은 분은 참고에 부디.
  • 대상 RDS Aurora: MySQL/PostgreSQL

  • RDS 인증서 업데이트 공지에 기대한 결과



    발표 기사 위는 2020 年 1 月 14 日 ー この日以降、作成されるインスタンスは、新しい証明書 (CA-2019) を使用するようになります。必要性がある場合は、一時的に古い証明書に戻すこともできます。 입니다.

    라고 하는 것은...Aurora Cluster에 새롭게 Instance 추가하면 CA2019로서 기동해 오는 것이 아니다.
    라고 하는 것은...CA-2015인 RDS 인스턴스를 CA-2019로 변경하지 않고, 새롭게 RDS 인스턴스를 클러스터에 추가해 두면 CA-2019로 기동된다고 하는 것...?
    라고 말하는 것은... . 라고 생각하지만, 실제로 CA-2019의 인스턴스에서 시작하려면 ...
  • Writer 인스턴스의 인증서가 CA-2019 로 되어 있다고 가정합니다.
  • Writer 인스턴스의 인증서가 CA-2015 라고 신규 추가한 Reader 인스턴스의 인증서는 CA-2015 그대로입니다. 네, 절망합니다.
  • --no-certificate-rotation-restart에서 writer의 CA-2019로 변경하는 것만으로도 OK입니다 (내부 CA 플래그가 CA-2019가되기 때문에)

  • 초도해





    따라서 RDS 재부팅을 최소화하고 인증서를 업데이트하는 방법은 다음과 같습니다.



    1. RDS Aurora의 Writer 인스턴스를 --no-certificate-rotation-restart 지정으로 rds-ca-2019로 업데이트합니다.
    aws rds modify-db-instance \
    --db-instance-identifier chucchu-0 \
    --ca-certificate-identifier rds-ca-2019 \
    --no-certificate-rotation-restart \
    --apply-immediately
    

    2.Reader 인스턴스 추가
  • chucchu-ca2019-1과 2를 추가합니다.
  • CA-2019로서 기동해 줍니다.
  • aws rds describe-db-instances --db-instance-identifier chucchu-0 --query DBInstances[].CACertificateIdentifier --output text
    rds-ca-2019
    aws rds describe-db-instances --db-instance-identifier chucchu-1 --query DBInstances[].CACertificateIdentifier --output text
    rds-ca-2015
    aws rds describe-db-instances --db-instance-identifier chucchu-ca2019-1 --query DBInstances[].CACertificateIdentifier --output text
    rds-ca-2019
    aws rds describe-db-instances --db-instance-identifier chucchu-ca2019-2 --query DBInstances[].CACertificateIdentifier --output text
    rds-ca-2019
    

    3.Writer 장애 조치를 수행합니다.
    aws rds failover-db-cluster --db-cluster-identifier chucchu --target-db-instance-identifier chucchu-ca2019-1
    

    4.CA2015의 Reader 인스턴스를 삭제합니다.

    chucchu-0과 1을 지우자 안녕하세요. 클러스터별로 지우지 않도록 오피스를 고려하여 클러스터의 Deletion Protection을 설치해 둡시다.

    terraform을 사용하는 경우



    이번에 시도하지 않았지만 AWS Provider 2.44 이상에서 지원되는 ca_cert_identifier를 사용하면 Writer의 CA가 CA-2015 그대로도 CA-2019의 Reader 인스턴스를 추가 할 수 없다고 생각합니다.
  • terraform AWS Provider를 2.44 이상으로 verup

  • ca_cert_idenfier 사용
  • terraform apply하여 기존 aws_rds_cluster에 CA-2019 인 aws_rds_cluster_instance를 추가합니다.
  • Writer Failover
  • aws_rds_cluster에서 CA-2015의 aws_rds_cluster_instance 제거
  • 안아!!

  • 다음은 혼동하지 않도록 또한 인증서의 만료일이 가까워질 때까지 아디오스

    완료

    좋은 웹페이지 즐겨찾기