Manifest bucket policy to be updated:
{
"Sid": "S3BatchCopyInventory",
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::<inventory_bucket_name>/*",
"Condition": {
"StringEquals": {
"aws:SourceAccount": "<source_account_number>",
"s3:x-amz-acl": "bucket-owner-full-control"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:s3:::<source_bucket_name>"
}
}
}
Batch Operations Role to be created at source account:
2.1. Permissions:
{
"Version": "2012-10-17”,`
"Statement": [
{
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl",
"s3:PutObjectVersionTagging",
"s3:PutObjectTagging"
],
"Resource": [
"arn:aws:s3:::<target_bucket_name>/*"
],
"Effect": "Allow",
"Sid": "S3BatchTarget"
},
{
"Action": [
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectVersionAcl",
"s3:GetObjectVersion",
"s3:GetObjectVersionTagging",
"s3:GetObjectTagging",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::source_bucket_name",
"arn:aws:s3:::source_bucket_name/<optional_prefix>/*"
],
"Effect": "Allow",
"Sid": "S3BatchSource"
},
{
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:GetObjectVersion",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::<inventory_bucket_name>",
"arn:aws:s3:::<inventory_bucket_name>/*"
],
"Effect": "Allow",
"Sid": "S3BatchManifestReport"
},
{
“Action": [
"kms:Encrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": “Destination_S3_Bucket_KMS_Key_ARN”
"Effect": "Allow",
"Sid": "AllowUseOfExternalS3KMSKey
},
{
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": “Source_S3_Bucket_KMS_Key_ARN”,
"Effect": "Allow”,
"Sid": "AllowUseOfLocalS3KMSKey"
}
]
}
2.2. Batch Operations Role Trust Policy:
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Principal":{
"Service":"batchoperations.s3.amazonaws.com"
},
"Action":"sts:AssumeRole"
}
]
}