背景
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
ボタンを押すだけで認証完了。