AWSCLIとJQで一時的な認証情報をkey=value形式で取得する

方法

AWSCLIで取得してjqで加工して保存する。
コマンドの実行はすべてコマンドプロンプトで実行するよう。 結果はそれぞれのシェルに貼り付ける。

exportなし

実行

cmd
CMD
aws sts get-session-token --duration-seconds 3600 | jq -r ".Credentials | .[\"AWS_ACCESS_KEY_ID\"]=.AccessKeyId | .[\"AWS_SECRET_ACCESS_KEY\"]=.SecretAccessKey | .[\"AWS_SESSION_TOKEN\"]=.SessionToken | del(.AccessKeyId,.SecretAccessKey,.SessionToken,.Expiration) | to_entries[] | \"\(.key)=\(.value)\""

結果

cmd
TXT
AWS_ACCESS_KEY_ID=XXXX
AWS_SECRET_ACCESS_KEY=YYYY
AWS_SESSION_TOKEN=ZZZZ

Shell用

実行

cmd(export)
CMD
aws sts get-session-token --duration-seconds 3600 | jq -r ".Credentials | .[\"export AWS_ACCESS_KEY_ID\"]=.AccessKeyId | .[\"export AWS_SECRET_ACCESS_KEY\"]=.SecretAccessKey | .[\"export AWS_SESSION_TOKEN\"]=.SessionToken | del(.AccessKeyId,.SecretAccessKey,.SessionToken,.Expiration) | to_entries[] | \"\(.key)=\(.value)\""

結果

console
TXT
export AWS_ACCESS_KEY_ID=XXXX
export AWS_SECRET_ACCESS_KEY=YYYY
export AWS_SESSION_TOKEN=ZZZZ

コマンドプロンプト

実行

cmd(set)
CMD
aws sts get-session-token --duration-seconds 3600 | jq -r ".Credentials | .[\"set AWS_ACCESS_KEY_ID\"]=.AccessKeyId | .[\"set AWS_SECRET_ACCESS_KEY\"]=.SecretAccessKey | .[\"set AWS_SESSION_TOKEN\"]=.SessionToken | del(.AccessKeyId,.SecretAccessKey,.SessionToken,.Expiration) | to_entries[] | \"\(.key)=\(.value)\""

結果

console
TXT
set AWS_ACCESS_KEY_ID=XXXX
set AWS_SECRET_ACCESS_KEY=YYYY
set AWS_SESSION_TOKEN=ZZZZ

PowerShell

実行

cmd(ps)
POWERSHELL
aws sts get-session-token --duration-seconds 3600 | jq -r ".Credentials | .[\"$Env:AWS_ACCESS_KEY_ID\"]=.AccessKeyId | .[\"$Env:AWS_SECRET_ACCESS_KEY\"]=.SecretAccessKey | .[\"$Env:AWS_SESSION_TOKEN\"]=.SessionToken | del(.AccessKeyId,.SecretAccessKey,.SessionToken,.Expiration) | to_entries[] | \"\(.key)=\\\"\(.value)\\\"\""

結果

console
TXT
$Env:AWS_ACCESS_KEY_ID="XXXX"
$Env:AWS_SECRET_ACCESS_KEY="YYYY"
$Env:AWS_SESSION_TOKEN="ZZZZ"
szk302

この記事の著者

記事一覧へ
記事を検索

タイトル・タグ・記事本文から検索できます。

例えばAWSTerraformPowerShellGit