Claude Platform Docs
AdministraçãoChaves de criptografia (CMEK)

Configurar o AWS KMS para CMEK

Use o AWS KMS para fornecer uma chave de criptografia para sua organização.

Claude Code

Deixe o Claude Code configurar este recurso para você

/claude-api me ajude a configurar uma chave de criptografia gerenciada pelo cliente com o AWS KMS

Este guia orienta a configuração de uma chave do AWS KMS como uma chave de criptografia gerenciada pelo cliente (CMEK) para sua organização Anthropic.

Pré-requisitos

  • Uma conta AWS com permissões para criar chaves KMS e definir políticas de chave (kms:CreateKey e kms:PutKeyPolicy).
  • Uma chave de API de Admin da Anthropic para sua organização.
  • A AWS CLI instalada e autenticada.

Amazon Resource Name (ARN) para a Anthropic

Para que a Anthropic use sua chave de criptografia, você deve fornecer à função IAM da Anthropic uma chave KMS que ela possa usar para criptografar dados. O ARN para o CMEK da Anthropic é:

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

Configuração da chave de criptografia

  1. Crie a chave KMS com uma política de chave entre contas

    A política de chave concede à função IAM da Anthropic acesso entre contas. Três declarações são necessárias:

    1. Admin raiz da conta: o padrão KMS padrão. Sua conta mantém controle administrativo total.
    2. Criptografar e descriptografar da Anthropic: as ações kms:Encrypt e kms:Decrypt, que a Anthropic usa para criptografar e descriptografar as chaves de dados que protegem os dados do seu workspace (criptografia de envelope).
    3. Describe da Anthropic: a leitura de metadados que a Anthropic realiza na inicialização. É concedida separadamente porque DescribeKey não tem parâmetro EncryptionContext, então uma condição EncryptionContext nesta ação sempre negaria.

    Para encontrar o ID da sua conta AWS, execute aws sts get-caller-identity --query Account --output text.

    Na política, substitua <AWS_ACCOUNT_ID> pelo ID da sua conta AWS e <ORGANIZATION_UUID> pelo ID da sua organização. A condição StringEquals em kms:EncryptionContext:anthropic:org_uuid vincula a chave à sua organização Anthropic, e a validação recusa uma chave sem ela. Para compartilhar uma chave entre várias organizações Anthropic, liste o ID de cada organização no valor da condição.

    Salve a política como key-policy.json. Para criar a chave no AWS Console em vez disso, cole a política lá, conforme descrito mais adiante nesta etapa.

    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

    Capture KeyMetadata.Arn da saída. Você precisará dele ao registrar a chave na próxima etapa.

    A Anthropic valida a chave quando você a verifica ou a anexa a um workspace. Cada validação adiciona quatro erros de acesso negado ao CloudTrail. Isso é esperado. Se você precisar filtrá-los, filtre pelos três valores a seguir. O primeiro sozinho não é suficiente, porque qualquer chamador pode defini-lo:

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

    Você também pode criar a chave no AWS Console. Escolha uma chave simétrica com o uso de chave de criptografar e descriptografar, uma chave de região única e origem de material de chave KMS. O assistente de criação de chave confirma uma política de chave em sua etapa Review: Se você adicionar o ID da conta da Anthropic 915198916910 nas permissões de uso de chave lá, a política gerada concede à conta inteira da Anthropic ações mais amplas (como kms:ReEncrypt* e kms:GenerateDataKey*) sem condição EncryptionContext, e a validação a recusa. Para evitar deixar uma chave com permissões excessivas, conclua o assistente apenas com permissões administrativas, depois abra a aba Key policy da chave e substitua o JSON pela política key-policy.json mostrada anteriormente nesta etapa.

    Assistente de criação de chave do AWS KMS na etapa Configure key, com o tipo de chave simétrica, o uso de chave de criptografar e descriptografar e a chave de região única selecionados.

    Configure key: symmetric, encrypt and decrypt, single-region key.

    Etapa Add labels do AWS KMS com o alias anthropic-cmek e a descrição Anthropic CMEK.

    Add an alias and description for the key.

    Etapa Define key administrative permissions do AWS KMS, listando as funções IAM que podem administrar a chave.

    Define key administrative permissions (optional). Your account retains full admin control.

    Etapa Define key usage permissions do AWS KMS com o ID da conta da Anthropic inserido em Other AWS accounts.

    Do not add Anthropic's account ID here. This wizard step produces an over-permissive policy. Leave usage permissions empty and edit the Key policy JSON after creation (see the preceding key policy).

Registrar a chave com a Anthropic

Como você registra a chave depende de qual produto você usa.

Você pode configurar a chave no Claude Console ou através da Admin API, com o mesmo resultado.

  1. Registre a chave com a Anthropic

    No Claude Console, acesse a página Data retention (platform.claude.com/settings/privacy). Se você não vir Encryption keys, selecione Organization no menu suspenso no topo da página. Em Encryption keys, clique em Add key. Insira um nome de exibição, escolha AWS KMS e clique em Continue. Cole o ARN da chave em KMS key ARN e clique em Add.

    A etapa de detalhes da chave mostra o ID da sua organização. Adicione-o à política de chave antes de clicar em Add.

  2. Valide a chave

    Na lista Encryption keys, clique em Verify ao lado da chave. Connected aparece quando a verificação é aprovada. Se falhar, uma mensagem informa o motivo.

  3. Anexe a chave a um workspace

    No Claude Console, acesse a página Data retention (platform.claude.com/settings/privacy) e selecione o workspace no menu suspenso no topo da página. Em Encryption key, selecione a chave, clique em Save e confirme. Anexar uma chave não pode ser desfeito. Para um workspace que já recebe solicitações, a chave pode levar até um dia para entrar em vigor.

Configurar o CMEK no Claude Platform on AWS

No Claude Platform on AWS, o CMEK usa apenas chaves do AWS KMS, e a configuração difere das seções anteriores nestes aspectos:

  • Principal: Sua política de chave concede acesso ao principal de serviço da AWS aws-external-anthropic.amazonaws.com. A função IAM e o ID da conta da Anthropic não são usados, então o ARN para a Anthropic não se aplica.
  • Requisitos da chave: A chave deve ser uma chave KMS simétrica com uso de criptografar e descriptografar, de região única, e na mesma conta e região AWS do workspace ao qual você a anexa. Chaves entre contas não são suportadas: a chave deve estar na conta AWS que hospeda sua organização. Chaves multirregião (IDs de chave que começam com mrk-) e ARNs de alias são rejeitados quando você registra a chave; use o ARN da chave.
  • Sem etapa de validação separada: Além dessas verificações no ARN da chave no registro, a chave é validada quando você a anexa a um workspace. A chamada de anexação realiza uma ida e volta de criptografar/descriptografar contra a chave com o ID de compartimento desse workspace como contexto de criptografia, então um problema na política de chave aparece no momento da anexação em vez de no registro. Uma condição EncryptionContext portanto não precisa de entrada todo-zeros.
  • Onde você gerencia chaves: Registre e anexe chaves no Claude Console, conectado através da AWS com a função Admin. Os endpoints de chave externa também estão disponíveis no Claude Platform on AWS, autorizados através de ações IAM; lá, uma chave é identificada por seu ARN de chave KMS em vez de um ID ekey_.

Pré-requisitos

  • A conta AWS que hospeda sua organização Claude Platform on AWS, com permissões para criar chaves KMS e definir políticas de chave (kms:CreateKey e kms:PutKeyPolicy).
  • A função Admin no Claude Console para Claude Platform on AWS. Consulte Usando o Claude Console.
  • Para o principal IAM com o qual você se conecta ao Claude Console: além de aws-external-anthropic:AssumeConsole, as ações IAM para as operações que você realiza lá, porque registrar, listar e anexar chaves passam pelo gateway da AWS. Registrar uma chave é RegisterKey (com ListKeys e GetKey para visualizar registros), e anexar uma é UpdateWorkspace ou CreateWorkspace. As ações de chave externa (e CreateWorkspace) têm escopo de conta, então conceda-as em Resource: "*"; uma política limitada a ARNs de workspace não as inclui.
  • Para o principal IAM que anexa a chave a um workspace (a identidade com a qual você se conectou ao Claude Console): kms:DescribeKey, kms:Encrypt e kms:Decrypt na chave. O acesso do seu principal à chave é verificado quando você a anexa, além do principal de serviço.
  • Opcional, para o seletor de chave no Claude Console: kms:ListKeys e kms:DescribeKey para o principal com o qual você se conecta. Sem eles, cole o ARN da chave em vez disso.

Criar a chave KMS

A política de chave tem três declarações: a declaração de administrador raiz da sua conta; uma declaração que permite ao principal de serviço do Claude Platform on AWS criptografar, descriptografar e gerar chaves de dados; e uma declaração separada para kms:DescribeKey. A declaração de criptografia contém uma condição EncryptionContext opcional que vincula a chave aos workspaces que você listar. DescribeKey é concedida separadamente porque não tem o parâmetro EncryptionContext, portanto uma condição EncryptionContext nessa ação sempre negaria o acesso.

Se você planeja usar a condição EncryptionContext opcional mostrada aqui, crie o workspace primeiro (sem uma chave), copie seu ID de compartimento e substitua <compartment-uuid> por ele. Para encontrar o ID no Claude Console, acesse a página Data retention (platform.claude.com/settings/privacy) e selecione o workspace no menu suspenso no topo da página. O ID fica em Encryption key, no campo Compartment ID. Você também pode lê-lo no campo compartment_id retornado pelo endpoint Get Workspace. Se você não planeja usar a condição, exclua o bloco Condition dessa declaração.

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\": \"*\"
      }
    ]
  }"

Capture KeyMetadata.Arn da saída. Você precisará dele ao registrar a chave.

A condição EncryptionContext é opcional. Toda chamada de criptografia, descriptografia e chave de dados feita para um workspace, incluindo a verificação no momento da anexação, carrega o ID de compartimento desse workspace como anthropic:compartment_uuid, portanto a condição lista o ID de compartimento de cada workspace ao qual você anexa a chave e não precisa de entrada todo-zeros. Adicioná-la também vincula a chave aos workspaces que você listar na camada do IAM. Como um ID de compartimento só existe depois que o workspace correspondente existe, a ordem é: criar o workspace, colocar o ID de compartimento dele na condição (na criação da chave ou posteriormente com kms:PutKeyPolicy) e, em seguida, anexar a chave. Antes de anexar a chave a cada workspace adicional, adicione o ID de compartimento desse workspace da mesma forma. Para começar sem ela, exclua o bloco Condition da declaração AllowClaudePlatformOnAWSCrypto; se você adicioná-la depois, inclua o ID de compartimento de cada workspace ao qual a chave já está anexada.

Você pode restringir ainda mais as duas declarações do principal de serviço com uma condição aws:SourceArn. O serviço passa o ARN do workspace (arn:aws:aws-external-anthropic:<region>:<account-id>:workspace/<workspace-id>) como ARN de origem em toda chamada que faz com sua chave, portanto "ArnLike": {"aws:SourceArn": "arn:aws:aws-external-anthropic:*:<account-id>:workspace/*"} limita a concessão aos workspaces da sua própria conta AWS, e uma lista de ARNs completos de workspaces a limita a esses workspaces. Essa condição não é obrigatória; a condição EncryptionContext por si só vincula a chave aos workspaces que você listar.

Você também pode criar a chave no AWS Console: escolha uma chave simétrica com o uso de chave de criptografar e descriptografar, uma chave de região única e origem de material de chave KMS, na região do workspace. Deixe as permissões de uso de chave vazias no assistente de criação de chave, depois abra a aba Key policy da chave e substitua o JSON pela política mostrada aqui.

Registrar e anexar a chave

  1. Registre a chave

    No Claude Console, acesse a página Data retention (platform.claude.com/settings/privacy). Se você não vir Encryption keys, selecione Organization no menu suspenso no topo da página. Em Encryption keys, clique em Add key. Insira um nome de exibição, depois escolha a chave no seletor de chave ou escolha Enter ARN manually e cole o ARN da chave, e clique em Add. A chave deve estar na conta AWS que hospeda sua organização; chaves entre contas não são suportadas. O seletor lista as chaves habilitadas, gerenciadas pelo cliente, simétricas e de região única na sua conta em uma das regiões da sua organização; para uma chave que o seletor não lista, insira o ARN. Ele lista chaves apenas se o principal com o qual você se conectou puder chamar kms:ListKeys e kms:DescribeKey.

  2. Anexe a chave a um workspace

    Anexe a chave a um novo workspace antes de enviar qualquer solicitação a esse workspace. Para um workspace que já recebe solicitações, a chave pode levar até um dia para entrar em vigor. No Claude Console, acesse a página Data retention (platform.claude.com/settings/privacy) e selecione o workspace no menu suspenso no topo da página. Em Encryption key, selecione a chave, clique em Save e confirme. Você também pode selecionar uma chave ao criar um workspace no Claude Console, mas somente se sua política de chave ainda não nomear workspaces específicos (sem condição EncryptionContext), porque o ID de compartimento do workspace é atribuído na criação. Depois de anexada, a chave de um workspace não pode ser alterada.

    É quando a chave é validada: a chamada de anexação verifica o acesso do seu principal à chave e realiza uma ida e volta de criptografar/descriptografar contra ela com o ID de compartimento do workspace como contexto de criptografia, então um problema com a política de chave ou com as permissões do seu principal aparece como um erro nessa chamada. Se a anexação falhar com um erro de acesso KMS, verifique o seguinte:

    • A política de chave nomeia o principal de serviço aws-external-anthropic.amazonaws.com e concede kms:Encrypt, kms:Decrypt e kms:GenerateDataKey, além de kms:DescribeKey em uma declaração separada que não tem condição EncryptionContext.
    • Qualquer condição EncryptionContext inclui o ID de compartimento deste workspace, e qualquer condição aws:SourceArn que você adicionou corresponde ao ARN deste workspace.
    • A chave está habilitada, é de região única e está na mesma conta e região AWS do workspace.
    • O principal com o qual você está conectado tem kms:DescribeKey, kms:Encrypt e kms:Decrypt na chave.
    • Nenhuma política de controle de serviço ou política de controle de recursos em sua organização AWS impede o principal de serviço ou seu principal de usar a chave.
    • Se a política parecer correta e a anexação ainda falhar, encontre o evento kms: negado no CloudTrail na conta da chave (ele mostra o principal chamador e, para chamadas criptográficas, o contexto de criptografia), depois corrija a condição com kms:PutKeyPolicy e tente novamente.

Terraform

Para implantações de infraestrutura como código, as mesmas etapas mapeiam para o provedor aws com os recursos aws_kms_key e aws_kms_alias.

Was this page helpful?