DEV Community

Srinivasulu Paranduru for cloudteachable

Posted on • Edited on

Amazon S3 Sync - cross aws account

Use Case : Cross Account S3 Bucket Sync

Scenario : You will be in a situation where

  • You don't have access to source AWS Account
  • You have access only destination AWS Account
  • You wanted to sync/copy files from source AWS Account to destination AWS Account

AWS Account details

1.Source_AWS_Account : 11112222
S3 Bucket Name : Source-Bucket-Name
KMS key attached to S3 Bucket
- Add the destination ec2 instance profile role in kms policy

2.Destination_AWS_Account : 22223333
Destination S3 Bucket Name : Destination-Bucket-Name


1.Attach the policy to Source S3 bucket

{
        "Sid": "CrossAccountSyncAccess",
        "Effect": "Allow",
        "Principal": {"AWS": "Destination_AWS_Account"},
        "Action" : [ "s3:ListBucket","s3:GetObject"],
        "Resource" :[
            "arn:aws:s3:::Source-Bucket-Name/*",
            "arn:aws:s3:::Source-Bucket-Name"
        ]
}
Enter fullscreen mode Exit fullscreen mode

2.Attach the below iam policy for destination account - EC2 Instance profile role

{
        "Sid": "CrossAccountSyncAccess_Source",
        "Effect": "Allow",
        "Action" : [ "s3:ListBucket","s3:GetObject"],
        "Resource" :[
            "arn:aws:s3:::Source-Bucket-Name/*",
            "arn:aws:s3:::Source-Bucket-Name"
        ]
},
{
        "Sid": "CrossAccountSyncAccess_Destination",
        "Effect": "Allow",
        "Action" : [ "s3:ListBucket","s3:PutObject","s3:PutObjectAcl"],
        "Resource" :[
            "arn:aws:s3:::Destination-Bucket-Name/*",
            "arn:aws:s3:::Destination-Bucket-Name"
        ]
}

Enter fullscreen mode Exit fullscreen mode

3.Run the below command


aws s3 sync s3://Source-BucketName  s3://Destination-BucketName

Enter fullscreen mode Exit fullscreen mode

Conclusion : Process for S3 Sync cross aws accounts.
💬 If you enjoyed reading this blog post and found it informative, please take a moment to share your thoughts by leaving a review and liking it 😀 and follow me in dev.to , linkedin

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more