はじめに
ClineでBedrockのclaude-3.7-sonnetを利用しようとしたがうまくいかず、特にMFAをつけたままでアクセスするのに苦戦したため共有します。
AWS_SESSION_TOKENでも接続できますが、すぐに期限切れしてしまい使い勝手が悪いため他の方法を探しました。また、MFAを使わない場合やSSOで認証する場合は以下に詳しかったです。
TL;DR
MFAで持続的なセッションが保てるよう、認証にaws-vaultを使います。Clineから認証できるよう、~/.aws/configにcredential_processとmfa_serialを設定します。
前提
以下の準備をお願いいたします。
- VS CodeとClineのセットアップ(今回はWindows版として解説)
- AWS ConsoleにログインするためのPIN方式(Google Authenticatorなど)のMFAデバイス
- MFAデバイス(番号認証)の
ARN名 -
AWS CLIとaws-vaultのインストール(以下で解説します)
MFAのARN名は、AWS Consoleの右上をクリック→[セキュリティ認証情報]→[多要素認証(MFA)]→識別子から確認できます。
今回はWindows上でVS Codeを利用する場合の説明となりますが、Remote ConnectionでWSLに接続している場合はWSL上にaws-cliとaws-vaultのインストールが必要です。トラブルシューティングの項目も参照してください。
AWS CLI/aws-vaultのインストール
すでにインストールされている方は次節にスキップしてください。
まずPowerShellの管理者ウインドウを起動します。
次にAWS CLIをインストールします。以下のドキュメントの通りにインストールを行います。
2025/08/08現在では以下でインストールできます。
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
インストールしたら以下のように確認します。
aws --version # 動作確認
aws-cli/2.19.1 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
次に、別の新しい管理ウインドウでChocolateyのchocoコマンドをインストールします。以下のドキュメントにインストール用のワンライナーがあるので利用します。
2025/08/08現在では以下のワンライナーでインストール可能です。
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
インストールが終わったら確認します。
choco --version # 動作確認
chocoコマンドでaws-vaultをインストールします。
choco install aws-vault
aws-vault --version # 動作確認
aws-vault用のプロファイルを作成する
適当な名前でaws-vault用のプロファイルを作成します。
aws-vault add mybedrock # 名前は任意
{$HOME}/.aws/configに[profile mybedrock]という項目ができるので、以下の通りにcredential_processとmfa_serialを設定します。regionも設定します。
[profile mybedrock]
credential_process=aws-vault exec --json --duration=15h mybedrock
region=us-east-1
mfa_serial=arn:aws:iam::012345678901:mfa/my-smartphone
動作確認
code .
VS Codeが起動するので、Clineを表示し、右上の歯車(⚙)マークを押します。設定画面が表示されたら以下の通りにセットします。
-
API Provider:AWS Bedrock -
AWS Profileを選択 -
AWS Profile Nameにプロファイル名(今回の例ではmybedrock) -
AWS Regionに適切なリージョン(us-east-1など)
右上の「Done」を押すと設定が反映されるので、テストします。
初回やAWS_SESSION_TOKENが期限切れしたタイミングでMFAデバイスのPINコード入力を促されますので、都度入力すると使えるようになります。
トラブルシューティング
うまく動かない時は、VS CodeのAWS Toolkit拡張機能をインストールし、作成したプロファイル(mybedrock)で接続できるかどうかをチェックすると良いでしょう。拡張機能のログからエラーメッセージが確認できるのでトラブルシューティングに役立ちます。
よくあるのが環境変数 AWS_VAULT がセットされていることで起こるエラーです。これはPowerShellウインドウを立ち上げ直すことで解消します。
Remote Connectを利用する場合
WSLなどに接続している場合はWSLへaws cliとaws-vaultのインストールが必要です。認証用のウインドウが開かず、うまく接続できない場合があります。その場合はWSLのコマンドラインから
aws-vault exec --json --duration=15h mybedrock -- aws s3 ls
などとして一度セッションを作ってから接続するとうまくいきます。
エラーが出る場合
aws-vault: error: Specified keyring backend not available, try --help
というエラーが出る場合、passアプリケーションをインストールしていない可能性があります。インストールすれば回避できるようです。
また--backend=fileオプションをつけることで認証情報をファイルにいれて回避できますが、パスフレーズを聞かれるため、環境変数に認証情報を入れる必要があるでしょう。
参考:
