Attach a KMS-encrypted AWS bucket
This article shows how to configure an AWS bucket with KMS encryption, and to attach that bucket as storage to your Aspera on Cloud organization.
Prerequisites
Attaching your bucket to Aspera on Cloud
Note: If you see the error message, "Unable to create ATS access key and secret", see Trouble creating a new access key for a troubleshooting procedure.
Example bucket policy configuration
Adjust the bucket policy if required to support actions as shown
in the following sample syntax and example.
Sample bucket policy syntax
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1464034295000",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AOC_ACCOUNT_ID:role/AOC_IAM_ROLE"
},
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:ListMultipartUploadParts",
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::BUCKET_NAME/*"
},
{ "Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::AOC_ACCOUNT_ID:role/AOC_IAM_ROLE"
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": "arn:aws:s3:::BUCKET_NAME"
}
]
}Example bucket policy configuration
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1464034295000",
"Effect": "Allow",
"Principal": {
"AWS":"arn:aws:iam::860559707280:role/atp-aws-us-east-1-ts-atc-node"
},
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:ListMultipartUploadParts",
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::aspera-kms/*"
},
{
"Effect": "Allow",
"Principal": {
"AWS":"arn:aws:iam::860559707280:role/atp-aws-us-east-1-ts-atc-node"
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": "arn:aws:s3:::aspera-kms"
}
]
}S3 access policy: Sample configuration
Sample S3 access policy syntax
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1464034295000",
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:ListMultipartUploadParts",
"s3:PutObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::BUCKET_NAME/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::BUCKET_NAME"
]
}
]
}
Example S3 access policy configuration
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1464034295000",
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:ListMultipartUploadParts",
"s3:PutObject",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::aspera-kms/*"
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::aspera-kms"
]
}
]
}
KMS alias management: Sample configuration
Configure a policy that permits AoC to access your key management
service.
Sample KMS alias management syntax
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1464034295000",
"Effect": "Allow",
"Action": [
"kms:EnableKey",
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyWithoutPlaintext",
"kms:ReEncryptTo",
"kms:ReEncryptFrom"
],
"Resource": [
"arn:aws:kms:AWS_REGION:AWS_ACCOUNT_ID:key/KMS_KEY_ID"
]
}
]
}Sample KMS alias management configuration
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1464034295000",
"Effect": "Allow",
"Action": [
"kms:EnableKey",
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:GenerateDataKeyWithoutPlaintext",
"kms:ReEncryptTo",
"kms:ReEncryptFrom"
],
"Resource": ["arn:aws:kms:us-east-1:239600258224:key/65a140e1-8c8f-4dd5-b2d7-d6cf05e15b46"
]
}
]
}