質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • AWS(Amazon Web Services)

    2004questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • セキュリティー

    464questions

    このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

【AWS】IAMユーザ本人にMFAを管理してもらうためのIAMポリシー設定方法

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 684

tmizuma

score 45

Amazon MFAを使用してマネジメントコンソールへの二段階認証の運用を実現したいと考えています。
プロジェクトに参加している全ての開発者に対し、適切な権限を割り振った個別のアカウントを払い出す予定です。

開発者が各自でMFAのデバイス登録を行うためにはIAMFullAccessポリシーを付与する必要があるのですが、このポリシーを付与してしまうと、他のユーザの権限を操作できてしまいます。

IAMFullAccessポリシーを付与せずに開発者各自にMFAデバイス登録を行わせる方法はあるでしょうか?
以下URLを参考に作成したポリシーを開発者のアカウントに付与しましたが、添付ファイルのエラーが表示されてしまいます。

http://dev.classmethod.jp/cloud/aws/iam-mfa-policy/

イメージ説明

行った手順としては、

1.IAM > ポリシーの作成 > 独自ポリシーの作成 から上記サイトに記載のあるポリシードキュメントをコピー
2.作成したポリシーを対象ユーザに割り振る
3.対象ユーザでマネジメントコンソールにログインし、MFAのデバイス登録ができることを確認 → 失敗(添付画像)

IAMユーザ本人にMFAを管理してもらうためのIAMポリシー設定方法についてご教授いただければ幸いです。

[追記]
添付画像の左メニュー > ユーザー > 認証情報 から「MFAデバイスの割り当て」を選択しようとすると権限が不足している旨のエラーが表示されます。

![イメージ説明](037e553e77d50d6cdcb429f43bd00dcd.png)

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • batchi

    2017/02/16 14:46

    添付された画像の画面において、通常であれば左側のペインに「ダッシュボード」「グループ」「ユーザー」「ロール」「ポリシー」…といった項目が並んでいるかと思います。対象ユーザでログインした際にはそういった項目も表示されないでしょうか?(もしNoであれば、「ユーザー」から自身のIAMユーザーを選択し、MFA設定が行えるのでは…と考えています。)

    キャンセル

回答 1

checkベストアンサー

0

[追記] 
添付画像の左メニュー > ユーザー > 認証情報 から「MFAデバイスの割り当て」を選択しようとすると権限が不足している旨のエラーが表示されます。

こちらは権限不足というよりは、「そのIAMユーザーに対するMFA設定はすでに存在している」というエラーかと思います。

参考にされていたページにも下記の記述がありますので、同様の事象ではないか確認いただけますでしょうか。

なお、MFAを有効化してからListMFADevicesの許可を削除してしまうと、「Management Console上ではMFAが関連づけられていないように見えるが、じつは関連づけられている」という最高の状態になってハマりますので、注意してください。「MFADevice entity at the same path and name already exists.」というエラーが表示されたら、その状況に陥っていないか確認してください。

上記エラーが出る原因として、下記の2種があるかと考えています。

●すでにMFA設定が存在している
●MFA設定を参照するための権限設定が誤っている

前者は、対象のIAMユーザーではなく管理者用のIAMなどで確認が取れるかと思います。

前者でなければ、後者に関しては「ListMFADevices」というAPIが関係してくるようですので、
参考ページの27-38行目のあたりの設定が誤っていないか確認いただけますでしょうか。
(http://dev.classmethod.jp/cloud/aws/iam-mfa-policy/)

        {
            "Effect": "Allow",
            "Action": [
                "iam:EnableMFADevice",
                "iam:DeactivateMFADevice",
                "iam:ResyncMFADevice",
                "iam:ListMFADevices"
            ],
            "Resource": [
                "arn:aws:iam::012345678901:user/${aws:username}"
            ]
        },

追記

自身でも確認してみましたが、問題なくMFAの設定が可能でした。

  • テストポリシー作成
  • ポリシーの中身は、後述"ポリシー詳細"の[012345678901]を自身のアカウント番号に置き換えたもの
  • IAMユーザー「test-user」作成
  • 「test-user」にテストポリシーのみをアタッチ
  • 「test-user」によるサインイン
  • [IAM]→[ユーザー]→[test-user]→[認証情報]→[MFAデバイスの割り当て]
  • 仮想MFAデバイスを選択し、Google Authenticatorの登録実施
  • 「MFA デバイスは正常に関連付けられました。」ダイアログ確認
  • サインアウト→再度サインイン時にMFAが求められ、無事サインインできることを確認

ポリシー詳細

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "NotAction": "iam:*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListUsers"
            ],
            "Resource": [
                "arn:aws:iam::012345678901:user/"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListVirtualMFADevices"
            ],
            "Resource": [
                "arn:aws:iam::012345678901:mfa/"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:EnableMFADevice",
                "iam:DeactivateMFADevice",
                "iam:ResyncMFADevice",
                "iam:ListMFADevices"
            ],
            "Resource": [
                "arn:aws:iam::012345678901:user/${aws:username}"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:DeleteVirtualMFADevice",
                "iam:CreateVirtualMFADevice"
            ],
            "Resource": [
                "arn:aws:iam::012345678901:mfa/${aws:username}"
            ]
        }
    ]
}

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/21 11:21

    詳細なご回答ありがとうございます!
    添付いただいたポリシーで無事MFAデバイスの登録を行うことができました。

    エラーの原因を憶測で判断するのではなくきちんとログを読むことが大切ですね..
    本当にありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    xcodeでの画面サイズ変更方法

    swiftでサンプルコードを写しているのですが、参考書を今まで放置してたのでxcodeのバージョンが違うので画面サイズ変更の方法がわからないです。 simulatorでの表示画面

  • 解決済

    AWS(amazon web service)でサーバーをコピーしたい

    AWSにアカウントをもっていまして、そのアカウントでLINUXサーバーを2こ動かしているのですが、そのうち一個をコピーして同じサーバをもうひとつ作りたいのですが、 サーバーは

  • 解決済

    Blender Game Engineでマテリアルを透過したい

    Blenderでゲーム開発をしようとしているものです。 Blender Renderで透過処理したマテリアルをBlender Gameに反映させたいと思っているのですが、透過でき

  • 受付中

    ER図について

    つぶやきアプリを作っているのですが、 ER図を作るとする例えばどんなものがありますか?? サンプル程度でいいので教えていただきたいです

  • 受付中

    Monaca プッシュ通知

    Monaca マネジメントAPIを用いて、外部サーバーより特定のデバイス(今回はデバッガー)にプッシュ通知しようとしております。 以下の流れで試しているのですが、どうしてもエラー

  • 解決済

    pycharmのpython console部分の色の変更

    プログラムには関係ないんですが・・・ 長時間PCの画面を見てると目が疲れてしまうので、色を変えてみようと思って 色を変更してみたのですが、python consoleの部分の色

  • 解決済

    vb2017でexcel2016操作

    vb2017を使っています。 communityです。 excel2016を開いてセルのデータを読み込みたいと思っています。 参考にしているサイトです。 http://d.

  • 解決済

    AWS/EC2/RDS/ELB/nginx/unicornでデプロイ。

     参考記事 http://qiita.com/iwaseasahi/items/d5f2ef3eac5e349a8f7d 5まで行いました。  現在の問題。 ELB(ロードバラ

同じタグがついた質問を見る

  • AWS(Amazon Web Services)

    2004questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

  • セキュリティー

    464questions

    このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。