Claude Platform Docs
AdminVerschlüsselungsschlüssel (CMEK)

AWS KMS für CMEK konfigurieren

Verwende AWS KMS, um einen Verschlüsselungsschlüssel für deine Organisation bereitzustellen.

Claude Code

Lass Claude Code diese Funktion für dich einrichten

/claude-api hilf mir, einen kundenverwalteten Verschlüsselungsschlüssel mit AWS KMS zu konfigurieren

Diese Anleitung führt durch die Konfiguration eines AWS KMS-Schlüssels als customer-managed encryption key (CMEK) für deine Anthropic-Organisation.

Voraussetzungen

  • Ein AWS-Konto mit Berechtigungen zum Erstellen von KMS-Schlüsseln und Festlegen von Schlüsselrichtlinien (kms:CreateKey und kms:PutKeyPolicy).
  • Ein Anthropic Admin-API-Key für deine Organisation.
  • Die AWS CLI installiert und authentifiziert.

Amazon Resource Name (ARN) für Anthropic

Damit Anthropic deinen Verschlüsselungsschlüssel verwendet, musst du Anthropics IAM-Rolle einen KMS-Schlüssel geben, den sie zum Verschlüsseln von Daten verwenden kann. Der ARN für Anthropic CMEK lautet:

arn:aws:iam::915198916910:role/anthropic-cmek-client-us

Einrichtung des Verschlüsselungsschlüssels

  1. Erstelle den KMS-Schlüssel mit einer kontoübergreifenden Schlüsselrichtlinie

    Die Schlüsselrichtlinie gewährt Anthropics IAM-Rolle kontoübergreifenden Zugriff. Drei Anweisungen sind erforderlich:

    1. Account-Root-Admin: das Standard-KMS-Muster. Dein Konto behält die volle Admin-Kontrolle.
    2. Anthropic encrypt und decrypt: die Aktionen kms:Encrypt und kms:Decrypt, die Anthropic verwendet, um die Datenschlüssel zu verschlüsseln und zu entschlüsseln, die deine Workspace-Daten schützen (Envelope-Verschlüsselung).
    3. Anthropic describe: der Metadaten-Lesevorgang, den Anthropic beim Start durchführt. Er wird separat gewährt, weil DescribeKey keinen EncryptionContext-Parameter hat, sodass eine EncryptionContext-Bedingung für diese Aktion immer verweigern würde.

    Um deine AWS-Konto-ID zu finden, führe aws sts get-caller-identity --query Account --output text aus.

    Ersetze in der Richtlinie <AWS_ACCOUNT_ID> durch deine AWS-Konto-ID und <ORGANIZATION_UUID> durch deine Organisations-ID. Die StringEquals-Bedingung für kms:EncryptionContext:anthropic:org_uuid bindet den Schlüssel an deine Anthropic-Organisation, und die Validierung lehnt einen Schlüssel ohne sie ab. Um einen Schlüssel unter mehreren Anthropic-Organisationen zu teilen, liste jede Organisations-ID im Bedingungswert auf.

    Speichere die Richtlinie als key-policy.json. Um den Schlüssel stattdessen in der AWS Console zu erstellen, füge die Richtlinie dort ein, wie später in diesem Schritt beschrieben.

    key-policy.json
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AccountRootAdmin",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:root"
          },
          "Action": "kms:*",
          "Resource": "*"
        },
        {
          "Sid": "AllowAnthropicCMEKCrypto",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::915198916910:role/anthropic-cmek-client-us"
          },
          "Action": ["kms:Encrypt", "kms:Decrypt"],
          "Resource": "*",
          "Condition": {
            "StringEquals": {
              "kms:EncryptionContext:anthropic:org_uuid": ["<ORGANIZATION_UUID>"]
            }
          }
        },
        {
          "Sid": "AllowAnthropicCMEKDescribe",
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::915198916910:role/anthropic-cmek-client-us"
          },
          "Action": "kms:DescribeKey",
          "Resource": "*"
        }
      ]
    }
    aws kms create-key \
      --region <REGION> \
      --description "Anthropic CMEK" \
      --key-usage ENCRYPT_DECRYPT \
      --policy file://key-policy.json

    Erfasse KeyMetadata.Arn aus der Ausgabe. Du benötigst es, wenn du den Schlüssel im nächsten Schritt registrierst.

    Anthropic validiert den Schlüssel, wenn du ihn verifizierst oder an einen Workspace anhängst. Jede Validierung fügt CloudTrail vier Access-Denied-Fehler hinzu. Diese sind zu erwarten. Wenn du sie herausfiltern musst, filtere nach allen drei der folgenden Werte. Der erste allein reicht nicht aus, weil jeder Aufrufer ihn setzen kann:

    • requestParameters.encryptionContext.associatedData: Y21lay12YWxpZGF0aW9u
    • userIdentity.accountId: 915198916910
    • resources.ARN: arn:aws:kms:<REGION>:<AWS_ACCOUNT_ID>:key/<KEY_ID>

    Du kannst den Schlüssel auch über die AWS Console erstellen. Wähle einen symmetrischen Schlüssel mit der Schlüsselverwendung „encrypt and decrypt", einen Single-Region-Schlüssel und KMS-Schlüsselmaterial-Ursprung. Der Create-Key-Assistent legt bei seinem Schritt Review eine Schlüsselrichtlinie fest: Wenn du dort Anthropics Konto-ID 915198916910 unter den Schlüsselverwendungsberechtigungen hinzufügst, gewährt die generierte Richtlinie dem gesamten Anthropic-Konto umfassendere Aktionen (wie kms:ReEncrypt* und kms:GenerateDataKey*) ohne EncryptionContext-Bedingung, und die Validierung lehnt sie ab. Um keinen überberechtigten Schlüssel zu hinterlassen, beende den Assistenten nur mit administrativen Berechtigungen, öffne dann den Tab Key policy des Schlüssels und ersetze das JSON durch die key-policy.json-Richtlinie, die zuvor in diesem Schritt gezeigt wurde.

    Create-Key-Assistent in AWS KMS beim Schritt Configure key (Schlüssel konfigurieren). Ausgewählt sind der Schlüsseltyp symmetrisch, die Schlüsselverwendung „encrypt and decrypt“ und ein Single-Region-Schlüssel.

    Schlüssel konfigurieren: symmetrisch, encrypt and decrypt, Single-Region-Schlüssel.

    Schritt Add labels (Labels hinzufügen) in AWS KMS mit dem Alias anthropic-cmek und der Beschreibung Anthropic CMEK.

    Füge einen Alias und eine Beschreibung für den Schlüssel hinzu.

    Schritt Define key administrative permissions (administrative Schlüsselberechtigungen definieren) in AWS KMS mit einer Liste der IAM-Rollen, die den Schlüssel verwalten können.

    Definiere administrative Schlüsselberechtigungen (optional). Dein Konto behält die volle Admin-Kontrolle.

    Schritt Define key usage permissions (Schlüsselverwendungsberechtigungen definieren) in AWS KMS, in dem Anthropics Konto-ID unter Other AWS accounts (andere AWS-Konten) eingetragen ist.

    Füge hier nicht Anthropics Konto-ID hinzu. Dieser Assistentenschritt erzeugt eine überberechtigte Richtlinie. Lasse die Verwendungsberechtigungen leer und bearbeite das Key-policy-JSON nach der Erstellung (siehe die vorherige Schlüsselrichtlinie).

Den Schlüssel bei Anthropic registrieren

Wie du den Schlüssel registrierst, hängt davon ab, welches Produkt du verwendest.

Du kannst den Schlüssel in der Claude Console oder über die Admin-API einrichten, mit demselben Ergebnis.

  1. Den Schlüssel bei Anthropic registrieren

    Gehe in der Claude Console zur Seite Data retention (platform.claude.com/settings/privacy). Wenn du Encryption keys nicht siehst, wähle Organization aus dem Dropdown-Menü oben auf der Seite aus. Klicke unter Encryption keys auf Add key. Gib einen Anzeigenamen ein, wähle AWS KMS und klicke auf Continue. Füge den Schlüssel-ARN in KMS key ARN ein und klicke auf Add.

    Der Schlüsseldetails-Schritt zeigt deine Organisations-ID an. Füge sie der Schlüsselrichtlinie hinzu, bevor du auf Add klickst.

  2. Den Schlüssel validieren

    Klicke in der Liste Encryption keys neben dem Schlüssel auf Verify. Connected erscheint, wenn die Prüfung erfolgreich ist. Wenn sie fehlschlägt, nennt eine Meldung den Grund.

  3. Den Schlüssel an einen Workspace anhängen

    Gehe in der Claude Console zur Seite Data retention (platform.claude.com/settings/privacy) und wähle den Workspace aus dem Dropdown-Menü oben auf der Seite aus. Wähle unter Encryption key den Schlüssel aus, klicke auf Save und bestätige. Das Anhängen eines Schlüssels kann nicht rückgängig gemacht werden. Bei einem Workspace, der bereits Anfragen erhält, kann es bis zu einem Tag dauern, bis der Schlüssel wirksam wird.

CMEK auf Claude Platform on AWS einrichten

Auf Claude Platform on AWS verwendet CMEK nur AWS-KMS-Schlüssel, und die Einrichtung unterscheidet sich von den vorherigen Abschnitten in folgenden Punkten:

  • Principal: Deine Schlüsselrichtlinie gewährt dem AWS-Service-Principal aws-external-anthropic.amazonaws.com Zugriff. Anthropics IAM-Rolle und Konto-ID werden nicht verwendet, sodass der ARN für Anthropic nicht gilt.
  • Schlüsselanforderungen: Der Schlüssel muss ein symmetrischer KMS-Schlüssel mit Encrypt-und-Decrypt-Verwendung sein, Single-Region und im selben AWS-Konto und derselben Region wie der Workspace, an den du ihn anhängst. Kontoübergreifende Schlüssel werden nicht unterstützt: Der Schlüssel muss sich in dem AWS-Konto befinden, das deine Organisation hostet. Multi-Region-Schlüssel (Schlüssel-IDs, die mit mrk- beginnen) und Alias-ARNs werden abgelehnt, wenn du den Schlüssel registrierst; verwende den Schlüssel-ARN.
  • Kein separater Validierungsschritt: Abgesehen von diesen Prüfungen des Schlüssel-ARN bei der Registrierung wird der Schlüssel validiert, wenn du ihn an einen Workspace anhängst. Der Anhängeaufruf führt einen Encrypt/Decrypt-Durchlauf gegen den Schlüssel mit der Compartment-ID dieses Workspaces als Encryption Context durch, sodass ein Problem mit der Schlüsselrichtlinie beim Anhängen statt bei der Registrierung auftritt. Eine EncryptionContext-Bedingung benötigt daher keinen Nur-Nullen-Eintrag.
  • Wo du Schlüssel verwaltest: Registriere und hänge Schlüssel in der Claude Console an, angemeldet über AWS mit der Admin-Rolle. Die externen Schlüssel-Endpunkte sind auch auf Claude Platform on AWS verfügbar, autorisiert über IAM-Aktionen; dort wird ein Schlüssel durch seinen KMS-Schlüssel-ARN statt durch eine ekey_-ID identifiziert.

Voraussetzungen

  • Das AWS-Konto, das deine Claude Platform on AWS-Organisation hostet, mit Berechtigungen zum Erstellen von KMS-Schlüsseln und Festlegen von Schlüsselrichtlinien (kms:CreateKey und kms:PutKeyPolicy).
  • Die Admin-Rolle in der Claude Console für Claude Platform on AWS. Siehe Die Claude Console verwenden.
  • Für den IAM-Principal, mit dem du dich bei der Claude Console anmeldest: neben aws-external-anthropic:AssumeConsole die IAM-Aktionen für die Operationen, die du dort ausführst, weil das Registrieren, Auflisten und Anhängen von Schlüsseln über das AWS-Gateway läuft. Das Registrieren eines Schlüssels ist RegisterKey (mit ListKeys und GetKey zum Anzeigen von Registrierungen), und das Anhängen ist UpdateWorkspace oder CreateWorkspace. Die Aktionen für externe Schlüssel (und CreateWorkspace) sind kontobezogen, gewähre sie also auf Resource: "*"; eine auf Workspace-ARNs beschränkte Richtlinie schließt sie nicht ein.
  • Für den IAM-Principal, der den Schlüssel an einen Workspace anhängt (die Identität, mit der du dich bei der Claude Console angemeldet hast): kms:DescribeKey, kms:Encrypt und kms:Decrypt für den Schlüssel. Der Zugriff deines Principals auf den Schlüssel wird beim Anhängen geprüft, zusätzlich zu dem des Service-Principals.
  • Optional, für den Schlüssel-Picker in der Claude Console: kms:ListKeys und kms:DescribeKey für den Principal, mit dem du dich anmeldest. Ohne sie füge stattdessen den Schlüssel-ARN ein.

Den KMS-Schlüssel erstellen

Die Schlüsselrichtlinie hat drei Anweisungen: die Root-Admin-Anweisung deines Kontos; eine Anweisung, die dem Claude Platform on AWS-Service-Principal das Verschlüsseln, Entschlüsseln und Generieren von Datenschlüsseln erlaubt; und eine separate Anweisung für kms:DescribeKey. Die Krypto-Anweisung enthält eine optionale EncryptionContext-Bedingung, die den Schlüssel an die von dir aufgelisteten Workspaces bindet. DescribeKey wird separat gewährt, weil es keinen EncryptionContext-Parameter hat, sodass eine EncryptionContext-Bedingung für diese Aktion immer zu einer Ablehnung führen würde.

Wenn du die hier gezeigte optionale EncryptionContext-Bedingung verwenden möchtest, erstelle zuerst den Workspace (ohne Schlüssel), kopiere seine Compartment-ID und setze sie für <compartment-uuid> ein. Um die ID in der Claude Console zu finden, gehe zur Seite Data retention (platform.claude.com/settings/privacy) und wähle den Workspace aus dem Dropdown-Menü oben auf der Seite aus. Die ID befindet sich unter Encryption key im Feld Compartment ID. Du kannst sie auch aus dem Feld compartment_id lesen, das vom Endpunkt Get Workspace zurückgegeben wird. Wenn du die Bedingung nicht verwenden möchtest, lösche den Condition-Block aus dieser Anweisung.

export YOUR_ACCOUNT=$(aws sts get-caller-identity --query Account --output text)

aws kms create-key \
  --region <workspace-region> \
  --description "Anthropic CMEK (Claude Platform on AWS)" \
  --key-usage ENCRYPT_DECRYPT \
  --policy "{
    \"Version\": \"2012-10-17\",
    \"Statement\": [
      {
        \"Sid\": \"AccountRootAdmin\",
        \"Effect\": \"Allow\",
        \"Principal\": {\"AWS\": \"arn:aws:iam::${YOUR_ACCOUNT}:root\"},
        \"Action\": \"kms:*\",
        \"Resource\": \"*\"
      },
      {
        \"Sid\": \"AllowClaudePlatformOnAWSCrypto\",
        \"Effect\": \"Allow\",
        \"Principal\": {\"Service\": \"aws-external-anthropic.amazonaws.com\"},
        \"Action\": [\"kms:Encrypt\", \"kms:Decrypt\", \"kms:GenerateDataKey\"],
        \"Resource\": \"*\",
        \"Condition\": {
          \"StringEquals\": {
            \"kms:EncryptionContext:anthropic:compartment_uuid\": [
              \"<compartment-uuid>\"
            ]
          }
        }
      },
      {
        \"Sid\": \"AllowClaudePlatformOnAWSDescribe\",
        \"Effect\": \"Allow\",
        \"Principal\": {\"Service\": \"aws-external-anthropic.amazonaws.com\"},
        \"Action\": \"kms:DescribeKey\",
        \"Resource\": \"*\"
      }
    ]
  }"

Erfasse KeyMetadata.Arn aus der Ausgabe. Du benötigst es, wenn du den Schlüssel registrierst.

Die EncryptionContext-Bedingung ist optional. Jeder Verschlüsselungs-, Entschlüsselungs- und Datenschlüsselaufruf für einen Workspace, einschließlich der Prüfung beim Anhängen, enthält die Compartment-ID dieses Workspaces als anthropic:compartment_uuid. Die Bedingung listet daher die Compartment-ID jedes Workspaces auf, an den du den Schlüssel anhängst, und benötigt keinen Nur-Nullen-Eintrag. Wenn du sie hinzufügst, wird der Schlüssel auch auf IAM-Ebene an die von dir aufgelisteten Workspaces gebunden. Da eine Compartment-ID erst existiert, wenn ihr Workspace existiert, ist die Reihenfolge: Workspace erstellen, seine Compartment-ID in die Bedingung eintragen (bei der Schlüsselerstellung oder später mit kms:PutKeyPolicy), dann den Schlüssel anhängen. Bevor du den Schlüssel an jeden weiteren Workspace anhängst, füge die Compartment-ID dieses Workspaces auf dieselbe Weise hinzu. Um ohne die Bedingung zu beginnen, lösche den Condition-Block aus der Anweisung AllowClaudePlatformOnAWSCrypto; wenn du sie später hinzufügst, nimm die Compartment-ID jedes Workspaces auf, an den der Schlüssel bereits angehängt ist.

Du kannst beide Service-Principal-Anweisungen mit einer aws:SourceArn-Bedingung weiter einschränken. Der Service übergibt bei jedem Aufruf, den er mit deinem Schlüssel durchführt, den ARN des Workspaces (arn:aws:aws-external-anthropic:<region>:<account-id>:workspace/<workspace-id>) als Source-ARN. Daher beschränkt "ArnLike": {"aws:SourceArn": "arn:aws:aws-external-anthropic:*:<account-id>:workspace/*"} die Berechtigung auf Workspaces in deinem eigenen AWS-Konto, und eine Liste vollständiger Workspace-ARNs beschränkt sie auf diese Workspaces. Diese Bedingung ist nicht erforderlich; die EncryptionContext-Bedingung allein bindet den Schlüssel an die von dir aufgelisteten Workspaces.

Du kannst den Schlüssel auch über die AWS Console erstellen: Wähle einen symmetrischen Schlüssel mit der Schlüsselverwendung „encrypt and decrypt", einen Single-Region-Schlüssel und KMS-Schlüsselmaterial-Ursprung, in der Region des Workspaces. Lasse die Schlüsselverwendungsberechtigungen im Create-Key-Assistenten leer, öffne dann den Tab Key policy des Schlüssels und ersetze das JSON durch die hier gezeigte Richtlinie.

Den Schlüssel registrieren und anhängen

  1. Den Schlüssel registrieren

    Gehe in der Claude Console zur Seite Data retention (platform.claude.com/settings/privacy). Wenn du Encryption keys nicht siehst, wähle Organization aus dem Dropdown-Menü oben auf der Seite aus. Klicke unter Encryption keys auf Add key. Gib einen Anzeigenamen ein, wähle dann den Schlüssel aus dem Schlüssel-Picker oder wähle Enter ARN manually und füge den Schlüssel-ARN ein, und klicke auf Add. Der Schlüssel muss sich in dem AWS-Konto befinden, das deine Organisation hostet; kontoübergreifende Schlüssel werden nicht unterstützt. Der Picker listet die aktivierten, kundenverwalteten, symmetrischen Single-Region-Schlüssel in deinem Konto in einer der Regionen deiner Organisation auf; für einen Schlüssel, den der Picker nicht auflistet, gib den ARN ein. Er listet Schlüssel nur auf, wenn der Principal, mit dem du dich angemeldet hast, kms:ListKeys und kms:DescribeKey aufrufen kann.

  2. Den Schlüssel an einen Workspace anhängen

    Hänge den Schlüssel an einen neuen Workspace an, bevor du Anfragen an diesen Workspace sendest. Bei einem Workspace, der bereits Anfragen erhält, kann es bis zu einem Tag dauern, bis der Schlüssel wirksam wird. Gehe in der Claude Console zur Seite Data retention (platform.claude.com/settings/privacy) und wähle den Workspace aus dem Dropdown-Menü oben auf der Seite aus. Wähle unter Encryption key den Schlüssel aus, klicke auf Save und bestätige. Du kannst auch beim Erstellen eines Workspaces in der Claude Console einen Schlüssel auswählen, aber nur, wenn deine Schlüsselrichtlinie noch keine bestimmten Workspaces benennt (keine EncryptionContext-Bedingung), weil die Compartment-ID des Workspaces bei der Erstellung zugewiesen wird. Nach dem Anhängen kann der Schlüssel eines Workspaces nicht mehr geändert werden.

    Dies ist der Zeitpunkt, an dem der Schlüssel validiert wird: Der Anhängeaufruf prüft den Zugriff deines Principals auf den Schlüssel und führt einen Encrypt/Decrypt-Durchlauf gegen ihn mit der Compartment-ID des Workspaces als Encryption Context durch, sodass ein Problem entweder mit der Schlüsselrichtlinie oder den Berechtigungen deines Principals als Fehler bei diesem Aufruf auftritt. Wenn das Anhängen mit einem KMS-Zugriffsfehler fehlschlägt, prüfe Folgendes:

    • Die Schlüsselrichtlinie benennt den Service-Principal aws-external-anthropic.amazonaws.com und gewährt kms:Encrypt, kms:Decrypt und kms:GenerateDataKey, plus kms:DescribeKey in einer separaten Anweisung, die keine EncryptionContext-Bedingung hat.
    • Jede EncryptionContext-Bedingung enthält die Compartment-ID dieses Workspaces, und jede von dir hinzugefügte aws:SourceArn-Bedingung stimmt mit dem ARN dieses Workspaces überein.
    • Der Schlüssel ist aktiviert, Single-Region und im selben AWS-Konto und derselben Region wie der Workspace.
    • Der Principal, als der du angemeldet bist, hat kms:DescribeKey, kms:Encrypt und kms:Decrypt für den Schlüssel.
    • Keine Service Control Policy oder Resource Control Policy in deiner AWS-Organisation verhindert, dass der Service-Principal oder dein Principal den Schlüssel verwendet.
    • Wenn die Richtlinie korrekt aussieht und das Anhängen trotzdem fehlschlägt, suche das abgelehnte kms:-Ereignis in CloudTrail im Konto des Schlüssels (es zeigt den aufrufenden Principal und bei kryptografischen Aufrufen den Encryption Context), korrigiere dann die Bedingung mit kms:PutKeyPolicy und versuche es erneut.

Terraform

Für Infrastructure-as-Code-Bereitstellungen werden dieselben Schritte auf den aws-Provider mit den Ressourcen aws_kms_key und aws_kms_alias abgebildet.

Was this page helpful?