SSE-KMS Encryption

This section describes how to connect an AWS S3 Bucket with SSE-KMS Encryptionarrow-up-right enabled. General instructions for configuring your AWS account to allow ICA to connect to an S3 bucket are found on this pagearrow-up-right.

Connect an AWS S3 Bucket with SSE-KMS Encryption Enabled

Create an S3 bucket with SSE-KMS

Follow the AWS instructionsarrow-up-right for how to create S3 bucket with SSE-KMS key.

circle-exclamation

In the "Default encryption" section, enable Server-side encryption and choose AWS Key Management Service key (SSE-KMS). Then select Choose your AWS KMS key.

circle-info

If you do not have an existing customer managed key, click Create a KMS key and follow these stepsarrow-up-right from AWS.

circle-exclamation
sse-kms-1

Connect the S3-SSE-KMS to ICA

Follow the general instructions for connecting an S3 bucket to ICA.

In the step Create AWS IAM Policy (IAM User) or Create AWS IAM Policy (IAM Role) update the following:

  • Add permission to use KMS key by adding kms:Decrypt, kms:Encrypt, and kms:GenerateDataKey

  • Add the ARN KMS key arn:aws:kms:xxx on the first "Resource"

  • Depending on the bucket type (Unversioned, Versioned or Suspended) the permissions must match the following.

At the end of the policy setting, there should be 3 permissions listed in the "Summary".

sse-kms-2

Create the S3-SSE-KMS configuration in ICA

Follow the general instructions for how to create a storage configuration in ICA.

On step 3 in process above, continue with the [Optional] Server Side Encryption to enter the algorithm and key name for server-side encryption processes.

  • On "Algorithm", input aws:kms

  • On "Key Name", input the ARN KMS key: arn:aws:kms:xxx

circle-exclamation

Cross-Account Copy Setup for S3 buckets with SSE-KMS encryption

KMS Policy

In addition to following the instructions to Enable Cross-Account Access (IAM User) and Enable Cross-Account Access (IAM Role), the KMS policy must include the following statement for AWS S3 Bucket with SSE-KMS Encryption (refer to the Role ARN table from the linked page for the ASSUME_ROLE_ARN value):

Last updated

Was this helpful?