#AWSに手軽に複数アカウントログイン
AWSで複数アカウント使ってると切り替えが面倒です。
Chromeだとシークレットモードにしたり、Chromeのアカウント自体を切り替えたりって方法で対処してるようですが、それもやっぱり面倒です。
というわけでSeleniumとwebdriverを使ってブラウザ立ち上げてもらって、ついでにログイン操作をしてもらうことにしました。
- seleniumやwebdriverの準備は別の記事を参考にしてください。
- 人によってログインの仕方違うかもしれないのですが、その場合は自分のやり方に合わせてソース変えてください。
まず以下のソースを login.py とかで保存してください。
EmailやPasswordは自分のに書き換えてください。
#! /usr/bin/env python
#-*- coding: utf-8 -*-
from selenium import webdriver
email = 'EMAIL'
password = 'PASSWORD'
d = webdriver.Chrome("./chromedriver")
d.get('https://www.amazon.com/ap/signin?openid.assoc_handle=aws&openid.return_to=https%3A%2F%2Fsignin.aws.amazon.com%2Foauth%3Fresponse_type%3Dcode%26client_id%3Darn%253Aaws%253Aiam%253A%253A015428540659%253Auser%252Fhomepage%26redirect_uri%3Dhttps%253A%252F%252Fconsole.aws.amazon.com%252Fconsole%252Fhome%253Fstate%253DhashArgs%252523%2526isauthcode%253Dtrue%26noAuthCookie%3Dtrue&openid.mode=checkid_setup&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&action=&disableCorpSignUp=&clientContext=&marketPlaceId=&poolName=&authCookies=&pageId=aws.ssop&siteState=pre-register%2Cja&accountStatusPolicy=P1&sso=&openid.pape.preferred_auth_policies=MultifactorPhysical&openid.pape.max_auth_age=120&openid.ns.pape=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fpape%2F1.0&server=%2Fap%2Fsignin%3Fie%3DUTF8&accountPoolAlias=&forceMobileApp=0&language=ja&forceMobileLayout=0')
inputEmail = d.find_element_by_id('ap_email')
inputEmail.send_keys(email)
inputPassword = d.find_element_by_id('ap_password')
inputPassword.send_keys(password)
signInBtn = d.find_element_by_id('signInSubmit-input')
signInBtn.click()
d.maximize_window()
で、macだったら同じ階層にlogin.commandみたいな感じでバッチを作成。
cd `dirname $0`
./login.py
exit
あとは ⌘+Spaceでspotlightを呼び出して、login.command呼び出せばブラウザ開いてログインしてくれます。
アカウント毎に上記のファイルを用意すればいい感じです。
だいぶ雑ですが、他にいい方法あれば教えてください。