[メモ] saml2awsでのログインを楽にしたい


背景

saml2awsを導入された。

Identity Providers: Google Apps

saml2awsの導入の話はこちら: https://qiita.com/tarumzu/items/7a20f8b414815de02b8e

毎回ログインは面倒くさいので、楽にしたい!

トークンの有効期間

デフォルトは1 hourで、流石に短すぎて、面倒くさい。最大の12 hourまで伸ばした。

~/.saml2aws
[idp_my_google]
app_id               =
url                  = url 
username             = username
provider             = GoogleApps
mfa                  = Auto
skip_verify          = false
timeout              = 0
aws_urn              = urn:amazon:webservices
aws_session_duration = 43200
aws_profile          = my_saml
subdomain            =

aws_session_durationの値を43200(12 hour)に修正した。

AWS Profile

AWS Profileの指定も面倒くさいので、いつも使うProfileを環境変数として保存しました。

~/.bashrc
export AWS_REGION=ap-northeast-1
export AWS_PROFILE=my_saml
export AWS_DEFAULT_REGION=ap-northeast-1
export AWS_DEFAULT_PROFILE=my_saml

複数のprofileを使う場合は、指定する必要があります。

ユーザー名とパスワード

ユーザーとパスワードもパラメーターで渡したい

~/aws-auth
saml2aws login -a idp_my_google --username=username --password='password'

それで、エンターキーを押すと携帯に届くGoogle App承認通知のyesボタンを押すだけで認証が完了です。

ロール

同じGoogleアカウントで複数のAWSアカウントを持っている場合はロールの選択が必要です。それもパラメーターで渡せます!

まず、ロールが分からない時にlist-rolesで調べましょう。

$ saml2aws -a idp_my_google list-roles
Using IDP Account idp_my_google to access GoogleApps xxxxx
To use saved password just hit enter.
? Username user_name
? Password

Open the Google App, and tap 'Yes' on the prompt to sign in

Account: account_1 (xxxx)
arn:aws:iam::xxxx:role/Developer

Account: account_2 (xxxx)
arn:aws:iam::xxxx:role/Administrator

account_2を使いたい場合は、aws-authスクリプトを修正します。

saml2aws login -a idp_my_google --username=username --password='password' --role='arn:aws:iam::xxxx:role/Administrator'

エンターキーも押したくない ( from @osd

saml2aws login -a idp_my_google --username=username --password='password' --role='arn:aws:iam::xxxx:role/Administrator' --skip-prompt

それで携帯でのyesボタンを押すだけで認証完了。

参照