RDSの証明書を更新したら、Lambda(node.js)から接続できなくなった
2020/02/05までに、RDS系の証明書を2015から2019に更新するようにアナウンスが出ています。*1
そんな中、RDSの証明書更新してから、Lambda(node.js)から接続できなくなったと相談を受けました。確実にクライアント側の証明書を更新してないからと思いましたが、探しても探してもどこにも証明書ファイルがありません。
最終的に、mysql2というライブラリに入っていました。意識せずに使えると、こういう時どこにあるか全然わからないですね。特に今回全然知らないLambda(node.js)だったのでなおのこと。*2
Lambda自体のコードは、sequelizeというライブラリを使っており、ssl: true
とssl: 'Amazon RDS'
とあるのみでした。sequelizeのgithubで検索しても出てきません。しばらく唸ったのち、前述のmysql2を呼んでいたので、検索したら該当のコミットが出てきました。
ここにあるように、IAM認証を使っていて、あまり意識せずに暗号化通信になっていたようで、証明書の更新で影響が出ることに気づけていなかったようです。
2019証明書は2024年期限だそうなので、5年経つ前に同じような更新が必要そうです。このLambdaが5年後も生きていれば・・・。
参考
- Amazon RDS のお客様: 2020 年 2 月 5 日までに SSL/TLS 証明書を更新してください | Amazon Web Services ブログ
- https://github.com/sidorares/node-mysql2/commit/9b2c2758523851e909b768d6107525b0dfc391b0
- GitHub - sequelize/sequelize: An easy-to-use multi SQL dialect ORM for Node.js
- AWS Lambda(Node.js)からAmazon RDSへIAM認証で接続する - Qiita