説明
AWSコンソールへのログインがG SuiteのSAML2.0フェデレーションを介して行えるようになり、コンソールへのログインは
ユーザ管理の手間が減りました。が、個々のユーザがAWS CLIなどでAPIを呼出す時に認証にはまだ固定のキーが必要な状況でした。
これをやめてキー管理からも開放されたいと思います。
ここでは、AWSブログにあったsamlapi_formauthの内容を参考にG Suiteのログインをスクリプトで実行して、SAMLレスポンスを
受け取る用にしました。
準備
-
python2.7系が動く環境
-
jsを動かすためのブラウザとしてPhantomJSをインストール
$ brew install phantomjs
-
その他以下のライブラリをインストール
- selenium
- requests
- lxml
- beautifulsoup4
$ pip install selenium $ pip install requests $ pip install lxml $ pip install beautifulsoup4
※pipに関しては各自使えるようにしておいてください。
-
githubからクローンする
$ git clone github:mossaky/gsuite_samlapi_formauth.git
-
credentialsの確認
現状、~/.aws/credentialsの状態が以下の状態であることを前提とします[deafult] access_key_id = # ここは何も設定されていなくてもOK secret_access_key = # ここは何も設定されていなくてもOK [some_profile] access_key_id = xxxxxx secret_access_key = xxxxx
使い方
$ python gsuite_samlapi_formauth.py
:
username: xxxxxxxx
password:
:
:
[0] xxxxxxx/xxxxxxxx
select hogehoge
0
:
スクリプトを実行するとユーザ名/パスワードの入力を求められます。こちらは、ログイン情報を入力してください。
その後、ロールの選択を行います。番号を入力してください。
一時認証の取得に成功した場合は、該当のアカウントのS3のバケット一覧が表示されます。
取得した結果は、~/.aws/credentialsのセクション[saml]へ書き出されます。
以降、1時間以内は下記のようにコマンドを実行可能となります。
$ aws --profile saml s3 ls
残念ながら現在のAWSの仕様上一時認証情報の有効期間は、1時間となっています。
あと、スクリプトの実行は遅いです…。なんとかなんないかな?