AWS CDKをバージョンアップする
目次
はじめに
こんにちは、CloudBuildersのsugawaraです。
先日、AWS CDKの脆弱性が発覚しました。すぐに攻撃されるリスクは低いとされていますが、セキュリティ対策としてバージョンアップが推奨されています。この機会に、CDKのバージョンを見直しておくことをおすすめします。
そこで、今回はCDKのバージョンアップ手順をグローバルとローカルにわけてまとめてみました。
グローバルのバージョンアップ
まず、現在インストールされているグローバルCDKのバージョンを確認します。ここで確認するのはCDK CLI(aws-cdk)のみを対象とします。
$ cdk --version
2.138.0 (build 6b41c8b)
グローバルのCDKバージョンを特定のバージョン(例 2.165.0)で固定するには、以下のコマンドを実行します。
$ npm install -g aws-cdk@2.165.0
最新バージョンであれば、以下のコマンドを実行します。
$ npm install -g aws-cdk@latest
再度、以下のコマンドを実行してグローバルのCDKバージョンが想定のバージョンになっているかを確認します。
$ cdk --version
2.165.0 (build 00f70f1)
これで、新規プロジェクトをcdk initすると、バージョン2.165.0で開始できます。
なお、グローバルのCDKのバージョンアップをする際には、aws-cdkのみをバージョンアップすれば問題ないです。
ローカルのバージョンアップ
各プロジェクトごとに異なるバージョンを管理していることがあると思います。その場合には、下記のコマンドでプロジェクト内のCDKのバージョンを確認します。
$ npx cdk --version
2.149.0 (build c8e5924)
また、下記のコマンドでは、プロジェクト内にインストールされたすべてのAWS CDK関連パッケージのライブラリ(aws-cdk-lib)のバージョンを確認できます。
※CDK v1では必要なものを適宜インストールしていたようですが、v2になってからはaws-cdk-libにすべてのリソースが統合されているため、下記のような出力になります。
$ npm list aws-cdk-lib
lambda-test@0.1.0 /home/XXXXXX/YYYYY/ZZZZZ
└── aws-cdk-lib@2.149.0
ローカルのCDKバージョンを特定のバージョン(例 2.165.0)で固定するには、以下のコマンドを実行します。
$ npm install aws-cdk-lib@2.165.0
また、aws-cdkのバージョンも同じに揃えることで、CLIとライブラリの互換性を保つことができ、予期しないエラーの発生を防ぎます。以下のコマンドでaws-cdkも同じバージョンに固定します。
$ npm install aws-cdk@2.165.0
再度、以下のコマンドを実行してローカルのCDKバージョンが想定のバージョンになっているかを確認します。
$ npx cdk --version
2.165.0 (build 00f70f1)
$ npm list aws-cdk-lib
lambda-test@0.1.0 /home/XXXXXX/YYYYY/ZZZZZ
└── aws-cdk-lib@2.165.0
これにより、aws-cdk-libとaws-cdkが指定したバージョンに更新されたことが確認できます。
※aws-cdk-libとaws-cdkのバージョンはルート直下のpackage.jsonでも確認ができます。
おわりに
今回は、AWS CDKのグローバルおよびローカルでのバージョンアップ方法について解説しました。セキュリティ上の脆弱性対策としての対応でしたが、定期的にバージョンアップを行うことで新機能やバグ修正も反映させることができます。CDKはアップデートのペースが非常に早いため、今後もAWSやCDKの更新情報を気にしつつ、セキュリティの向上を図っていきましょう!