Bedrock 経由の Claude Code の使用に SSO 認証をかける

Bedrock 経由の Claude Code の使用に SSO 認証をかける

Amazon Bedrockを経由してClaude CodeやCoworkを企業導入する際、ID プロバイダとの連携を含めたセットアップ方法を紹介します。Guidance for Claude Code and Cowork on Amazon Bedrockを活用した実装例をまとめました。
2026.06.03

はじめに

こんにちは、AI 事業本部の Kanaru です。

最近 Claude Code や Cowork の需要が高まっていますが、Claude の特定プランを契約したり、API キーを発行する以外にも導入方法は様々あります。その中でも今回は Guidance for Claude Code and Cowork on Amazon Bedrock を使用して、企業での導入を想定した Claude Code のセットアップと、ID プロバイダとの連携を行なってみたので紹介します。

この記事で紹介しないこと

この記事では最低限の前提条件での構築に限って紹介します。本来は、カスタムドメインの設定やユーザー向けのランディングページの構築が可能ですが、こちらは取り扱いません。

対象読者

  • Claude Code や Cowork を Bedrock を通して使用したい人
  • Claude Code や Cowork の認証を ID プロバイダによる SSO で行いたい人

前提条件

以下の条件で検証しています。これらのソフトウェアはすでにインストールされている前提とします。

  • macOS Tahoe 26.4.1 (Apple M5)
  • Poetry (version 2.4.1)
  • aws-cli/2.34.45 Python/3.14.4 Darwin/25.4.0 exe/arm64
    • Cognito のユーザープール作成のために使用します。既存の ID プロバイダを連携させる場合には不要です。
  • podman version 5.8.2
    • 異なる OS や CPU アーキテクチャ向けのビルドに使用します。同一の OS や CPU アーキテクチャのみのビルドを想定する場合には不要です。
    • 異なる OS 向けであっても、Windows 向けのビルドに限っては CodeBuild を使用するので不要です。
    • 今回は podman を使用していますが、docker の方が好ましいです (理由は後ほど説明します)。

また、デプロイ先の AWS アカウントへの認証は通っていて、適切な権限が付与されているものとします。

概要

今回は、Guidance for Claude Code and Cowork on Amazon Bedrock を使用して Amazon Bedrock を経由した Claude Code 環境のセットアップと、ユーザーへの配布を想定した配布用パッケージの作成を実施します。

このソリューションを使用すると、管理者がユーザーに Claude Code の設定ファイルを配布しできます。ユーザーは SSO を通して AWS の一時的な認証情報を取得し、Bedrock 経由の Claude Code の使用ができるようになります。

ソリューション自体の詳細な説明は以下の記事を参照してください。

https://dev.classmethod.jp/articles/illustration-of-guidance-for-claude-code-and-cowork-on-amazon-bedrock/

リポジトリのクローン

まずはリポジトリをクローンします。

git clone https://github.com/aws-solutions-library-samples/guidance-for-claude-code-with-amazon-bedrock.git

ID プロバイダの用意

まずは、認証に使用する ID プロバイダを用意します。今回は新しく Cognito User Pool を作成します。

User Pool 作成用の CloudFormation スタックはリポジトリに用意されているので、今回はそれを使うことにします。

aws cloudformation deploy \
  --template-file deployment/infrastructure/cognito-user-pool-setup.yaml \
  --stack-name claude-code-user-pool \
  --capabilities CAPABILITY_IAM \
  --parameter-overrides \
    UserPoolName=<UserPool> \
    DomainPrefix=<DomainPrefix> \
    CallbackURLs=http://localhost:8400/callback

上記コマンドは <UserPool名><DomainPrefix> を適切に設定して、リポジトリルートで実行してください。

UserPoolName には userpoolcognito の文字列を含めることで、後のステップで自動で認識してくれるようになります。

また、DomainPrefixリージョンで固有なので十分注意してください。つまり、他のアカウントで作成した DomainPrefix であっても、同じリージョンですでに使われている場合にはその値は使用できません。

デプロイが完了したら、次の値を控えておきます。

  • Cognito ドメイン
    • 作成した User Pool の画面から ブランディング > ドメイン にアクセスし、コピーできます。
  • ユーザープール ID
    • 作成した User Pool の画面から 概要 にアクセスし、コピーできます。
  • クライアント ID
    • 作成した User Pool の画面から アプリケーション > アプリケーションクライアント > claude-code-auth-client にアクセスし、コピーできます。

Cognito ドメインの確認方法
Cognito ドメイン

ユーザープール ID の確認方法
ユーザープール ID

クライアント ID の確認方法
クライアント ID

また、このタイミングで動作確認で使用するユーザーを作成しておきます。

ccwb の設定

ここからは、Claude Code 用の Bedrock と認証システムのデプロイ設定を行なっていきます。設定には ccwb コマンドを使用します。

まずは、source ディレクトリに移動し、ccwb を初期化します。

cd source
poetry install
poetry run ccwb init

プロンプトが出るので、指示に従います。
項目数が多いですが、一つひとつ説明します。

Profile name

ユーザーの端末に作成される AWS Profile 名です。指示の通り、{プロジェクト}-{環境}-{リージョン} という形式で指定します。

Profile Name
Choose a descriptive name for this deployment profile.
Suggested format: {project}-{environment}-{region}
Examples: acme-prod-us-east-1, internal-dev-us-west-2

? Profile name: ccwb0-dev-ap-northeast1

SSO Authentication

Claude Code の使用にあたって SSO 認証をかけるかどうかです。今回は Cognito User Pool で認証をかけるので、Yes とします。

SSO Authentication
Enable Single Sign-On authentication via identity providers
(Okta, Auth0, Azure AD, AWS Cognito)

When disabled:
  • Uses AWS IAM roles for access control
  • Metrics will use anonymous tracking based on IAM identity
  • No user authentication required

? Enable SSO authentication? Yes

OIDC Provider Configuration

SSO 認証について、OIDC の情報を入力します。今回は ID プロバイダの用意 で控えた Cognito の情報を入力します。

? Enter your OIDC provider domain:  (e.g., company.okta.com, company.auth0.com, login.microsoftonline.com/{tenant-id}/v2
.0, my-app.auth.us-east-1.amazoncognito.com, or my-app.auth-fips.us-gov-west-1.amazoncognito.com for GovCloud) https://<Domain Prefix>.auth.ap-northeast-1.amazoncognito.com
? Enter your Cognito User Pool ID for ap-northeast-1:  (case-sensitive) ap-northeast-1_******
? Enter your OIDC Client ID: <クライアント ID>

Credential Storage Method

ユーザー側で、AWS の一時認証情報をどのように保存するかを指定します。お好きな方を選んでください。今回は Keyring を指定しました。

Keyring は認証情報を OS のセキュアな領域に保存されます。Session Files を指定した場合は、ログイン時に認証情報のファイルがローカルに作成され、ログアウト時に削除されます。

Credential Storage Method
Choose how to store AWS credentials locally:
  • Keyring: Uses OS secure storage (may prompt for password)
  • Session Files: Temporary files (deleted on logout)

? Select credential storage method: Keyring (Secure OS storage)

Federation Type Selection

AWS の一時認証情報の発行方法を指定します。

Direct STS では、STS の AssumeRoleWithWebIdentity により一時認証情報を生成します。セッションの最大時間は12時間です。Cognito Identity Pool よりもシンプルな方法で、特別な理由がない限りこちらを使うことが推奨されています。

Cognito Identity Pool は、Cognito Identity Pool で一時認証情報を生成します。セッションの最大時間は8時間です。プリンシパルタグマッピングを使用することで、ID プロバイダから取得した情報(クレーム)によるアクセス制御が可能になります。

Federation Type Selection
Direct STS.
Cognito Identity Pool.

? Choose federation type: Direct STS

AWS Infrastructure Configuration

AWS のリージョンと CloudFormation のスタックの名前を指定します。

? Select AWS Region for infrastructure deployment (Cognito, IAM, monitoring): ap-northeast-1
? Stack base name (for CloudFormation): claude-code-auth

Monitoring and Usage Dashboards

Claude Code の使用量を測定し、CloudWatch のダッシュボードを作成するかどうかを選びます。クォータの設定をする場合は必ず有効化してください。今回は Yes にしました。

Monitoring and Usage Dashboards
Track Claude Code usage and performance metrics in CloudWatch
? Enable monitoring? Yes

VPC Configuration for Monitoring

今回使用する OpenTelemetry の controller は ECS で動作するのですが、それを配置する VPC を指定します。こだわりがなければ Create new VPC にするのが良いと思います。

VPC Configuration for Monitoring
The monitoring stack requires a VPC for the OpenTelemetry collector.

Searching for existing VPCs...
? Select VPC for monitoring infrastructure: Create new VPC

Configure HTTPS for secure telemetry

カスタムドメインを使用するかどうか指定します。OpenTlemetry の ALB エンドポイントやランディングページで使用されます。ランディングページを用意したい場合には必ず指定してください。今回は No にしました。

Optional: Configure HTTPS for secure telemetry
? Enable HTTPS with custom domain? No

Analytics Pipeline

Athena を使ったより高度な SQL によるメトリクスを有効化するか指定します。今回は Yes にしました。

Analytics Pipeline
Advanced user metrics and reporting through AWS Athena (~$5/month)
? Enable analytics? Yes
✓ Analytics pipeline will be deployed with your monitoring stack

Quota Monitoring

クォータ制限に近づいた時に SNS のアラートを出したり、使用を停止したりする機能を有効化します。

以下の指標のうち、Monthly Limit、Burst buffer percentage、Custom daily limit を指定する必要があります。

  • Monthly Limit: 月間1人あたりのトークン制限
  • Base daily limit: Monthly Limit から計算される1日1人当たりのトークン制限
  • Burst buffer percentage: 1日のうちに Base daily limit から超過できる割合
  • Custom daily limit: 1日1人あたりのトークン制限
Monthly Limit
? Monthly token limit per user (in millions): 225
  → Monthly limit: 225,000,000 tokens
  → Warning at 80%: 180,000,000 tokens
  → Critical at 90%: 202,500,000 tokens

Daily Limit (Bill Shock Protection)
Prevent runaway usage by setting a daily limit with a burst buffer.

Base daily limit (monthly ÷ 30): 7,500,000 tokens

Burst buffer allows daily variation above the average:
  • 5%  (strict)   → 7,875,000/day
  • 10% (default)  → 8,250,000/day
  • 25% (flexible) → 9,375,000/day
? Burst buffer percentage (5-25%): 10
  → Calculated daily limit: 8,250,000 tokens
? Custom daily limit (Enter to accept 8,250,000):

Enforcement Modes

クォータを超過した際の振る舞いを指定します。alert は通知のみ送信します。block は強制的に使用を中止します。

? Daily limit enforcement: alert (warn only)
? Monthly limit enforcement: block (deny access)

Quota Re-Check Interval

クォータを確認する間隔を分単位で指定します。

Quota Re-Check Interval
How often to re-check quota with cached credentials:
  • 0 = check every request (strictest, ~200ms latency)
  • 30 = every 30 minutes (default, recommended)
  • 60 = every hour (minimal impact)
? Quota check interval (minutes): 30

Windows Build Support

Windows 用の配布パッケージを作成するか指定します。なお、Windows 用のパッケージは CodeBuild で作成されるため、ローカルに特別な環境構築をする必要はありません。今回は Yes にしました。

Windows Build Support
Build Windows binaries using AWS CodeBuild
? Enable Windows builds? Yes

Claude Cowork (Desktop) Support

Claude Cowork 用の MDM 設定を作成するか指定します。有効化すると、Claude Desktop でも Claude Code と同様に、Bedrock を経由する設定でログインできるようになります。今回は Yes にしました。

Claude Cowork (Desktop) Support
Generate MDM configuration for Claude Cowork with third-party platforms
Enables Claude Desktop to use the same credential helper for Amazon Bedrock
? Generate CoWork 3P MDM configuration during packaging? Yes

Package Distribution

パッケージの配布方法を指定します。

Presigned S3 URLs にすると、ダウンロード用の URL のみが発行されます。Landing Page にすると、ダウンロード用の Web ページが ECS にデプロイされます。Landing Page にするには、上の設定でカスタムドメインを指定する必要があります。今回は Presigned S3 URLs にします。

Package Distribution
Choose how to distribute Claude Code packages to end users:
  • Presigned S3 URLs: Simple, no authentication (good for < 20 users)
  • Landing Page: IdP authentication with web UI (good for 20-100 users)
? Distribution method: Presigned S3 URLs (simple, no authentication)

Select Claude model

使用するモデルを指定します。今回は Claude Sonnet 4.5 にします。

? Select Claude model: Claude Sonnet 4.5 (Global, US)

Select cross-region inference profile

クロスリージョン推論プロファイルを指定します。クロスリージョン推論は、使用中のリージョンでクォータ制限を超えてしまった場合、代わりに近くのリージョンにリクエストを自動的にルーティングする機能です。Claude 3.7 以降のモデルでは指定する必要があります。

今回は JP Cross-Region - Japan CRIS - Asia Pacific (Tokyo), Asia Pacific (Osaka) にしました。

? Select cross-region inference profile: JP Cross-Region - Japan CRIS - Asia Pacific (Tokyo), Asia Pacific (Osaka)

Select source region for AWS configuration

クロスリージョン推論をする際、どのリージョンを優先して使うかを指定します。今回は ap-northeast-1 を指定しました。

? Select source region for AWS configuration: ap-northeast-1

Configure Application Inference Profiles?

モデルごとに推論プロファイルを指定したい場合は Yes を指定します。その後、プロファイルの ARN を指定することができます。

Provide an inference profile ARN for each model tier (press Enter to skip).
?   Opus inference profile ARN:
?   Sonnet inference profile ARN:
?   Haiku inference profile ARN:

Resource Tags

CloudFormation のスタックにリソースタグを指定したい場合には Yes を指定します。今回は No にしました。

Tags are applied to all deployed CloudFormation stacks.
? Would you like to add resource tags? No

以上で、ccwb の初期化は終了です。

デプロイ

以下のコマンドでデプロイします。

poetry run ccwb deploy

順番にスタックがデプロイされていくので、終了するまで待ちます。

パッケージの作成

以下のコマンドで、ユーザーに配布するパッケージを作成します。

poetry run ccwb package

作成したい OS とプラットフォームを聞かれるので、スペースキーで選択、エンターキーで確定します。

Darwin の macOS を前提に、各プラットフォームのビルド時の注意点を紹介します。

macOS arm64

特にありません。そのままビルドされます。

macOS x86_64

ビルドには universal2 Python が必要です。公式ページ から macOS 64-bit universal2 installer をインストールできます。

Linux arm64

ビルドには Docker が必要です。ビルド前に docker --version コマンドの実行により存在確認が行われます。

そのため、podman などの Docker 互換ソフトウェアを使用している場合は、Docker 互換機能の有効化だけでなく、docker コマンドを使用できるようにする必要があります。podman を使用していてエラーが発生した場合は、以下のコマンドでシンボリックリンクを作成してください。

sudo ln -s $(which podman) /usr/local/bin/docker

Linux x86_64

Linux arm64 と同様に、Docker でビルドされます。現在では Docker Desktop や podman を使用していて Rosetta がインストールされていない場合、QEMU によってエミュレーションされます。しかし、QEMU は Rosetta と比較して動作が遅く、ビルドに時間がかかってしまうため、Rosetta の使用を推奨します。

https://docs.docker.jp/desktop/mac/apple-silicon.html

https://podman-desktop.io/docs/podman/rosetta

Windows

Windows 用のビルドは CodeBuild で実行されるため、スタックが作成されている必要があります。上記 Windows Build Support を参照してください。

動作確認

設定のインストール

ビルドが完了すると、dist/<プロファイル>/<作成日時> ディレクトリに成果物が作成されます。

成果物のディレクトリ内にある ./install.sh を実行することで、作成した設定がインストールされます。この時、~/.claude/settings.json が上書きされるので気をつけてください。✓ Installation complete! と表示されれば完了です。

上の設定で、Claude Cowork 用の MDM プロファイルの作成をした場合は、このタイミングでインストールされます。macOS の場合、設定→一般→デバイス管理 から確認できます。

guidance-for-ccwb-cognito-idp_mdm.png

Claude Code

インストール後に Claude Code を起動すると、自動でログイン画面が開き、ログインを要求されます。

起動後、Amazon Bedrock と記載されていれば成功です。

guidance-for-ccwb-cognito-idp_cc.png

Claude Desktop (Cowork)

Claude Desktop を起動すると、次のような画面になります。Bedrock で続けるを押すと、ログインが可能です。

guidance-for-ccwb-cognito-idp_desktop.png

配布

以下のコマンドで配布用リンクを取得できます。

poetry run ccwb distribute

コマンドを実行すると、S3 へのアップロードが始まります。アップロードが終わると、ダウンロードリンクが発行されるので、それをユーザーに配布してください。

リンクの期限は48時間なので、注意してください。

✓ Distribution package created successfully!

Distribution URL (expires in 48 hours):

https://claude-code-auth-distribution-<AccountId>.s3.amazonaws.com/packages/20260520-164850/claude-code-package-2026052
0-164850.zip?AWSAccessKeyId=<AccessKey>&Signature=th9z0...&Expires=1779436132

Package Details:
  Filename: claude-code-package-20260520-164850.zip
  SHA256: 55a66e539dcc58f69f3c97980ecb24d382a4f32028d48b7092c25a27b6aaf9ff
  Expires: 2026-05-22 16:48:52
  Size: 57.7 MB

Share this URL with developers to download the package.

Download and Installation Instructions:

For macOS/Linux:
1. Download (copy entire line):
   curl -L -o "claude-code-package-20260520-164850.zip" "https://claude-code-auth-distribution-<AccountId>.s3.amazonaws.com/packages/20260520-164850/claude-code-package-20260520-164850.zip?AWSAccessKeyId=<AccessKey>&Signature=th9z0...&Expires=1779436132"
2. Extract and install:
   unzip claude-code-package-20260520-164850.zip && cd claude-code-package && ./install.sh

For Windows PowerShell:
1. Download (copy entire line):
   Invoke-WebRequest -Uri "https://claude-code-auth-distribution-<AccountId>.s3.amazonaws.com/packages/20260520-164850/claude-code-package-20260520-164850.zip?AWSAccessKeyId=<AccessKey>&Signature=th9z0...&Expires=1779436132" -OutFile "claude-code-package-20260520-164850.zip"
2. Extract and install:
   Expand-Archive -Path "claude-code-package-20260520-164850.zip" -DestinationPath "."
   cd claude-code-package
   .\install.bat

削除

以上の手順で構築したものを、削除する手順について紹介します。

以下のコマンドで削除可能です。

poetry run ccwb destroy

この際、S3 バケットなどの一部リソースは削除されません。残存するリソースがある場合、コマンド終了後に次のような案内が出るので、指示に従ってください。
この操作を実行しないと、リソースが残り続けて無駄なコストが発生する上、次回セットアップ時に正常に終了しない場合があります。

⚠ Manual cleanup required for the following resources:

S3 Buckets (must be emptied first):
  • claude-code-auth-s3bucket-cfnartifactsbucket-qadplodmubgf
    aws s3 rm s3://claude-code-auth-s3bucket-cfnartifactsbucket-qadplodmubgf --recursive
    aws s3 rb s3://claude-code-auth-s3bucket-cfnartifactsbucket-qadplodmubgf

Other Resources:
  • AthenaWorkgroup (AWS::Athena::WorkGroup): claude-code-auth-analytics-workgroup
    Reason: Resource handler returned message: "Invalid request provided: WorkGroup claude-code-auth-analytics-workgroup
is not empty (Service: Athena, Status Code: 400, Request ID: c0869358-dfa2-42d9-91ba-594d71aab19d) (SDK Attempt Count: 
1)" (RequestToken: b36f8e9c-8863-efdf-3f16-d483973fdabc, HandlerErrorCode: InvalidRequest)

After manual cleanup, delete the failed stacks:
  aws cloudformation delete-stack --stack-name claude-code-auth-analytics --region ap-northeast-1
  aws cloudformation delete-stack --stack-name claude-code-auth-s3bucket --region ap-northeast-1

おわりに

Guidance for Claude Code and Cowork on Amazon Bedrock を使うことで、簡単なセットアップで Bedrock 経由の Claude Code / Cowork の設定ができました。ただの設定にとどまらず、クォータ制限や設定の配布までサポートがあるのが非常に便利な点だと感じました。

要件によっては Anthropic のプランを導入するよりも Bedrock の導入が最適である場合も多いので、ぜひ試してみてください。


生成AI活用はクラスメソッドにお任せ

過去に支援してきた生成AIの支援実績100+を元にホワイトペーパーを作成しました。御社が抱えている課題のうち、どれが解決できて、どのようなサービスが受けられるのか?4つのフェーズに分けてまとめています。どうぞお気軽にご覧ください。

生成AI資料イメージ

無料でダウンロードする

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事