This page describes how to set up and use Customer-Managed Encryption Keys (CMEK) to secure indexes within a Pinecone project.

This feature is in early access.

Set up CMEK using AWS KMS

Before you begin

The following steps assume you have:

1. Create a role

In the AWS console, create a role that Pinecone can use to access the AWS Key Management System (KMS) key. You can either grant Pinecone access to a key in your account, or if your customers provide their own keys, you can grant access to keys that are outside of your account.

  1. Open the Amazon Identity and Access Management (IAM) console.

  2. In the navigation pane, click Roles.

  3. Click Create role.

  4. In the Trusted entity type section, select Custom trust policy.

  5. In the Custom trust policy section, enter one of the following JSON snippets.

    Pick a snippet based on whether you want to allow Pinecone to assume a role from all regions or from explicit regions. Add an optional external ID for additional security. If you use an external ID, you must provide it to Pinecone when adding an API key.

    If you do not have Pinecone’s AWS account number, contact Support.

  6. Click Next.

  7. Keep the default permissions as is and click Next.

  8. Enter a Role name and click Create role.

  9. Copy the Role ARN (e.g., arn:aws:iam::XXXXXX:role/YYYYYY). This will be used to create a CMEK-enabled project.

2. Create an AWS KMS key

In the AWS console, create the KMS key that Pinecone will use to encrypt your data:

  1. Open the Amazon Key Management Service (KMS) console.

  2. In the navigation pane, click Customer managed keys.

  3. Click Create key.

  4. In the Key type section, select Symmetric.

  5. In the Key usage section, select Encrypt and decrypt.

  6. Under Advanced options > Key material origin, select KMS.

  7. In the Regionality section, select Single-Region key.

    You can create a multi-regional key to safeguard against data loss in case of regional failure. However, Pinecone only accepts one Key ARN per project. If you set a multi-regional key and need to change the Key ARN to switch region, please contact Support for help.

  8. Click Next.

  9. Enter an Alias and click Next.

  10. Keep the default administrators as is and click Next.

  11. Select the role you created from the Key users list and click Next.

  12. Click Finish.

  13. Copy the Key ARN (e.g., arn:aws:kms:us-east-1:XXXXXXX:key/YYYYYYY). This will be used to create a CMEK-enabled project.

3. Create a CMEK-enabled project

Once your role and key is configured, you can create a CMEK-enabled project:

  1. In the Pinecone console, got to Settings > Organization settings > Projects.

  2. Click +Create project.

  3. Enter a Name.

  4. Select Encrypt with Customer Managed Encryption Key.

  5. Click Create project.

  6. Copy and save the generated API key in a secure place for future use.

    You will not be able to see the API key again after you close the dialog.

  7. Click Close.

Add a key

To start encrypting your data with a customer-managed key, you need to add the key to the CMEK-enabled project:

  1. On the Manage > CMEK tab for the CMEK-enabled project, click Add CMEK.

    You can only add one key per project, and you cannot change the key in Pinecone once it is set.

  2. Enter a Key name.

  3. Enter the Role ARN for the role you created.

  4. Enter a Key ARN for the key you created.

  5. If you created a role with an external ID, enter the External ID. If not, leave this field blank.

  6. Click Create key.

Delete a key

Before a key can be deleted from a project, all indexes in the project must be deleted. Then, you can delete the key using the Pinecone console:

  1. Go to the Manage > CMEK tab for the project in which the key was created.
  2. For the key you want to delete, click the ellipsis (..) menu > Delete.
  3. Enter the key name to confirm deletion.
  4. Click Delete key.

Limitations

  • CMEK can be enabled for severless indexes in AWS regions only.
  • Backups are unavailable for indexes created in a CMEK-enabled project.
  • You cannot change a key once it is set.
  • You can add only one key per project.