【AWS・credential hepler】get session tokenを発行する方法(MFA認証・多要素認証)
前提.session tokenに設定したいユーザーに多要素認証が設定されている事
「IAM」>「ユーザー」>「(ユーザー名選択)」>「セキュリティ認証情報」>「多要素認証(MFA)」欄
↑図のように、「識別子」欄に設定されていればOK。
手順1.~.aws\credentialsを編集する
手順2.MFAトークンを取得する
まず、コマンドプロンプトを開く。
次に、下記コマンドを打つ。
これに成功すると下記の結果が得られます。
{
"Credentials": {
"AccessKeyId": "XXXXXXXXXXXX",
"SecretAccessKey": "YYYYYYYYYYYYYY",
"SessionToken": "ZZZZZZZZZZZZZZZZZZZZZZZZ",
"Expiration": "yyyy-mm-dd"
}
}
補足.エラーが出た場合
手順3.MFAトークンをcredentialsファイル内に書き込む
これでMFA認証コードのSessionToken化は完了です。
具体的な活用例
上記で設定したSessionTokenは実際、どのように利用されるのか。一例を以下に示します。
★の部分をご覧ください。
手順3で指定したcredentialsの名称が引数に渡されています。
AWSマネジメントコンソール上で作業するなら今回の設定の効果はあまり感じられませんが、例えばこういった形でコマンドからEC2を起動させたりなどする場合や、credential helperが使えないなどの場合に、今回の手法であるSessionTokenが活用できます。
有効期限を延ばす方法
下記公式には「 --duration-seconds」を付与することで有効期限を伸ばすことができるとありました。
【注意事項】
"--duration-seconds"を設定しない場合の有効期限は4時間後まで。
設定するとその秒数後まで有効期限が延びるが、最大でも129600秒(1日と12時間後)までしか設定できない。
129600以上設定しようとするとエラーになる。
An error occurred(ValidationError) when calling the GetSessionToken operation: 1. validation error detected: Value '1444000' at 'durationSeconds' failed to satisfy constraint: Member must have value less than or equal to 129600.
【MFA トークンを使用して、AWS CLI を通じて AWS リソースへのアクセスを認証するにはどうすればよいですか?】
もしかしたら企業のIT部門などで有効期限を予め固定されているかもしれないので、もしできない場合は所属組織のIT管理者に連絡してみるといいかもしれません。
目次へ戻る
この記事が気に入ったらサポートをしてみませんか?