63483
aws cli を使う時に aws-google-auth と言うコマンドを使って  
Google GSuite アカウントから STS と言う仕組みを使って AWS Role に権限を切り替えているのですが

数日前から

```

    # aws-google-auth -p sts
    Google Password:
    File "/user/local/.pyenv/versions/3.7.5/lib/python3.7/site-packages/aws_google_auth/google.py", line 228, in do_login
        'name': 'ProfileInformation'
    AttributeError: 'NoneType' object has no attribute 'get'
    
```

と言うエラーが時々(3,4 回に 1 回程度)出ていて今日になってずっと出るようになって１度もログインに成功しません

うまく行く時は Google パスワード入力後  
MFA トークン入力を聞かれるのですがエラーが出る時はそれが聞かれません

ローカルの python アップデートとか pip install とか最近した覚えはなく

心あたりがあるとすれば最近社内でセキュリティ体制が強化されて外部への通信がプロキシ経由で監視されることになったせいでたびたび問題が起きているのと

あと Chrome がクッキーの挙動を変更するみたいな話もしてるのでその辺りが関係してたりするんでしょうか

* * *

エラーが出てる箇所のソースを読むと

```

            # Collect ProfileInformation, SessionState, signIn, and Password Challenge URL
            challenge_page = BeautifulSoup(sess.text, 'html.parser')
            try:
              profile_information = challenge_page.find('input', {
                  'name': 'ProfileInformation'
              }).get('value')
    
```

こんな感じになっていて HTML のパースに失敗してるようなのですが

<https://www.gitmemory.com/issue/cevoaustralia/aws-google-auth/147/552875865>

こちらの記事を読むと根本的な原因はリクエストするURL（のGETパラメータ）が間違っているせいみたいで  
`print(sess.url)`  
を挟んでみると TL=xxxxxxxxxxxxxxx と言う長いGETパラメータがついていて  
そこを６桁の認証トークンにしたURLに変更してブラウザでアクセスするとAWSコンソールに入ることができます

ただやりたいのはブラウザで AWS コンソールに入ることではなく  
aws cli を使うことなので aws-google-auth が動くようにしたいので  
原因に心当たりのある方いたら助けていただけないでしょうか

また aws-google-auth 以外でも  
Google GSuite アカウントから aws cli を叩けるようにする方法があれば教えていただきたいです

OS は MacOS です
CC BY-SA 4.0
2020-02-28T03:32:01.533
63426
2020-03-03T05:02:34.747
2020-03-03T05:02:34.747
32986
question
aws aws-cli gsuite
aws-google-auth で２段階認証前にエラーが出る
ちょうどトラブルのあった日に新コミットが来ていたので pip install -U したら治りました

<https://github.com/cevoaustralia/aws-google-
auth/commit/6c5a9d6fb90ad8e71fc1a86c48c109944cbcedec>

'Fixes for new google login page' となってるので  
Google側のページが変更になったせいみたいです
CC BY-SA 4.0
2020-03-02T02:10:55.247
63483
2020-03-02T02:10:55.247
63426
answer