[AWS]セキュアにIAMユーザのMFA有効化する手順2017年度版

2017.01.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

コンニチハ、千葉です。

過去エントリーにも、MFA有効化手順がありますが、AWS画面が変わっていることやMFA有効化のためのIAMポリシーをアタッチしたもっとセキュアに利用するための手順としてまとめます。

用意するもの

  • AWSアカウント
  • MFAデバイス※後で説明

手順サマリ

  • MFAデバイスの用意
  • IAMポリシーのアタッチ(Administrator権限以外)
  • IAMユーザのMFA有効化

MFAデバイスの用意

まずは、MFAデバイスを用意します。複数種類があるので、適切なデバイスを選択します。

https://aws.amazon.com/jp/iam/details/mfa/#Virtual_MFA_Applications

仮想デバイス

Android、iPhone、 Windows Phone、Blackberry上で動作するソフトウェアでの利用となります。 対応しているアプリケーション表があるので、アプリをダウンロードしインストールしておきます。

https://aws.amazon.com/jp/iam/details/mfa/?nc1=h_ls#仮想MFAアプリケーション

ハードウェアデバイスはキーホルダータイプ

Amazonで購入できます。

SMSテキストメッセージMFA

SMSテキストメッセージを利用した認証となります。 現在プレビュー中ですが、申請すれば使えます。

http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_mfa_enable_sms.html

MFA有効化用のIAMポリシーのアタッチ

※この手順は、Administratorの権限がある場合はスキップでok

Administrator権限があるIAMユーザーであれば、自分や自分以外のIAMユーザのMFAを有効化できます。この手順は、IAMユーザーへの操作権限がないが、自分のアカウントのMFAを有効化し自信のMFAデバイスを有効化するための手順となります。

この場合は、ログインした自信のIAMユーザーのMFAのみ有効化することができるような権限を付与する必要があります。

インラインポリシーとして以下の定義をIAMグループに定義します。 https://console.aws.amazon.com/iam/home?region=ap-northeast-1#/groups

有効化したいIAMグループを選択します。すると以下の画面が表示されるので、インラインポリシーを追加します。

20170120-mfa-enable

※「account-id-without-hyphens」は自信のアカウントIDにて置換します。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowUsersToCreateEnableResyncDeleteTheirOwnVirtualMFADevice",
      "Effect": "Allow",
      "Action": [
        "iam:CreateVirtualMFADevice",
        "iam:EnableMFADevice",
        "iam:ResyncMFADevice",
        "iam:DeleteVirtualMFADevice"
      ],
      "Resource": [
        "arn:aws:iam::account-id-without-hyphens:mfa/${aws:username}",
        "arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
      ]
    },
    {
      "Sid": "AllowUsersToDeactivateTheirOwnVirtualMFADevice",
      "Effect": "Allow",
      "Action": [
        "iam:DeactivateMFADevice"
      ],
      "Resource": [
        "arn:aws:iam::account-id-without-hyphens:mfa/${aws:username}",
        "arn:aws:iam::account-id-without-hyphens:user/${aws:username}"
      ],
      "Condition": {
        "Bool": {
          "aws:MultiFactorAuthPresent": true
        }
      }
    },
    {
      "Sid": "AllowUsersToListMFADevicesandUsersForConsole",
      "Effect": "Allow",
      "Action": [
        "iam:ListMFADevices",
        "iam:ListVirtualMFADevices",
        "iam:ListUsers"
      ],
      "Resource": "*"
    }
  ]
}

MFAの有効化

これで下準備が完了したので、MFAを有効化します。仮想MFAデバイスを利用することが多いと思うので、仮想MFAデバイスの手順となります。

まずはAWSへログインし、IAMユーザーの画面へ移動します。 https://console.aws.amazon.com/iam/home?region=ap-northeast-1#/users

ユーザーを選択

20170120-mfa-enable-2

認証情報 > MFAデバイスの割り当ての鉛筆マークをクリック

20170120-mfa-enable-3

仮想MFAデバイスを選択

20170120-mfa-enable-4

次へ

20170120-mfa-enable-5

QRコードが出てくるのでMFA仮想デバイスアプリを起動し、読み込みます。 アプリに認証コードが出てくるので、2パターン入力し、MFAを有効化します。

20170120-mfa-enable-6

まとめ

IAMユーザーを利用する場合は、かならずMFAを有効化しておきましょう!

参考

http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html