その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

AWSでMFAを利用しつつセッショントークンをいい感じで取ってくるツール "sesstok" を書いた

github.com

書いたと言っても書いたのは3ヶ月近く前でした.リリース告知をしていないことに気づき,本記事にしている次第です。

何をやるツールかというと,以下の記事に書かれていることをいい感じにやるツールでして,

aws.amazon.com

1. Userの accessKeyID, secretAccessKey および mfaSerial (MFA device ARN) を使って、STSのセッショントークンを取ってくる (これらの情報は初回実行時に設定可能で,rcファイルに保存される)
2. 取ってきたセッショントークンをAWSのcredfentialsファイルに適用する (適用せずにトークンだけ取ってくることもできる)

というような動きをします.自動でcredentialsファイルを変更するというのがキーポイントですね.AWSのcredentialsファイルは通常のiniファイルと同等に扱えるので楽です.

f:id:moznion:20191216002002p:plain

こんな感じで sesstok 123456 のような感じでOTP codeを食わせてやるとSTS API経由でセッショントークンが得られて……

f:id:moznion:20191216002356p:plain

AWSのcredentialsファイルがそのセッショントークンに基づいて自動的に変更されるというような感じです.
あとはこのトークンを用いてお好きなようにどやこやするとよいでしょう.


UserがMFAを使っている環境で、なおかつそのUserを特定のRoleにAssume RoleしてAWSを利用するというシチュエーションの時 *1 にいちいちSTSAPIを叩いてcredentialsを適用して……というのがだいぶダルかったためこのようなツールを書いたという経緯です *2
どうぞご利用ください.

*1:つまりUserに対して直接access tokenを紐付けないという運用

*2:その用途についての記述: https://github.com/moznion/sesstok#to-assume-role-for-another-role