はじめに
本記事では、オープンソースのAIコーディングエージェント「OpenCode」をAmazon Bedrockと連携し、LLMモデルを利用できるようにするまでの手順を整理します。
OpenCodeはAmazon Bedrockをプロバイダーの一つとしてサポートしており、AWS認証情報を渡すだけで利用可能です1。
今回は、設定ファイルを利用して接続検証を行います。
なお、本記事はOpenCodeのインストールが完了している前提で進めます。インストール手順については前回記事をご参照ください。
https://techblog.beex-inc.com/entry/2026/03/31/153834
記事のまとめ
この記事で得られる知見は以下の通りです。
- OpenCodeの設定ファイル(
opencode.json)を使ったAmazon Bedrock連携方法 - AWS CLIプロファイルによる認証情報の受け渡し方
- Bedrockモデルの選択・利用開始までの流れ
実装前の準備(前提条件)
今回の実装のために、以下の準備が必要です。
- OpenCode インストール済み
- WSL2(Ubuntu)上にOpenCodeがインストールされていること
- AWSアカウント
- Amazon Bedrockへのアクセス権限があること
- AWS CLI インストール済み(WSL上)
- 認証情報の設定に使用
- AWSのIAMユーザーのアクセスキー
- Bedrockの呼び出し権限2を持つIAMユーザーのアクセスキーが発行済みであること
実装手順
以下ステップで実装を進めていきます。
実装手順1:AWS CLI認証情報の設定
OpenCodeが参照できるよう、WSL上のAWS CLIに認証情報を設定します。
作業パス:WSL2(Ubuntu)内のホームディレクトリ ~
前提条件:AWS CLIがインストール済みであること、IAMユーザーのアクセスキーが発行済みであること
AWS CLIのプロファイル設定
WSLターミナルを開き、以下のコマンドを実行します。
aws configure --profile <プロファイル名>
プロンプトに従い、以下の情報を入力します。
AWS Access Key ID [None]: <IAMユーザーのアクセスキーID> AWS Secret Access Key [None]: <IAMユーザーのシークレットアクセスキー> Default region name [None]: ap-northeast-1 Default output format [None]: json
補足
--profileオプションで、任意のプロファイル名を指定できます。 設定内容は~/.aws/credentialsおよび~/.aws/configファイルに保存されます。
設定内容の確認
設定が正しく保存されたか確認します。
cat ~/.aws/credentials
以下のように表示されれば設定完了です。
[<プロファイル名>] aws_access_key_id = AKIA...(マスキングしてます) aws_secret_access_key = xxxxxx(マスキングしてます)
実装手順2:opencode.jsonへのBedrock設定追加
OpenCodeの設定ファイル opencode.json に、Amazon Bedrockプロバイダーの設定を追記します。
作業パス:作業対象プロジェクトのルートディレクトリ(OpenCodeを起動するディレクトリ)
前提条件:実装手順1のAWS認証情報設定が完了していること
opencode.jsonの作成・編集
プロジェクトのルートディレクトリに opencode.json が存在しない場合は新規作成します。
既に存在する場合は provider セクションを追記・編集してください。
# プロジェクトディレクトリに移動 cd /path/to/your/project # opencode.jsonを作成(存在しない場合) touch opencode.json
opencode.json に以下の内容を記述します。
{ "$schema": "https://opencode.ai/config.json", "provider": { "amazon-bedrock": { "options": { "region": "ap-northeast-1", "profile": "<プロファイル名>" } } } }
設定項目の説明は以下の通りです。
| 項目 | 説明 | 設定例 |
|---|---|---|
region |
使用するAWSリージョン | ap-northeast-1(東京)、us-east-1(米国東部)など |
profile |
~/.aws/credentials に定義した名前付きプロファイル名 |
実装手順1で設定したプロファイル名 |
注意
opencode.jsonにシークレットアクセスキーなどの機密情報を直接記述しないでください。 認証情報は~/.aws/credentialsに保管し、opencode.jsonではプロファイル名のみ参照するようにしてください。補足 環境変数(
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_PROFILE等)での設定も可能です。
実装手順3:OpenCodeの起動とモデル選択
設定が完了したら、OpenCodeを起動してAmazon Bedrockのモデルを選択します。
作業パス:opencode.json を配置したプロジェクトのルートディレクトリ
前提条件:実装手順1・2が完了していること
OpenCodeの起動
WSLターミナルからOpenCodeを起動します。
opencode
モデルの選択
OpenCodeが起動したら、/models コマンドを入力します。
/models
モデル一覧が表示されるので、amazon-bedrock プロバイダーのモデルを選択してEnterを押します。

モデルへのアクセスについて
モデルを選択後、初めてプロンプトを実行(APIアクセス)した際、AWS Marketplace経由でサブスクリプションが自動的に成立しました。

プロンプトからの返答を確認後、AWSアカウントに紐づくアドレス宛に、以下のメールが届きました。
件名: Claude Opus 4.6 (Amazon Bedrock Edition) の AWS Marketplace サブスクリプション 本文: AWS Marketplace をご利用のお客様 お客様は、AWS Marketplace で次の製品をサブスクライブしました: * Anthropic, PBC が販売する Claude Opus 4.6 (Amazon Bedrock Edition)
注意 モデルの利用料は、Bedrockのモデル呼び出し料金として発生します。 料金の詳細はAWSの料金ページをご確認ください。
補足 AWS公式ドキュメントによると、Amazon Bedrockの基盤モデルへのアクセスは、適切なAWS Marketplace権限があればデフォルトで有効化されます3。 サードパーティモデルを初めて呼び出した際、Bedrockが自動的にサブスクリプション処理を開始します。 ただし、Anthropicモデルの場合はFirst Time Use(FTU)フォームの提出が別途必要なため、利用前に組織のポリシーや利用状況を確認してください。
備考など
- デフォルトモデルの固定:毎回
/modelsで選択する手間を省きたい場合は、opencode.jsonにmodelキーを追加してデフォルトモデルを指定できます。
{ "$schema": "https://opencode.ai/config.json", "model": "amazon-bedrock/<モデルID>", "provider": { "amazon-bedrock": { "options": { "region": "ap-northeast-1", "profile": "<プロファイル名>" } } } }
リージョン選択の注意:AWSリージョンごとにBedrockから利用可能なモデルが異なるため、モデルの提供状況はAWSコンソールやドキュメントで確認してください
その他の認証方法:本記事ではAWS CLIプロファイルによる認証を紹介しましたが、公式ドキュメントでは以下の認証方法もサポートされています
| 認証方法 | 概要 |
|---|---|
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY |
環境変数でアクセスキーを直接指定 |
AWS_PROFILE |
環境変数で名前付きプロファイルを指定 |
AWS_BEARER_TOKEN_BEDROCK |
Bedrockベアラートークンを使用 |
AWS_WEB_IDENTITY_TOKEN_FILE / AWS_ROLE_ARN |
EKS IRSA(IAM Roles for Service Accounts)等のOIDCフェデレーション |
補足 認証の優先順位は、(1) ベアラートークン → (2) AWS認証チェーン(プロファイル、アクセスキー、共有認証情報、IAMロール、Webアイデンティティトークン、インスタンスメタデータ)の順です。
参考URL
この記事で参考にしたURLです。
https://opencode.ai/docs/providers/#amazon-bedrock
https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html
https://docs.aws.amazon.com/bedrock/latest/userguide/security_iam_id-based-policy-examples.html