title: Grant read to Elasticache on S3 object with boto3
body: <p>I have a script that uploads a file to S3 then starts an Elasticache server seeded with the file. <a href="https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/backups-seeding-redis.html#backups-seeding-redis-grant-access" rel="nofollow noreferrer">Elasticache documentation</a> says to provide read and read permission permissions to <code>540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353</code> which represents the canonical ID for any region that's not GovCloud or China.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>import boto3
  s3_cl = boto3.client('s3')
  s3_cl.put_object_acl(Bucket='bucket-name', Key='file.rdb', GrantRead='540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353')
  </code></pre>
  
  <p>Here is the error I get:</p>
  
  <pre><code>ClientError: An error occurred (InvalidArgument) when calling the PutObjectAcl operation: Argument format not recognized
  </code></pre>
  
  <p>What parameter am I supposed to provide to <code>GrantRead</code>? My understanding was that it's a grantee, which can be a canonical ID, so what am I doing wrong?</p>