LoginSignup
2
4

More than 5 years have passed since last update.

G Suiteの認証を介してAWSの一時認証クレデンシャルを取得する

Last updated at Posted at 2017-05-12

説明

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時間となっています。:cry:
あと、スクリプトの実行は遅いです…。なんとかなんないかな?

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4