LoginSignup
1
0

More than 3 years have passed since last update.

jqを使いながら、aws cliで取得した一時認証情報を環境変数に設定する

Posted at

はじめに

AWS CLIを使用してIAMロールを引き受ける方法は、公式ドキュメントの通り1ですが、コマンド結果から都度コピペで AWS_ACCESS_KEY_ID などの環境変数を設定するのは手間です。

本記事では、得られたjsonをjqでパースし、環境変数を設定する方法を説明します。

必要なもの

  • awscli
  • jq

AWS CloudShell には両方入っているので、とりあえず試すにはおすすめです。

おことわり

~/.aws/config を使うことでより簡単に設定できます2が、一時的な対応とかで必要になるケースがあり、本記事を作成しました。

手順

以下のbashスクリプトのとおりです。
ROLE_ARNSESSION_NAME を設定し実行するだけです。

# def var
ROLE_ARN=arn:aws:iam::${ACCOUNT_ID}:role/${ROLE_NAME}
SESSION_NAME=some-session

# command
eval $( 
  aws sts assume-role --role-arn $ROLE_ARN --role-session-name $SESSION_NAME \
  | jq -r '[
      "export AWS_ACCESS_KEY_ID=" + (.Credentials.AccessKeyId|tostring),
      "export AWS_SECRET_ACCESS_KEY=" + (.Credentials.SecretAccessKey|tostring),
      "export AWS_SESSION_TOKEN=" + (.Credentials.SessionToken|tostring)
    ]
    | join(";")
    '
)

正しく設定できているかは aws sts get-caller-identity で確認してください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0