EC2 の IAM 認証で Codex CLI × GPT-5.5 を Amazon Bedrock 経由で使ってみた
はじめに
2026年6月、GPT-5.5 が Bedrock で GA となり、us-east-2 リージョンから利用できるようになりました。
Codex CLI は v0.124.0 から Amazon Bedrock をネイティブサポートしています。
Bedrock 経由の利点は IAM 認証です。EC2 にインスタンスプロファイルを付ければ一時クレデンシャルが自動取得され、API キーの管理が不要になります。本記事では CloudFormation デプロイから codex exec の実行までを紹介します。
前提条件
- us-east-2(オハイオ)が SCP 等で制限されていないこと
- デフォルト VPC が存在すること
環境構築
CloudFormation テンプレート1つで、EC2 インスタンス・IAM ロール・インスタンスプロファイルをデプロイします。
IAM ロールには以下の AWS 管理ポリシーを付与しています。
AmazonSSMManagedInstanceCore— SSM 接続用AmazonBedrockMantleInferenceAccess— Codex CLI が使う Mantle Responses API 用
管理ポリシーの詳細は下記の記事をご覧ください。
UserData で Codex CLI のインストールと Bedrock 用の設定(~/.codex/config.toml)を実施しています。
model = "openai.gpt-5.5"
model_provider = "amazon-bedrock"
web_search = "disabled"
[model_providers.amazon-bedrock]
[model_providers.amazon-bedrock.aws]
region = "us-east-2"
CloudFormation テンプレート(cfn-codex-ec2.yaml)
AWSTemplateFormatVersion: '2010-09-09'
Description: EC2 instance for Codex CLI + Bedrock GPT-5.5 (IAM auth)
Parameters:
InstanceType:
Type: String
Default: t3a.small
Resources:
CodexBedrockRole:
Type: AWS::IAM::Role
Properties:
RoleName: codex-bedrock-ec2-role
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service: ec2.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
- arn:aws:iam::aws:policy/AmazonBedrockMantleInferenceAccess
InstanceProfile:
Type: AWS::IAM::InstanceProfile
Properties:
Roles:
- !Ref CodexBedrockRole
CodexInstance:
Type: AWS::EC2::Instance
Properties:
InstanceType: !Ref InstanceType
IamInstanceProfile: !Ref InstanceProfile
ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64}}'
UserData:
Fn::Base64: |
#!/bin/bash
set -euo pipefail
# Codex CLI インストール
curl -fsSL https://chatgpt.com/codex/install.sh | CODEX_NON_INTERACTIVE=1 su - ec2-user -c 'sh'
# config.toml 作成
su - ec2-user -c 'mkdir -p ~/.codex && cat > ~/.codex/config.toml << EOF
model = "openai.gpt-5.5"
model_provider = "amazon-bedrock"
web_search = "disabled"
[model_providers.amazon-bedrock]
[model_providers.amazon-bedrock.aws]
region = "us-east-2"
EOF'
Tags:
- Key: Name
Value: codex-bedrock-gpt55
Outputs:
InstanceId:
Value: !Ref CodexInstance
Description: aws ssm start-session --target <InstanceId> --region us-east-2
RoleArn:
Value: !GetAtt CodexBedrockRole.Arn
デプロイ
aws cloudformation deploy \
--stack-name codex-bedrock-gpt55 \
--template-file cfn-codex-ec2.yaml \
--capabilities CAPABILITY_NAMED_IAM \
--region us-east-2
動作確認
SSM で EC2 に接続し、cloud-init の完了を待ってから codex exec を実行します。
aws ssm start-session --target <InstanceId> --region us-east-2
sudo cloud-init status --wait
sudo su - ec2-user
codex exec --skip-git-repo-check "Say hello in Japanese"
codex exec は非対話モードで、TUI を起動せずプロンプトを渡して結果だけを返します。今回 Git リポジトリ外で利用するため、--skip-git-repo-check を指定しています。
OpenAI Codex v0.136.0
--------
workdir: /home/ec2-user
model: openai.gpt-5.5
provider: amazon-bedrock
approval: never
sandbox: read-only
reasoning effort: none
reasoning summaries: none
--------
user
Say hello in Japanese
codex
こんにちは。
tokens used
1,123
IAM ロールの認証だけで、Bedrock 経由の GPT-5.5 が動いています。
まとめ
EC2 のインスタンスプロファイルで Bedrock 経由の GPT-5.5 を Codex CLI から利用できました。API キーの管理が不要なため、CI/CD パイプラインなどへの応用も考えられます。ぜひお試しください。
参考リンク









