コマンドラインからAWSでMFA(多要素認証)する

こんにちは?こんばんは?四時って言ったらどっちかなぁ?
よし!こんばちは!

さて、技術関連記事の2回目です。 (書き溜めてるので、本当に二番目に公開されてるかは知らない) 最近ちまちまとbashスクリプトを書くのに疲れて来たので、真剣にスクリプト言語を勉強し始めました。
もともとPHPとnodeは少し書けるんですが、これから解析系の仕事が増えてくるので、Pythonかなぁってことで、Pythonです。

最初に書くスクリプトどうしようかなぁと思ってたんですが、最近AWSのMFAを自分のスマホからやってる人多くないですか?
あれBYD禁止の会社でも普通にやってる人いて普通に気持ち悪いなぁと思ったので、コマンドラインから認証、session tokenを取得して環境変数にセットするところまで書いて公開しようかなと考えております。

本題へ

さて、タイトルの通り、今回の記事ではまずコマンドラインからAWSの多要素認証をする方法について書こうかなと思います。

やり方は非常に簡単。以下の手順でpipからmfaをインストールします。 pipを使うので、pythonをインストールしておいてください。

$ pip install mfa

mfaがインストール出来たら、次のコマンドで秘密鍵を登録します。

$ mfa set ${key} ${secret_key}

ちなみにご存知かと思いますが、秘密鍵はここから取れます。 f:id:csohei:20181108032448p:plain

これで準備は完了、loginに必要な6桁の認証番号は次のコマンドで取れます。

$ mfa otp ${key}
123456

※otp=One Time Pass。。。かな?

これであなたもちょっとセキュリティ意識高まった系。 ちなみにmfaはpipが使えることからわかるようにきちんとPyplで公開されてます。 pypi.org ソースはここ。 github.com

Python楽しいですね。4000円出して買ったかいがあった。