调用PutBucketVersioning操作时发生错误(AccessDenied):此操作只能由存储桶所有者执行



使用AWS s3api CLI,为未通过此规则的S3存储桶启用MFA Delete,例如:

aws s3api put-bucket-versioning --bucket bucketname --versioning-configuration Status=Enabled,MFADelete=Enabled --mfa "your-mfa-serial-number mfa-code"

但收到此错误:调用时发生错误(AccessDenied(PutBucketVersioning操作:此操作只能由铲斗所有者执行。

甚至我也尝试创建新的bucket来做这件事,但同样的错误也出现了。有人经历过吗?

由于您的问题中没有指定它,我将假设最有可能的情况是不使用根帐户。

MFA Delete只能由您帐户的启用(来自文档(:

bucket所有者、创建bucket的AWS帐户(根帐户(和所有授权IAM用户都可以启用版本控制,但只有bucket所有者(根账户(可以启用MFA Delete

在文档中,它指出您必须是的根用户才能启用此功能

bucket所有者、创建bucket的AWS帐户(根帐户(和所有授权IAM用户都可以启用版本控制,但只有bucket所有者(根账户(可以启用MFA Delete

除此之外,任何其他BucketVersioning配置都可以由根用户或允许的IAM用户/角色完成。

这样可以防止员工因为权限过多而意外启用该功能。

作为警告,如果您通过CLI进行配置,请不要在执行操作后留下根IAM凭据