- Newest
- Most votes
- Most comments
Based on the information provided, you're encountering issues with uploading documents to an AWS-owned S3 bucket (amazonconnectuploader) for Amazon Connect phone number requests. There are several factors contributing to this problem:
-
ACLs Disabled (Bucket Owner Enforced setting): The bucket appears to have the "Bucket owner enforced" Object Ownership setting, which disables ACLs completely. When this setting is applied, requests to set or update ACLs will fail with a 400 error and return the "AccessControlListNotSupported" error code. This explains why you can't follow the AWS Support instructions that reference setting ACL permissions.
-
KMS Key Policy Restrictions: The error message about "kms:GenerateDataKey" suggests that the KMS key used for bucket encryption doesn't grant your account the necessary permissions for cross-account access.
-
Missing Bucket Permissions: The error about "s3:GetBucketOwnershipControls" indicates your account doesn't have permission to view the bucket's ownership settings.
For this specific AWS-owned bucket scenario:
-
The bucket policy would need to be updated by AWS to grant your account permissions for both S3 operations (including s3:GetBucketOwnershipControls) and KMS operations.
-
Since ACLs are disabled with the "Bucket owner enforced" setting, the upload process needs to be adjusted to not rely on ACLs. When ACLs are disabled, PUT operations must either specify bucket-owner-full-control ACLs or not specify an ACL at all.
-
The KMS key policy would need to allow cross-account access for the kms:GenerateDataKey and kms:Decrypt operations.
Since this involves AWS-owned infrastructure for Amazon Connect, and you have Basic Support, I recommend:
-
Open a support case specifically with the Amazon Connect team (not general AWS support) if possible
-
Clearly explain that the documented process for uploading identity documents references ACL settings that aren't available due to the bucket's Object Ownership configuration
-
Request updated instructions that account for the "Bucket owner enforced" setting
-
Ask if there's an alternative upload method that doesn't require cross-account KMS access
This appears to be a case where the documentation and actual implementation are misaligned, and only AWS can update the bucket policy and KMS key policy for their service-owned resources.
Sources
Troubleshooting - Amazon Simple Storage Service
Controlling ownership of objects and disabling ACLs for your bucket - Amazon Simple Storage Service
Can you update your IAM configuration and add bucket name in the resource. You don't own this bucket, so, maybe it's not finding it. Also, since it's an AWS owned bucket, I reckon they have given you the permissions that are needed for the IAM role. From experience, they recommend adding a condition like account id / region in the permission. If they have provided that, please add it to your IAM and retry.
Hi SHAJAM,
Thanks for taking the time to respond.
I gave your suggestion a try. I tested with my SSO AdministratorAccess role which has full AWS permissions (Resource: "*"), so adding the bucket name specifically wouldn't grant any additional access. Same result unfortunately.
What's interesting is that the upload actually starts - I can see the file transfer complete in the CLI output (11.8 KiB transferred) - but then it fails at the KMS encryption step:
"User is not authorized to perform: kms:GenerateDataKey on this resource because no resource-based policies allow access"
So the S3 bucket policy seems to be working (PutObject is allowed), but the KMS key policy doesn't grant my account permission to encrypt. I also tried forcing SSE-S3 (AES256) to bypass KMS entirely, but the bucket policy rejects non-KMS encryption.
The other issue is that AWS's upload instructions reference ACL settings (Steps 5-7: "Specify individual ACL permissions", add a grantee key, etc.) but those options don't appear in the console because the bucket has "Bucket owner enforced" which disables ACLs completely.
So it looks like there's a mismatch between AWS's documented upload process and the actual bucket configuration. I've raised this with AWS Support but Basic Support says they can't modify the KMS key policy.
I’m not sure whether I need to purchase premium support to get this resolved, or if I’m missing something obvious.
Thanks again.
answered 8 months ago
Relevant content
asked 7 months ago
