とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど
読者登録と各種SNSのフォローもよろしくお願いいたします。

kube2iamで403

先日、とあるプロジェクトで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を見つけてくれました。

github.com

IMDSv2(Instance Metadata Service Version 2)を使用してトークンを更新するための処理で、/latest/api/tokenに対してTTLをPUTしてあげると、そのTTLの長さのトークンが生成されて、レスポンスとして返ってくるようです。

docs.aws.amazon.com

今回の問題は、PUTするときにX-Forwarded-Forがヘッダーに付加されているのが原因のようでした。

Add support for Instance Metadata Service Version 2 (IMDSv2) · Issue #241 · jtblin/kube2iam · GitHub

この問題は0.10.10で解消されていますので、もし、同じようなログが出ていたらバージョンアップをおすすめます。