Claude APIは、リクエストを認証するための3つの方法をサポートしています。
| 方法 | 認証情報 | 最適な用途 |
|---|---|---|
| APIキー | x-api-keyヘッダーに設定する静的なsk-ant-api...シークレット | ローカル開発、プロトタイピング、スクリプト、およびシークレットストレージを自分で管理するシングルテナントサーバー |
| Workload Identity Federation | IDプロバイダーのIDトークンから交換される短期間有効なベアラートークン | クラウドプラットフォーム(AWS、Google Cloud、Azure)上の本番ワークロード、CI/CDパイプライン、Kubernetesなど、静的シークレットを排除したい環境 |
| App Attest | 登録済みのiOSまたはmacOSアプリの正規かつ構成証明済みのインストールに対して発行される短期間有効なアクセストークン | エンドユーザーに配布するiOSおよびmacOSアプリで、バックエンドやプロキシを介さずにアプリが直接Claude APIを呼び出す場合 |
APIキーとWorkload Identity Federationは、Claude APIエンドポイントへの同じアクセス権を付与します。すぐに始めたい場合はAPIキーを選択し、ワークロードにフェデレーション可能なプラットフォーム発行のIDがすでにある場合はWorkload Identity Federationに移行してください。エンドユーザーに配布するiOSおよびmacOSアプリにはApp Attestを使用してください。
APIキーは、Claude Consoleで生成し、すべてのリクエストに渡す静的なシークレットです。
x-api-keyヘッダーを設定するか、ANTHROPIC_API_KEY環境変数を設定するとクライアントSDKが自動的にそれを読み取ります。POST /v1/messages
x-api-key: YOUR_API_KEY
anthropic-version: 2023-06-01
content-type: application/jsonAPIキーはシークレットマネージャーに保存し、定期的にローテーションし、漏洩が疑われるキーは失効させてください。また、キーの作成時に有効期限を設定することで、漏洩した認証情報が使用可能な期間を制限することもできます。
client = Anthropic(api_key="my-anthropic-api-key")
# または、環境変数にANTHROPIC_API_KEYが設定されている場合:
client = Anthropic()Claude ConsoleのAPIキーページからAPIキーを作成する際、有効期限を選択します。プリセット(3時間、1日、7日、または30日)、カスタム期間、またはシークレットマネージャーに保存して自分でローテーションするキーの場合は無期限を選択できます。組織に最大有効期限ポリシーが設定されている場合、Consoleはプリセットとカスタム期間をポリシーの最大値に制限し、無期限は選択できなくなります。既存のキーは現在の動作を維持します。有効期限は作成時に設定され、後から変更することはできません。Claude ConsoleでAdmin APIキーを作成する場合も、同じ有効期限の選択が適用されます。
Anthropicは、有効期限が近づくとキーの作成者にメールを送信します。有効期間が14日以上で作成されたキーの場合は有効期限の7日前に、有効期間が7日以上のキーの場合は1日前に送信されます。それより短い有効期間のキーは、警告メールなしで期限切れになります。
キーの有効期限が切れると、そのキーを使用したリクエストは401 authentication_errorを返します。アクセスを復元するには新しいキーを作成してください。期限切れのキーを再有効化することはできません。
ConsoleのAPIキーテーブルには各キーの有効期限が表示され、Admin APIはList API KeysおよびRetrieve API Keyエンドポイントで各キーのexpires_atタイムスタンプを報告するため、キーが期限切れになる前に監査およびローテーションできます。有効期限のないキーの場合、このフィールドはnullです。
有効期限は漏洩した認証情報の有効期間を制限しますが、シークレット管理の代替にはなりません。有効期限の有無にかかわらず、キーはシークレットマネージャーに保存し、漏洩が疑われるキーは失効させてください。
「Workload Identity Federation」(ワークロードIDフェデレーション)、すなわちWIFを使用すると、AWS IAM、Google Cloud、または標準準拠のOIDC発行者(GitHub Actions、Kubernetesサービスアカウント、SPIFFE、Microsoft Entra ID、Oktaなど)といった、すでに信頼している「identity provider」(IDプロバイダー)、すなわちIdPが発行する短期間有効なIDトークンでワークロードを認証できます。ワークロードは、IdPが発行したJWTをPOST /v1/oauth/tokenで短期間有効なClaude APIアクセストークンと交換し、SDKはそのトークンが期限切れになる前に自動的に更新します。生成、配布、ローテーションが必要なsk-ant-api...文字列はありません。
フェデレーションにより、環境から長期間有効なClaude APIキーが排除されるため、認証情報が漏洩した場合の影響範囲が縮小され、クラウドリソースにすでに使用しているのと同じIdPコントロールでアクセスを管理できます。ただし、それだけでエンドツーエンドのセキュリティが保証されるわけではありません。信頼チェーンはIDプロバイダーの設定の強度に依存し、1ホップ上流にある長期間有効なシークレット(たとえば、IdPトークンを生成できる静的なクラウド認証情報)によって依然として損なわれる可能性があります。フェデレーションは、IP許可リスト、MFA、監査ログなど、プロバイダーのコントロールと組み合わせて使用してください。
フェデレーションを設定するには、Claude Consoleで3つのリソース(サービスアカウント、フェデレーション発行者、フェデレーションルール)を作成し、SDKをそのルールに向けます。完全なセットアップ手順については、Workload Identity Federationを参照してください。
App Attestは、デバイスから直接Claude APIを呼び出すiOSおよびmacOSアプリを認証します。各インストールは、AppleのApp Attestサービスを使用して、Claude Consoleに登録したアプリの正規かつ改変されていないビルドであることを証明します。その後、Anthropicはデバイスに短期間有効なアクセストークンを発行し、使用量をワークスペースに請求します。トークンはワークスペースにスコープされ、1時間後に期限切れになり、Messages API呼び出しのみを認可します。
アプリを登録してクライアントIDを取得するには、iOSおよびmacOSアプリ向けApp Attestを参照してください。
発行者、ルール、サービスアカウントを設定し、トークンを交換します
AWS、Google Cloud、Azure、GitHub Actions、Kubernetes、SPIFFE、Oktaのステップバイステップガイド
環境変数、検証ルール、プロファイル設定、エラーリファレンス
APIキーを同梱せずに、アプリの正規インストールがClaude APIを呼び出せるようにします
Python、TypeScript、C#、Go、Java、PHP、Ruby、およびCLI
Was this page helpful?