0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Bedrock+MFAでClineを利用する

Last updated at Posted at 2025-04-14

はじめに

ClineでBedrockのclaude-3.7-sonnetを利用しようとしたがうまくいかず、特にMFAをつけたままでアクセスするのに苦戦したため共有します。

AWS_SESSION_TOKENでも接続できますが、すぐに期限切れしてしまい使い勝手が悪いため他の方法を探しました。また、MFAを使わない場合やSSOで認証する場合は以下に詳しかったです。

TL;DR

MFAで持続的なセッションが保てるよう、認証にaws-vaultを使います。Clineから認証できるよう、~/.aws/configcredential_processmfa_serialを設定します。

前提

以下の準備をお願いいたします。

  • VS CodeとClineのセットアップ(今回はWindows版として解説)
  • AWS ConsoleにログインするためのPIN方式(Google Authenticatorなど)のMFAデバイス
  • MFAデバイスのARN
  • AWS CLIaws-vaultのインストール(以下で解説します)

MFAのARN名は、AWS Consoleの右上をクリック→[セキュリティ認証情報]→[多要素認証(MFA)]から確認できます。

今回はWindows上でVS Codeを利用する場合の説明となりますが、Remote ConnectionでWSLに接続している場合はWSL上にaws-cliaws-vaultのインストールが必要です。トラブルシューティングの項目も参照してください。

AWS CLI/aws-vaultのインストール

すでにインストールされている方は次節にスキップしてください。

まずPowerShellの管理者ウインドウを起動します。

次にAWS CLIをインストールします。以下のドキュメントの通りにインストールを行います。

次に、別の新しい管理ウインドウでChocolateyのchocoコマンドをインストールします。以下のドキュメントにインストール用のワンライナーがあるので利用します。

choco --version # 動作確認

chocoコマンドでaws-vaultをインストールします。

choco install aws-vault
aws-vault --version # 動作確認

aws-vault用のプロファイルを作成する

適当な名前でaws-vault用のプロファイルを作成します。

aws-vault add mybedrock # 名前は任意

.aws/config[profile mybedrock]という項目ができるので、以下の通りにcredential_processmfa_serialを設定します。regionも設定します。

~/.aws/config
[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 CodeAWS Toolkit拡張機能をインストールし、作成したプロファイル(mybedrock)で接続できるかどうかをチェックすると良いでしょう。拡張機能のログからエラーメッセージが確認できるのでトラブルシューティングに役立ちます。

よくあるのが環境変数 AWS_VAULT がセットされていることで起こるエラーです。これはPowerShellウインドウを立ち上げ直すことで解消します。

Remote Connectを利用する場合

WSLなどに接続している場合はWSLへaws cliaws-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オプションをつけることで認証情報をファイルにいれて回避できますが、パスフレーズを聞かれるため、環境変数に認証情報を入れる必要があるでしょう。

参考:

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?