AWS IAMのMFA設定~スマホを変えたとき~

aws-mfa-resetting-with-change-device

AWS IAMのMFA設定について、スマホを変えたり、紛失したりしたらどうしよう?また、AWSはデフォルトのルートアカウントに対し、IAMの初期推奨設定があり、リソースに対するクレジットカードの紐づけ管理やリソースグループ毎のIAMユーザー/グループ管理など、リソース管理は結構複雑で大事!念のため、MFAはMulti-Factor Authentication:多要素認証です。

GoogleとMicrosoftのiphoneアプリのAuthenticatorは、iphoneの機種を変えると、iphoneバックアップから2段階認証を勝手に引き継いでくれません。

スマホを変えた時のMFA再設定について

以前のスマホ、売る前に!スマホ替えの設定をしよう!

新スマホの設定は、まず、以前のスマホをwifiで使ってAWSにMFA経由でログインするのが簡単。新スマホにはGoogle AuthenticatorやMicrosoft Authenticatorなどのスマホアプリを事前に入れていおいてください。

以前のスマホで、

「IAM」⇒「ユーザー」⇒「ログインしているユーザーを選ぶ」⇒「認証情報」⇒「MFA デバイスの割り当て」⇒「MFA デバイスの無効化」

このあと、新しいMFAデバイス(新スマホ)を使ってMFA再設定を行う。

「IAM」⇒「ユーザー」⇒「ログインしているユーザーを選ぶ」⇒「認証情報」⇒「MFA デバイスの割り当て」⇒「仮想 MFA デバイス」

という感じ、あとはQRコードの読み込みなど、流れに従う。ユーザーのアクセス権限についての設定は別途おググりください。

ユーザー1つ(1人)に対して、2つのMFAデバイスを設定する事は出来ない。

MFAに使っているスマホを紛失した場合

以下URLからAWSへ連絡して指示に従う。

https://aws.amazon.com/forms/aws-mfa-support

ルートアカウントでAWSにログインしてみるという手もあるのかもしれません(試していないです)。ただ、IAM管理をしているということは、AWSルートアカウントのユーザーもMFA設定している可能性が高いので紐付いている電話番号のデバイスが無いとルートアカウントログイン出来ないので気をつけてください。

IAMユーザーを作った時にメモったり保管しておく項目

  • IAMユーザー名
  • IAMグループ名
  • アカウント設定の年月日
  • MFAのON/OFF
  • MFA ONならデバイスはどれか(MACアドレスなどで重複を避けて識別するといいかも)
  • AWSログインURL
  • アクセスキーID
  • シークレットアクセスキー(AWSベストプラクティスでは基本的に使わない、削除する)
  • (AWSログイン)パスワード

※IAMのグループによるリソース範囲もメモっておくべし。

AWS CodeCommitを使う時

AWS CodeCommit の SSH キー と AWS CodeCommit の HTTPS Git 認証情報 も保存したり、メモっておく。AWS CodeCommitはアクティブユーザが5人まで無料、無制限のリポジトリなどgithub有料アカウントのプライベートリポジトリに比べるとお得。

参考までに、AWS CodeCommitは、Amazon Simple Notification Service(SNS)(プッシュ方式のメッセージ送信)も連携して使える様にGUIで誘導してくれる。AWS CLIやIAM(ロール、ユーザー、グループ)のベストプラクティス模索など、学習や下準備の範囲が広がります、学習時間を多めに確保しておきましょう。Amazon リソースネーム (ARN)も出てきます。

発注元クライアント企業にIAMユーザーを発行する時

手順は上記「スマホを変えた時」と同じですが、発注元の担当者の方など、デバイスのMFA認証は相手に説明しながら設定する必要がある。

リソースに対するクレジットカード紐づけやAWSのルートアカウントを誰が持つのか(一般的にはAWS開発のベンダーが持つのかもしれないけど)、発注元担当者もしくは受注側担当者の退職時のことも考えておく必要が有る。

異なるIAMユーザーで同じIAMグループ内のクレジットカード登録/編集/削除が出来ます。

同じIAMグループ内であれば、ユーザーAが設定したクレジットカードを削除して、ユーザーBが別のクレジットカード登録して変更することもできる。

IAMロールは、AWSリソースに権限を付与するためのIAMオブジェクト。また、IAMユーザーはAWSへのアクセス権限を人、もしくはAWS以外のサーバに付与するためのIAMオブジェクト。

【AWS】IAMユーザーとIAMロールの違いを理解して適切に権限管理するより一部抜粋。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください