S3:CopyObjectAccess Denied

AWS CLIでaws s3 cpコマンドを実行するときに、権限によっては以下のようなエラーが発生する。

$ aws s3 cp s3://... s3://...
copy failed: s3://... to s3://... An error occurred (AccessDenied) when calling the CopyObject operation: Access Denied

このエラーが発生する場合、実行ロールに対して適切な権限(IAMポリシー)が付与されていない。

aws s3 cpコマンドに必要なIAMポリシー

CopyObject操作には以下の権限が必要。

  • s3:GetObject
  • s3:PutObject
  • s3:GetObjectTagging
  • s3:PutObjectTagging

コピー元を読み出すためのGetObjectと、コピー先に書き込むためのPutObjectが必要と考えて GetObjectPutObjectの権限を付与しがち。
しかしタグの読み書き(GetObjectTaggingPutObjectTagging)も権限が必要となるので忘れないようにする。

IAMポリシーの例

{
  
}