I had some issues copying data from bucket A to bucket B. Both of the buckets were in different AWS accounts. Copying of data was going fine, but on the target side, I never had the permissions to read the copied data.
I forgot to include the --acl property in my copy command
--acl (string) Sets the ACL for the object when the command is performed. If you use this parameter you must have the "s3:PutObjectAcl" permission included in the list of actions for your IAM policy. Only accepts values of private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket- owner-full-control and log-delivery-write. See Canned ACL for details
So the command I've executed:
$ aws s3 cp --recursive --acl authenticated-read s3://#BUCKET_A#/#PATH_TO_DIR# s3://#BUCKET_B/#PATH_TO_DIR#