💭
VS CodeのRemote - SSHでAWSの環境変数を使う
VS CodeのRemote - SSHでEC2にSSM経由で接続するときに、~/.ssh/configを以下のようにしている。
Host myHost
HostName i-0fd452b07ex53a96f
Port 22
IdentityFile ~/.ssh/aws.pem
User ubuntu
ProxyCommand /bin/sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
これで、ターミナルからはssh myHostできるようになる。
一方、VS CodeのRemote - SSHを使う場合は、環境変数をみてくれないので、AWS_SESSION_TOKENなどの一時的な情報を環境変数に設定して使っている場合は、認証ができない。VS Codeに設定しないといけない。
~/Library/Application\ Support/Code/User/settings.jsonに以下を追加する。
"terminal.integrated.env.osx": {
"AWS_ACCESS_KEY_ID": "${env:AWS_ACCESS_KEY_ID}",
"AWS_SECRET_ACCESS_KEY": "${env:AWS_SECRET_ACCESS_KEY}",
"AWS_SESSION_TOKEN": "${env:AWS_SESSION_TOKEN}",
"AWS_DEFAULT_REGION": "${env:AWS_DEFAULT_REGION}"
}
これで、一時的な情報を使っていても、EC2にRemote - SSHで接続できるようになった。
Discussion