The tutorial around are somehow complicated, I just need to move the bucket but I need to set the IAM account, this is the fastest way to move and of course with root account because I just want to move it and delete ( for my case )

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
aws configure

in aws configure just add your access ID and key, this can be found in "My security credential" in your account.

Before syncing to the target bucket, login to the target bucket and find edit "Access control list (ACL)" in the bottom add find "Access for other AWS accounts" then get your canonical user ID go to "My security credential" then in "Account identifiers"  then check all write and read then save.

aws s3 sync s3://bucketname s3://bucketname --source-region ap-southeast-1 --region ap-southeast-1

It seems that when the files are sync to the target, I can't make them public, it has to do with the owner I can't seem to update the ACL after the sync

After few research I just use copy bucket to local then reuploaded, this is my only way for now

aws s3 cp s3://bucket . --recursive