AshwinはCLI経由でMFAを使用してAWSのリソースにアクセスするための認証を行う
MFA にアクセスするために
CLIを使用したAWSリソース

authenticate-mfa-cli-ashwin

AWS CLI経由でAWSリソースへのアクセスを認証するには、どのようにMFAトークンを使用したらよいですか?

多要素認証デバイス(MFA)を使ってお客様のアカウントとリソースを保護することは、最も良い方法です。MFAデバイスを使いながらAWS Command Line Interface(CLI)を使用してリソースとやりとりをしたければ、一時的なセッション トークンを作成しなければなりません。

AWS CLIの最新バージョンをインストールして設定した後、AWS CLI コマンドの sts get-session-token コマンドを実行します。変数はお客様のアカウント、リソース、そしてMFAデバイスの情報に置き換えてください。

$ aws sts get-session-token --serial-number arn-of-the-mfa-device --token-code code-from-token

一時的な認証情報と、一時的な認証情報の有効期限(初期値では12時間)とを、以下の形式で受け取ります。

{
"Credentials": {
    "SecretAccessKey": "secret-access-key",
    "SessionToken": "temporary-session-token",
    "Expiration": "expiration-date-time",
    "AccessKeyId": "access-key-id"
    }
}

ひとこと 同じコマンド中で--duration-seconds オプションを使用することで、有効期限(秒)を指定できます。有効期限は900秒(15分)から129600秒(36時間)の範囲で指定できます。

環境変数を使った一時的な認証情報を使用する

(Linuxの場合)以下のコマンドを使う場合に、変数を環境変数にエクスポートして一時的な認証情報を使用することができます。

$ export AWS_ACCESS_KEY_ID=<Access-Key-as-in-Previous-Output>
$ export AWS_SECRET_ACCESS_KEY=<Secret-Access-Key-as-in-Previous-Output>
$ export AWS_SESSION_TOKEN=<Session-Token-as-in-Previous-Output>

Windowsの場合は、代わりに以下のコマンドを使用できます。

> set AWS_ACCESS_KEY_ID=<Access-Key-as-in-Previous-Output>
> set AWS_SECRET_ACCESS_KEY=<Secret-Access-Key-as-in-Previous-Output>
> set AWS_SESSION_TOKEN=<Session-Token-as-in-Previous-Output>

名前付きのプロファイルで一時的な認証情報を使用する

名前付きのプロファイルを使って、どのコマンドがMFA認証を必要とするのかを指定することもできます。そのためには、ユーザーのホーム ディレクトリの.awsフォルダーにある認証情報ファイルを編集し、MFAで認証されたコマンドを発行するために 新しいプロファイル構成を追加 します。ここでは、プロファイル構成の例を示します。

[profile-name]
output = json
region = us-east-1
aws_access_key_id = <Access-key-as-in-returned-output>
aws_secret_access_key = <Secret-access-key-as-in-returned-output>
aws_session_token = <Session-Token-as-in-returned-output>

aws configure コマンドを使用してAWS CLIが構成されている場合は、デフォルトの構成があります。デフォルトの構成は、MFA認証を必要としないコマンドに使用されます。

ひとこと AWS CLIで作成したコマンドを認証するためにプロファイルを使用する場合は、 --profile profile-name を指定して、呼び出しがMFAにより認証されたことを確実にしてください。

これらの認証情報の有効期限が切れたときは、 get-session-token コマンドを再実行して、戻ってきた値を環境変数またはプロファイル構成にエクスポートしてください。有効期限が切れているかどうかをチェックし再認証を促すようなスクリプトを実行するか、バックグラウンドのcronジョブで実行することを検討すると良いでしょう。

IAMポリシーでaws:MultiFactorAuthPresentまたはaws:MultiFactorAuthAgeの条件を使うと、特定のAPIアクションを実行するときにユーザーがMFAで認証することを要求することができます。


このページは役に立ちましたか? はい | いいえ

AWS サポートナリッジセンターに戻る

サポートが必要ですか?AWS サポートセンターをご覧ください。

公開日: 2017 年 01 月 10 日

更新: 2017 年 06 月 09 日