Claude Platform Docs

Create External Key

BetaExternalKey Beta.Organization.ExternalKeys.Create(parameters, cancellationToken = default)
POST/v1/organizations/external_keys

Create an external key config owned by the caller's organization.

Parameters
ExternalKeyCreateParams parameters
required ProviderConfig providerConfig

KMS provider identity and auth coordinates.

class BetaAwsExternalKeyConfig { Type = "aws"; KmsArn; Region; RoleArn; }
JsonElement Type = "aws"
required string KmsArn

Full ARN of the AWS KMS key. On Claude Platform on AWS, alias ARNs are rejected, and your organization's own key must be a single-Region key in your organization's AWS account.

maxLength2048
string? Region

AWS region. Derived from kms_arn if omitted.

string? RoleArn⁠Deprecated

IAM role ARN. Deprecated; this field is ignored.

class BetaGcpExternalKeyConfig { Type = "gcp"; KeyName; }
JsonElement Type = "gcp"
required string KeyName

Full resource name of the Cloud KMS key.

class BetaAzureExternalKeyConfigParam { Type = "azure"; KeyName; TenantID; /* 2 more */ }

Azure Key Vault provider configuration.

JsonElement Type = "azure"
required string KeyName

Name of the key within the vault.

required string TenantID

Azure AD tenant ID.

required string VaultUri

Key Vault data-plane URI — https://{vault-name}.vault.azure.net or https://{hsm-name}.managedhsm.azure.net.

string? ClientID

Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory.

string? displayName

Human-friendly display name.

minLength1
maxLength255
Geo geo

Data residency geo. Only us is supported.

Us("us")
string? userProfileID

ID of a user profile to bind the key to. Omit this field for a key that isn't bound to a user profile. Such a key can be attached to a Workspace whatever its user profile. The binding cannot be changed later. A key bound to a user profile can only be attached to a Workspace that has the same user profile.

Returns
class BetaExternalKey { Type = "external_key"; ID; Attachment; /* 6 more */ }

CMEK external key config belonging to the caller's organization.

Configs are organization-scoped. Workspaces attach to a config; once any workspace references it, the provider fields become effectively immutable (existing encrypted data needs the config for decrypt).

Create External Key
using System;
using Anthropic.Models.Beta.Organization.ExternalKeys;

ExternalKeyCreateParams parameters = new()
{
    ProviderConfig = new BetaAwsExternalKeyConfig()
    {
        KmsArn = "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222",
        Region = "us-east-1",
        RoleArn = "arn:aws:iam::111122223333:role/anthropic-cmek",
    },
};

var betaExternalKey = await client.Beta.Organization.ExternalKeys.Create(parameters);

Console.WriteLine(betaExternalKey);
Returns Examples
Response 200
{
  "id": "ekey_01SDCCSbTxrXDpWc1phhtcfK",
  "attachment": {
    "type": "attached"
  },
  "created_at": "2024-10-30T23:58:27.427722Z",
  "display_name": "prod-us-key",
  "geo": "us",
  "provider_config": {
    "kms_arn": "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222",
    "type": "aws",
    "region": "us-east-1",
    "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek"
  },
  "type": "external_key",
  "updated_at": "2024-10-30T23:58:27.427722Z",
  "user_profile_id": "uprof_01SDCCSbTxrXDpWc1phhtcfK"
}