【ロックアウト】Heroku 二段階認証のコード紛失【備忘録】


はじめに

Heroku をお使いのみなさんは二段階認証を設定していますか?
セキュリティを強化するためには、設定していた方がいいと思います。
しかし、強化したが故にログインできなくロックアウトする方もいると思います。
(ただセキュリティ上絶対に二段階認証を設定しておいた方がいいので、設定しましょう)

今回はロックアウトしたときのメモを残しておきます。

目次

  1. そもそものそもそも二段階認証はどうやって設定し運用するのか?
  2. そもそもなぜロックアウトしたのか?
  3. どのようにして解除したのか?
  4. 今後の対策

そもそものそもそも二段階認証はどうやって設定し運用するのか?

簡単に説明するとスマートフォンなどで二段階認証コード作成アプリをインストールして、Heroku の Account Setting より QRコードを発行し、読み取ります。するとワンタイムパスワードがタイムスタンプ認証方式で発行されます。

そちらで発行されたパスワードを、通常ログイン後の画面でログインの度に入力します。

詳しい設定はこちらを参照してください。

そもそもなぜロックアウトしたのか?

私もアプリを使用し、パスワードを発行していたのですが、アプリ側のバグでパスワードが2つずつ表示されてしまっていました。

そのときの私は「うわぁ、なんか2つあるぅ。邪魔やし1つ消したろ〜(っ’ヮ’c)ウゥッヒョオアアァアアアァ」と思い1つずつ消しました。
そのときは問題なく表示されていたのですが、次の日に確認すると

「きっ、消えてる。。。」

なんと全てのワンタイムパスワードが消えていました。。。OMG

どのようにして解除したのか?

先に結論を書いてしまうとサポートセンターにメールを送りました。。。
こちらに載っているアドレスにメールを送りました。。。

1、2回やりとりをすると、セキュリティのために本人確認の質問が送られてきてそれに返信すると、サポートセンター側でリカバリーコードを発行し送信してくれます。(私の場合サポートセンターの営業日の都合上5日間ぐらいかかってしまいましたが、迅速に対応していただけました。)

本人確認の質問(英文)

We can provide you with a temporary recovery code so you can access your account. 
However, account security is not something we take lightly.
 As such, we would need you to verify all of the following information before pursuing this request further.

・If your account is connected to GitHub, please provide:
    ・the name of the GitHub account
    ・the app or pipeline name of a connected GitHub repository
    ・the repository name
・Your billing zip/postal code
・The invoice date, amount & number (#) for 2 of the last 6 months

Note if you are not billed on your personal account, please provide the above billing info for your team account instead.

本人確認の質問(和訳)

一時的なリカバリーコードをご提供しますので、アカウントにアクセスできます。
しかし、アカウントのセキュリティは、私たちが軽視するものではありません。
そのため、このリクエストを進める前に、以下の情報をすべて確認していただく必要があります。

・お客様のアカウントがGitHubに接続されている場合は、以下の情報を提供してください。
    ・GitHubアカウントの名前
    ・接続されているGitHubリポジトリのアプリ名またはパイプライン名
    ・リポジトリ名
・請求先の郵便番号
・過去6ヶ月間のうち2ヶ月分の請求書の日付、金額、番号(#)。

個人アカウントで請求書が発行されていない場合は、代わりにチームアカウントの上記の請求情報をご記入ください。

余談ですが先程のリンクのページが日本語だったので、日本のサポートセンターのメールアドレスなのかと思い、最初に送信したメールは全文日本語で送信したのですが、英語で送信してくださいと返信がきました。

今後の対策

対策と言いますか、以下をしっかりしておけば今回のロックアウトは起こらなかったので、まだやってない方は是非一緒に設定しましょう。

  • リカバリーコードを発行する
    • こちらは一度しか使用できないので、使用した際は忘れずにもう一度発行しましょう。
  • SMS 番号の設定
    • こちらを設定していると、SMS 経由で二段階認証コードを発行できるので問題ない方は SMS 番号を登録しましょう。