継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

【2024年版】RDS と Aurora の SSL/TLS 証明書のローテーションで再起動が発生するかと作業対象のデータベースの一覧を確認した

タダです.

数年ぶりに迫ってきた RDS と Aurora の SSL/TLS 接続で使用する証明書の入れ替えが東京リージョンは 2024/08/22 期限となっています.今回の証明書の入れ替えにあたって利用している Aurora で証明書入れ替え時に再起動が発生するのか,どの証明書のバージョンを使用しているのかを確認したのでこの記事にまとめてきます.

aws.amazon.com

証明書の入れ替え時に再起動が発生する DB エンジンとバージョンの確認

まず,証明書の入れ替え時に再起動が発生する DB エンジンとバージョンの確認を行いました.確認結果からDBエンジンバージョンが 5.7.mysql_aurora.2.11.1 以下は再起動が入るが,5.7.mysql_aurora.2.11.1 以降 8.0 系は再起動が入らないことがわかりました( SupportsCertificateRotationWithoutRestart の結果が true なら再起動が発生せず, false なら再起動が発生する)。

$ aws rds describe-db-engine-versions --engine aurora-mysql --include-all --region ap-northeast-1 | jq -r '.DBEngineVersions[] | (.EngineVersion,.SupportsCertificateRotationWithoutRestart,.SupportedCACertificateIdentifiers)'

5.7.12
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.02.3
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.03.2
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.03.3
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.03.4
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.04.0
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.04.1
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.04.2
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.04.3
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.04.4
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.04.5
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.04.6
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.04.7
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.04.8
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.04.9
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.05.0
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.06.0
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.07.0
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.07.1
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.07.2
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.07.3
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.07.4
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.07.5
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.07.6
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.07.7
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.07.8
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.07.9
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.07.10
false
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.08.0
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.08.1
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.08.2
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.08.3
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.08.3
false
[]
5.7.mysql_aurora.2.08.4
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.09.0
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.09.1
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.09.2
false
[
  "rds-ca-2019",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.09.3
false
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.10.0
false
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.10.1
false
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.10.2
false
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.10.3
false
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.11.0
false
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.11.1
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.11.2
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.11.3
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.11.4
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.11.4
false
[]
5.7.mysql_aurora.2.11.5
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.12.0
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.12.1
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
5.7.mysql_aurora.2.12.2
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.01.0
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.01.1
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.02.0
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.02.1
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.02.2
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.02.3
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.03.0
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.03.1
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.03.2
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.03.3
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.04.0
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.04.1
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.04.2
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.05.0
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.05.1
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.05.2
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.06.0
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.06.1
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]
8.0.mysql_aurora.3.07.0
true
[
  "rds-ca-2019",
  "rds-ca-ecc384-g1",
  "rds-ca-rsa4096-g1",
  "rds-ca-rsa2048-g1"
]

次に,利用している DB エンジンバージョンが 5.7系で 5.7.mysql_aurora.2.11.1 以降になっているかを確認してみました.幸いにして利用しているバージョンは 5.7.mysql_aurora.2.11.5 になっていたので証明書入れ替え時に再起動が発生しない状況でした.

$ aws rds describe-db-clusters --query "DBClusters[?starts_with(EngineVersion, '5.7')].[DBClusterIdentifier, EngineVersion]" --output json

[
    [
        "hoge",
        "5.7.mysql_aurora.2.11.5"
    ],
    [
        "fuga",
        "5.7.mysql_aurora.2.11.5"
    ]
]

利用している Aurora がどの証明書のバージョンを使用しているのかの確認

最後に,Aurora の中でどのクラスターで証明書入れ替えを行う rds-ca-2019 を利用しているかを確認をしました.Aurora クラスターとインスタンス,DB エンジンバージョン,証明書のバージョンを一覧で確認できるようにしています.

$ aws rds describe-db-instances --query 'DBInstances[?CACertificateIdentifier==`rds-ca-2019`].[DBInstanceIdentifier, DBClusterIdentifier, EngineVersion, CACertificateIdentifier]' --output table
--------------------------------------------------------------------------------------------------------------------
|                                                DescribeDBInstances                                               |
+------------------------------------+-----------------------------------+--------------------------+--------------+
|  hoge-writer-instances             |  hoge                     |  5.7.mysql_aurora.2.11.5 |  rds-ca-2019 |
|  hoge-reader-instances             |  hoge                     |  5.7.mysql_aurora.2.11.5 |  rds-ca-2019 |
|  fuga-writer-instances             |  fuga                     |  5.7.mysql_aurora.2.11.5 |  rds-ca-2019 |
|  fuga-reader-instances             |  fuga                     |  5.7.mysql_aurora.2.11.5 |  rds-ca-2019 |
+------------------------------------+-----------------------------------+--------------------------+--------------+

まとめ

RDS と Aurora の SSL/TLS 接続で使用する証明書の入れ替え作業にあたって,証明書入れ替え時に再起動が発生する化どうかの確認と作業対象の確認を行った際に使った AWS CLI コマンドをまとめました.

関連記事

sadayoshi-tada.hatenablog.com

sadayoshi-tada.hatenablog.com