📲
sts get-session-tokenを実行し、トークンを環境変数に設定するPowerShellスクリプト
概要
aws sts get-session-token
を実行した後、セッションの設定をするのが煩わしいので、
PowerShell スクリプトを Copilot に組んでもらいました。
PowerShell スクリプト
aws_start_session.ps1
param(
[Parameter(Mandatory=$true)]
[ValidatePattern("^\d{6}$")]
[string]$SixDigitNumber
)
# MFAデバイスのARNを定数として定義
$MfaDeviceArn = "arn:aws:iam::********:mfa/*****"
# AWS CLIを使用してセッショントークンを取得
$session = aws sts get-session-token --serial-number $MfaDeviceArn --token-code $SixDigitNumber --output json | ConvertFrom-Json
# 環境変数を設定
$env:AWS_ACCESS_KEY_ID = $session.Credentials.AccessKeyId
$env:AWS_SECRET_ACCESS_KEY = $session.Credentials.SecretAccessKey
$env:AWS_SESSION_TOKEN = $session.Credentials.SessionToken
使い方
スクリプトのファイル名をaws_start_session.ps1
とした時、以下のように使用
.\aws_start_session.ps1 ******(MFAの確認コード)
エラーが出なければ以降、PowerShell を閉じるまで取得したセッションで
aws cli を使用できます
改善点
以下を実装することでより使いやすくなると考えています
- 引数で profile を指定できるようにする
-
iam get-user
、iam list-mfa-devices
を組み合わせて自身の MFA の ARN を取得するようにする - エラーメッセージの詳細化
Discussion