AWS::CDK::Metadataっていう謎データがAWS CDKでデプロイされると生成されるわけだが、当然、長いテンプレートでは見てるだけ疲れるという意見が大半だろう
では、その中身というのは何なのだろうか
AWS::CDK::Metadataリソースには、「Analytics」というただ1つのプロパティが定義されており、そこには「v2:deflate64:」で始まる文字列がある。
これはAWSに統計情報を提供するためのリソースである。さて、その中身というのはどうなっているだろうか?
まず、後ろの文字列はBase64エンコードされた文字列なので、これをデコードする。当然、バイナリなので中身はぐちゃぐちゃであるが、「1F8B0800」で始まることから、これはGZIPエンコードされていることが推定できる。
Deflate64と聞くと馴染みがないとは思うが、要するに小さいデータであればDeflateとだいたい同じはずなので、普通に展開する。すると、「どのバージョンを使っているか」「どのパッケージを使っているか」「どの言語で作成したか」の情報が出てくる。
まず最初の!より前がCDKのバージョンである。次に、CDK 1系であれば@aws-cdk/
という文字列の後に利用しているリソース群が入っている。CDK 2系であればaws-cdk-lib.
という文字列の後に利用しているリソース群が入っている。色々中括弧を挟んでリソースが入れ子になっているが、最終的にそれらが終わるとカンマがくる。その後に処理系とそのバージョン番号がスラッシュ区切りでくる。その後、最後に!jsii-runtime.Runtime
という文字列がくるが、これはJavaScript側の話だろうというのは想像がついたが、それ以上の情報はわからない。
だいたい、これらの情報をオフにする方法というのが出てくるが、これは空のテンプレートにもかかわらず大量のデータが吐き出されてうざいから、というのが理由である。だが、こうしてみればわかるが、機密情報は(一応)入ってないことがわかる。