- Newest
- Most votes
- Most comments
The S3 policy that you shared, is that S3 bucket policy, IAM policy or SCP policy? I suspect it is either S3 bucket or IAM policy and therefore it only applies to the specific bucket or IAM role. In your S3 console, check if you have S3 buckets in us-east-1 region. Check if you have other services like Config, SecurityHub, CloudTrail, etc that are writing to a bucket in us-east-1 region.
The S3 PUT requests in us-east-1 despite your regional restrictions could be occurring for several reasons:
-
Default Region Behavior: When no region is explicitly specified in an API call, AWS often defaults to us-east-1. Check if any part of your application code is missing the region specification.
-
AWS Services Integration: Some AWS services automatically create or interact with S3 buckets in us-east-1 regardless of your application's primary region. These could be generating the PUT requests you're seeing.
-
IAM Policy Scope: Your IAM policy has region restrictions for specific buckets, but it doesn't restrict creating new buckets or interacting with other buckets in different regions. The "ListAllMyBuckets" and "GetBucketLocation" permissions apply to all resources (*) without region restrictions.
-
SDK Configuration: If you're using AWS SDKs, check that all client configurations explicitly set the region to ap-south-2.
To address this issue:
-
Use AWS CloudTrail to identify the specific API calls being made to us-east-1 and their sources.
-
Consider using a more restrictive IAM policy that denies all S3 actions in regions other than ap-south-1 and ap-south-2, not just for specific buckets.
-
If you need to optimize for geographic performance, consider using Amazon S3 Transfer Acceleration which uses AWS edge locations to accelerate data transfers, or Multi-Region Access Points if you need to access data across multiple regions.
-
Review all application code and configurations to ensure the region is consistently set to ap-south-2.
Sources
Managing multi-Region traffic with Multi-Region Access Points - Amazon Simple Storage Service
Using Amazon S3 Transfer Acceleration to Accelerate Geographically Disparate Data Transfers - Best Practices Design Patterns: Optimizing Amazon S3 Performance
answered 9 months ago
Relevant content
asked 3 years ago
- AWS OFFICIALUpdated 10 months ago
- AWS OFFICIALUpdated 10 months ago

Yes, it is an S3 policy attached to an IAM user. IAM user is associated with 2 policies
To isolate the problem, on November 15th, I deleted all the buckets from the ap-south-2 region. There are no S3 buckets in my primary (ap-south-2) regions or us-east-1.
I checked the bill today, and below are the S3 details – Nov-24-2025 US East (N. Virginia) Amazon Simple Storage Service Requests-Tier1 $0.005 per 1,000 PUT, COPY, POST, or LIST requests 1,938 Requests
Nov-20-2025 US East (N. Virginia) Amazon Simple Storage Service Requests-Tier1 $0.005 per 1,000 PUT, COPY, POST, or LIST requests 1,912 Requests
I changed the S3 policy based on the #3 (IAM Policy Scope) point in the AWS-generated answer. There is a significant decrease in the number of S3 PUTs in the us-east-1.
Modified S3 Policy - part 1 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:GetBucketLocation" ], "Resource": "", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "ap-south-1", "ap-south-2" ] } } }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::s3-bw-exp-receipts", "arn:aws:s3:::s3-bw-exp-receipts/", "arn:aws:s3:::s3-bw-advts", "arn:aws:s3:::s3-bw-advts/", "arn:aws:s3:::s3-bw-users", "arn:aws:s3:::s3-bw-users/" ], "Condition": { "StringEquals": { "aws:RequestedRegion": [ "ap-south-1", "ap-south-2" ] } } },
Modified S3 policy - part 2
{ "Sid": "AllowS3AccessInSpecificRegion", "Effect": "Allow", "Action": "s3:", "Resource": [ "arn:aws:s3:::s3-country-flags", "arn:aws:s3:::s3-country-flags/", "arn:aws:s3:::s3-bw-exp-receipts", "arn:aws:s3:::s3-bw-exp-receipts/", "arn:aws:s3:::s3-bw-advts", "arn:aws:s3:::s3-bw-advts/", "arn:aws:s3:::s3-bw-users", "arn:aws:s3:::s3-bw-users/" ], "Condition": { "StringEquals": { "aws:RequestedRegion": [ "ap-south-1", "ap-south-2" ] } } }, { "Sid": "DenyS3AccessOutsideSpecificRegion", "Effect": "Deny", "Action": "s3:", "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [ "ap-south-1", "ap-south-2" ] } } } ] }
DynamoDB Policy { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:ConditionCheckItem", "dynamodb:PutItem", "dynamodb:DeleteItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:UpdateItem", "dynamodb:GetItem", "dynamodb:GetRecords", "dynamodb:ListTables", "dynamodb:DescribeTable" ], "Resource": "arn:aws:dynamodb::<accountid>:table/" } ] }
I will continue to monitor the S3 PUT requests.
Appreciate your response in advance John