スポンサーリンク

【AWS】AWS CLI使用時のIAMユーザーにMFA認証を適用させる

【AWS】AWS CLI使用時の IAMユーザーにMFA認証を 適用させるAWS
【AWS】AWS CLI使用時の IAMユーザーにMFA認証を 適用させる
スポンサーリンク

動作環境

OSParott OS
バージョン5.3 Electro Ara
仮想化ソフトOracle VM VirtualBox
動作環境

前提条件

AWS CLIをインストールしていること。

IAMで多要素認証(MFA)の設定

IAMに移動してユーザーのセキュリティ認証情報を選択

MFAデバイスの割り当て

デバイス名を入力、MFAデバイスを選択。任意ですが今回はスマートフォンを選択。

QRコードを表示してスマートフォンで読み取る。スマートフォンに表示されたMFAコードを入力。

MFAデバイスの割り当て完了。識別子はAWS CLI認証情報の設定で使用します。

IAMポリシー作成

MFAルールを作成していきます。「MFA認証していない時拒否する」というルールが必要。

AWS re: POSTを参考にしました。※AWS が管理する Q&A サービス

AWS CLI を使用する IAM ユーザーに MFA 認証を適用する
AWS Identity and Access Management (IAM) ユーザーに対し、AWS のサービスへのアクセスを制限する多要素認証 (MFA) 条件ポリシーを作成しました。このポリシーは AWS マネジメントコンソールでは機能しますが、AWS Command Line Interface (AWS C...

ポリシーの作成

ActionとResourceは全てを指定にしていますが、要件によって変更する。

aws:MultiFactorAuthPresentキーが含まれていない場合、拒否する。

ポリシーエディタ

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "",
            "Effect": "Deny",
            "Action": [
                "*"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            }
        }
    ]
}

JSON → ポリシーエディタを記述する。

ポリシーの名前を入力して作成する。※名前は任意

後はIAMグループに作成したIAMポリシーをアタッチしてIAMユーザをIAMグループに追加すれば適用されます。

AWS CLI

AWS CLIコマンドを実行してGetSessionTokenAPIでIAMユーザーの一時的な認証情報を取得します。

MFAを利用したAWS CLIでのアクセス認証の設定

AWS CLI 経由で MFA を使用してアクセスを認証する
MFA トークンを使用して、AWS コマンドラインインターフェイス (AWS CLI) で AWS リソースへのアクセスを認証したいと考えています。

GetSessionTokenのoptionについて

get-session-token — AWS CLI 2.15.58 Command Reference

–duration-secondsで秒数を指定 21600で6時間、認証可能

–serial-number MFAデバイス割り当ての識別子

–token-code スマートフォンに表示された6桁のコードを記入

一時的な認証情報を取得するために以下のコマンドを実行

aws sts get-session-token --duration-seconds 21600 --serial-number arn:aws:iam::xxxxxxxxxxxx:mfa/ユーザ名 --token-code xxxxxx

以下の認証情報を取得できます。

MFAユーザーのプロファイルを作成する。※mfa-userにしていますが、任意の名前でOK

aws configure --profile mfa-user

認証情報の設定ファイルの階層に移動

cd ~/.aws

認証情報の設定ファイルを開く

vi credentials

認証情報の設定ファイルに取得した一時的な認証情報を追記する。

[mfa-user]
aws_access_key_id = xxxxxxxxxxxxx
aws_secret_access_key = xxxxxxxxxxxxx
aws_session_token = xxxxxxxxxxxxxxxxxx

AWS CLIでコマンドが実行可能となります。※S3を許可している場合の例

認証情報の有効期限が切れた場合は以下のエラーが出力される。

タイトルとURLをコピーしました