Skip to content

原文(日本語に翻訳)

ANTHROPIC_WORKSPACE_ID環境変数を追加しました。ワークロードアイデンティティフェデレーション用で、フェデレーションルールが複数のワークスペースをカバーする場合に、発行されたトークンを特定のワークスペースにスコープします。

原文(英語)

Added ANTHROPIC_WORKSPACE_ID environment variable for workload identity federation — scopes the minted token to a specific workspace when the federation rule covers more than one

概要

ワークロードアイデンティティフェデレーション(WIF)は、静的なAPIキー(sk-ant-...)の代わりに、AWS IAM・GCP・GitHub ActionsなどのOIDCプロバイダーから発行された短命トークンでAnthropicのAPIを認証する仕組みです。ANTHROPIC_WORKSPACE_IDを設定することで、1つのフェデレーションルールが複数のワークスペースに対応している場合でも、使用するワークスペースを明示的に指定できます。

基本的な使い方

フェデレーション認証が設定されている環境で、ワークスペースIDを指定します。

bash
export ANTHROPIC_WORKSPACE_ID=ws-xxxxxxxxxxxxxxxx
export ANTHROPIC_FEDERATION_RULE_ID=fed-xxxxxxxxxxxxxxxx
export ANTHROPIC_IDENTITY_TOKEN_FILE=/var/run/secrets/oidc/token

claude

実践例

GitHub Actionsでのワークスペース指定

yaml
# .github/workflows/claude-ci.yml
name: Claude Code Review

on: [pull_request]

permissions:
  id-token: write   # OIDC token取得に必要
  contents: read

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Mint OIDC token
        id: oidc
        run: |
          # GitHub ActionsのOIDCトークンを取得
          TOKEN=$(curl -sH "Authorization: bearer $ACTIONS_ID_TOKEN_REQUEST_TOKEN" \
            "$ACTIONS_ID_TOKEN_REQUEST_URL" | jq -r .value)
          echo "$TOKEN" > /tmp/oidc-token
          echo "token_file=/tmp/oidc-token" >> $GITHUB_OUTPUT

      - name: Run Claude Code with workspace scoping
        env:
          # ワークスペースIDを明示的に指定
          ANTHROPIC_WORKSPACE_ID: ${{ vars.ANTHROPIC_WORKSPACE_ID }}
          ANTHROPIC_FEDERATION_RULE_ID: ${{ vars.ANTHROPIC_FEDERATION_RULE_ID }}
          ANTHROPIC_IDENTITY_TOKEN_FILE: ${{ steps.oidc.outputs.token_file }}
        run: |
          claude --print "このPRのコードをレビューしてください" < diff.txt

Kubernetesサービスアカウントでの使用

yaml
# kubernetes/claude-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
  name: claude-analysis
spec:
  template:
    spec:
      serviceAccountName: claude-sa  # WIF設定済みサービスアカウント
      containers:
        - name: claude
          image: node:22
          command: ["claude", "--print", "コードを分析してください"]
          env:
            - name: ANTHROPIC_WORKSPACE_ID
              valueFrom:
                secretKeyRef:
                  name: anthropic-config
                  key: workspace-id
            - name: ANTHROPIC_FEDERATION_RULE_ID
              valueFrom:
                secretKeyRef:
                  name: anthropic-config
                  key: federation-rule-id
            - name: ANTHROPIC_IDENTITY_TOKEN_FILE
              value: /var/run/secrets/kubernetes.io/serviceaccount/token

複数ワークスペース間の使い分け

1つのフェデレーションルールが複数のワークスペース(例:開発用・本番用)に対応している場合、ANTHROPIC_WORKSPACE_IDで使い分けます。

bash
# 開発環境
export ANTHROPIC_WORKSPACE_ID=ws-dev-xxxxxxxxxxxx
claude

# 本番環境  
export ANTHROPIC_WORKSPACE_ID=ws-prod-xxxxxxxxxxxx
claude

注意点

  • ANTHROPIC_WORKSPACE_IDはワークロードアイデンティティフェデレーション使用時のみ有効です。通常のAPIキー認証では使用しません。
  • フェデレーションルールが単一のワークスペースのみをカバーしている場合、この変数は不要です。
  • ワークスペースIDはAnthropicコンソールで確認できます。
  • 短命トークンが期限切れになると自動的に再発行されるため、CI/CDパイプラインでの長時間実行にも対応しています。

関連情報