Claude Code を AWS SSO 認証で Bedrock に接続する
諸事情で AWS Bedrock で Claude Code を使う必要がありました.アクセスキーを使うのは避けたいので,AWS SSO で認証して Bedrock の Claude モデルを Claude Code から利用します.
AWS CLI の設定
AWS CLI に SSO セッション&プロファイルを追加します.~/.aws/config
を下記のように編集します.
[default]
region = ap-northeast-1
output = json
[sso-session my-sso-session]
sso_start_url = https://<your-domain>.awsapps.com/start
sso_region = ap-northeast-1
[profile my-dev-account]
sso_session = my-sso-session
sso_account_id = <account_id>
sso_role_name = <iam_role_name>
[sso-session my-sso-session]
で AWS アクセスポータルを指定します.AWS Organizations で設定したURLです.
[profile my-dev-account]
で AWS アカウントを指定しています. AWS CLI から利用したい AWS アカウントの情報を設定します. sso_session
の値を,上で設定した [sso-session my-sso-session]
と合わせます.
当然ですが,使おうとしているモデル(Claude 4 Sonnet など)がこのアカウントで有効化されていて,IAMロールで許可されている必要があります.
Claude Code の設定
~/.claude/settings.json
に次のような設定を書き込みます.
{
"env": {
"CLAUDE_CODE_USE_BEDROCK": "1",
"AWS_REGION": "ap-northeast-1",
"ANTHROPIC_MODEL": "apac.anthropic.claude-sonnet-4-20250514-v1:0",
"AWS_PROFILE": "my-dev-account"
}
}
AWS CLI で設定したプロファイルを指定します.
ややこしいんですが, ANTHROPIC_MODEL
には モデル一覧ページにあるモデルID (anthropic.claude-sonnet-4-20250514-v1:0
みたいなやつ)ではなく,推論プロファイルを指定する必要があるようです.推論プロファイルの一覧は,AWSコンソールの "Cross-region inference" にある表の "Inference profile ID" 列から確認できます.
AWS SSOでログインしてClaude Codeを使う
AWS SSO でログインします. --sso-session
に, ~/.aws/config
で設定した SSO セッションの名前を指定します.
aws sso login --sso-session my-sso-session
AWS SSO のログインが完了したら,Claude Code を実行します.
claude
Discussion