Claude CMEKのcmek_key_disabledエラー — 3種の原因と直し方
CMEKのcmek_key_disabled・cmek_key_network_blocked・cmek_key_unreachableの原因と、KMS別の検証失敗、CloudTrailの想定内エラーの見分け方をまとめます。
CMEK(顧客管理暗号鍵)を有効にしたワークスペースで、リクエストが突然失敗することがあります。エラーコードは3種類です。cmek_key_disabled と cmek_key_network_blocked は400、cmek_key_unreachable は503で返ります。
この3つは原因も直し方も違います。400の2つは自分のKMS側の設定を直す問題で、503はリトライで足りる可能性があります。コードを見分けるだけで、最初に触る場所が決まります。
| コード | ステータス | 最初に疑う場所 | リトライで直るか |
|---|---|---|---|
cmek_key_disabled | ステータス400 | 最初に疑う場所鍵の状態、Anthropicへのアクセス権、キーポリシー | リトライで直るか直らない(原因の修正が先) |
cmek_key_network_blocked | ステータス400 | 最初に疑う場所KMSのファイアウォール、IP許可リスト | リトライで直るか直らない(許可設定が先) |
cmek_key_unreachable | ステータス503 | 最初に疑う場所KMS側の障害、鍵の可用性 | リトライで直るか直る場合がある |
設定手順そのものはAWS KMSの設定、Google Cloud KMSの設定、Azure Key Vaultの設定にあります。ここではエラーから原因をたどる側に絞ります。
cmek_key_disabledは4つの原因を順に確かめる
メッセージは「Customer-managed encryption key is disabled or revoked. Re-enable the key to restore access.」です。鍵管理サービスがAnthropicの呼び出しを拒否したときに出ます。名前は「無効」ですが、鍵を無効にした場合だけではありません。
原因は次の順で確かめます。
cmek_key_disabledの切り分け順
- 1
鍵が無効になっていないか
KMS側で鍵の状態を見ます。無効化されていれば、再び有効にします。
- 2
Anthropicのアクセス権が外れていないか
Consoleの設定画面に、Anthropicが必要とするアクセスが表示されます。キーポリシーやIAMの変更で、その権限が消えていないかを比べます。
- 3
AWS KMSでワークスペースが条件に載っているか
キーポリシーにワークスペースを列挙する条件がある場合、このワークスペースが漏れていると拒否されます。
- 4
AWS KMSでIP条件が塞いでいないか
キーポリシーのIP条件が、Anthropicの送信元IPアドレスを弾いていないかを確かめます。
1つ目と2つ目はどのKMSでも共通です。3つ目と4つ目はAWS KMS固有の原因なので、Google Cloud KMSやAzure Key Vaultでは該当しません。
直したあとに残る2つの制約
原因を直してアクセスが戻っても、失敗したリクエストが自動で再実行されることはありません。無効だった間に失敗した分は、呼び出し側で再送します。
もう1つは保持期間です。鍵が無効でも、データの保持期間は止まりません。無効にしている間も時計は進みます。
変更が反映されるまで最大1時間かかる
鍵の無効化やAnthropicのアクセス権の取り消しは、反映まで最大1時間かかります。その間に処理中のリクエストは成功することがあります。
逆に言えば、権限を直した直後に同じエラーが残っていても、すぐに別の原因を疑う必要はありません。再度の失敗が続くなら、上の4つを改めて見直します。
cmek_key_network_blockedは鍵が無事でも出る
メッセージは、KMSのネットワークアクセス制御(ファイアウォールやIP許可リスト)でリクエストが遮られたことを示します。ステータスは400です。
鍵そのものは正常な場合があります。対処は、Anthropicが公開している送信元IPアドレスを、KMS側のネットワークルールで許可することです。設定が正しく見えるのに続く場合は、Anthropicのサポートに連絡する案内になっています。
cmek_key_disabled の4つ目(AWS KMSのIP条件)と近い原因ですが、見ている層が違います。キーポリシーの条件で弾かれるなら前者、KMSへの経路自体が遮られるなら後者です。
cmek_key_unreachableはリトライが基本
メッセージは「The workspace's customer-managed encryption key could not be reached.」で始まり、少し待って再試行するよう案内します。503です。
Anthropicが鍵に到達できないときに出ます。たとえば、KMS側の障害のあいだです。鍵を使ってデータを保存するリクエストが対象で、Claude Enterpriseではチャットや音声モードのメッセージも含まれます。
Messages APIでは呼び出し側でリトライします。Message Batches APIは、鍵が使えるようになるかバッチが期限切れになるまで、自動で再試行します。
import time
import anthropic
client = anthropic.Anthropic()
def create_with_retry(**kwargs):
for attempt in range(5):
try:
return client.messages.create(**kwargs)
except anthropic.InternalServerError:
# 5xx 系(cmek_key_unreachable を含む)だけ待って再試行する
time.sleep(2 ** attempt)
raise RuntimeError("鍵が復旧しません。KMS側の状態を確認してください")上のコードは書き方の一例です。400のコードは再試行しても結果が変わらないので、BadRequestError は捕まえずにそのまま上げ、原因の修正に回します。5回待っても直らないときは、KMSの鍵が利用可能かを自分で見ます。
検証が失敗するときの原因をKMS別に見る
セットアップ時のエラーは別です。ConsoleのVerify、claude.aiのAdd、Admin APIのvalidate呼び出しは、同じ検証を走らせます。ConsoleではConnection failedと表示されます。
AWS KMS
| 原因 | 直し方 |
|---|---|
| 組織IDが違う | 直し方org_uuid 条件に、org_ を除いたUUIDで自分のAnthropic組織IDを書く |
| ポリシーにワークスペースが無い | 直し方compartment_uuid 条件に、鍵を紐づける各ワークスペースのコンパートメントIDを並べる |
| IAM経由でアクセスを渡している | 直し方Anthropicのロールへの権限は、キーポリシー自体に書く |
現在のキーポリシーは、次のコマンドで出力できます。
aws kms get-key-policy \
--region <REGION> \
--key-id <KEY_ARN> \
--policy-name defaultすでにデータを守っている鍵のポリシーを置き換えるときは、既存データの復号用に、次のステートメントを足します。条件には、その鍵が現在または過去に紐づいたすべてのワークスペースのコンパートメントIDを入れます。
{
"Sid": "AllowAnthropicCMEKDecryptExistingData",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::915198916910:role/anthropic-cmek-client-us"
},
"Action": "kms:Decrypt",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:anthropic:compartment_uuid": ["<COMPARTMENT_UUID>"]
}
}
}Google Cloud KMS
| 原因 | 直し方 |
|---|---|
| 組織ラベルが違う | 直し方鍵に組織ラベルを付け、Anthropicの組織IDを小文字で書く |
| ドメイン制限付き共有 | 直し方この組織ポリシーがAnthropicのサービスアカウントへの付与を止めるため、例外を追加する |
| 鍵バージョンが無効または破棄済み | 直し方プライマリバージョンを有効にする |
付与の状態は、次のコマンドで確認できます。
gcloud kms keys get-iam-policy <your-key-name> \
--project=<your-project-id> \
--location=<region> \
--keyring=<your-keyring-name>Azure Key Vault
| 原因 | 直し方 |
|---|---|
| 組織タグが違う | 直し方鍵の現在のバージョンに組織タグを付ける |
| ロール割り当てがまだ有効でない | 直し方新しい割り当ては反映に数分かかるので、待ってから再試行する |
| Vaultのネットワークルールが遮っている | 直し方Anthropicが必要とするVault設定と照らし合わせる |
Azureの2つ目は、直したつもりで失敗が続く典型です。設定が合っていても、数分は結果が変わりません。
Claude Platform on AWSにはVerifyがない
Claude Platform on AWSにはVerifyの手順がありません。鍵の問題は、ワークスペースに紐づけるときに初めて表に出ます。
| 原因 | 直し方 |
|---|---|
| キーポリシーの不一致 | 直し方get-key-policy の出力を、セットアップページのポリシーと見比べる |
| 条件の不一致 | 直し方EncryptionContext や aws:SourceArn の条件に、このワークスペースを含める |
| 鍵の状態や場所 | 直し方鍵が有効で、単一リージョンで、ワークスペースと同じAWSアカウントとリージョンにあること |
| 権限不足 | 直し方操作するプリンシパルに kms:DescribeKey、kms:Encrypt、kms:Decrypt が要る |
それでも失敗するときは、鍵があるアカウントのCloudTrailで、拒否された kms: イベントを探します。呼び出したプリンシパルと、暗号操作では暗号化コンテキストが記録されています。直したらSaveを押し直します。
紐づけや追加が断られる5つのパターン
セットアップの途中で、鍵そのものではなくワークスペースや組織の状態で止まることがあります。
- ワークスペースがデータを保持しない: 「CMEK keys can only be attached to workspaces in this organization that have inference data retention enabled.」と出ます。組織がZero data retention(ZDR)だと、鍵を付けられるのは保持するワークスペースだけです。先にStandard data retentionへ切り替えます。
- Encryption keyの設定項目が無い: 保持するワークスペースにしか項目が出ません。ZDR組織の既定のワークスペースは切り替えられないので、別のワークスペースを使います。
- Encryption keysのセクションが無い: Consoleのデータ保持ページで、上部のドロップダウンからOrganizationを選びます。それでも無ければ、自分のロールにその権限がないか、組織でCMEKが有効になっていません。有効化はAnthropicのアカウントチームが行います。
- ワークスペースにすでに鍵がある: 「This workspace already has a different external key attached.」と出ます。鍵の差し替えはできないので、新しいワークスペースを作ります。
- claude.aiで鍵を追加できない: 「The encryption key couldn't be added.」は、鍵の検証が失敗したことを示します。上のKMS別の表で原因を探し、Add keyを押し直します。ダイアログには前回の入力が残っています。
CloudTrailの拒否ログは想定内のものがある
AWS KMSでは、検証のたびにCloudTrailへ「access denied」が並びます。Claude PlatformとClaude Enterpriseでは、鍵を検証するとき、ワークスペースに紐づけるとき、claude.aiで鍵を表示するときに、Anthropicが鍵を確認します。この確認1回ごとに、想定内の拒否エラーが4件記録されます。
障害と区別するには、次の3つをすべて満たすイベントだけを除外します。
requestParameters.encryptionContext.associatedDataがY21lay12YWxpZGF0aW9uuserIdentity.accountIdが915198916910resources.ARNがarn:aws:kms:<REGION>:<AWS_ACCOUNT_ID>:key/<KEY_ID>
1つ目だけでは足りません。呼び出し元は誰でもこの値を設定できるため、アカウントIDと鍵のARNも合わせて条件にします。アラートの除外ルールを作るときは、3条件のAND一致にします。
機能が止まったときは別の可能性もある
エラーコードが出ず、特定の機能だけが動かなくなったなら、CMEKが無効にする機能に当たっているのかもしれません。Claude PlatformとClaude Enterpriseそれぞれに、無効になる機能と変わる機能の一覧があります。一覧の読み方はCMEKの機能制限にまとめています。
ここまでで該当がなければ、Anthropicのアカウントチームへの連絡が案内されています。仕組みの全体像はCMEKとはが出発点です。