先日、とあるプロジェクトでkube2iamのログを見ていると、以下のようなログを発見しました。
kube2iam-XXXXX kube2iam time="2022-09-26T10:34:03Z" level=info msg="PUT /latest/api/token (403) took 2.837123 ms" req.method=PUT req.path=/latest/api/token req.remote=10.21.110.217 res.duration=2.837123 res.status=403
はて、403?っと思い社内で相談したところ、こちらのIssueを見つけてくれました。
IMDSv2(Instance Metadata Service Version 2)を使用してトークンを更新するための処理で、/latest/api/token
に対してTTLをPUTしてあげると、そのTTLの長さのトークンが生成されて、レスポンスとして返ってくるようです。
今回の問題は、PUTするときにX-Forwarded-Forがヘッダーに付加されているのが原因のようでした。
Add support for Instance Metadata Service Version 2 (IMDSv2) · Issue #241 · jtblin/kube2iam · GitHub
この問題は0.10.10で解消されていますので、もし、同じようなログが出ていたらバージョンアップをおすすめます。