S3跨桶复制权限异常:IAM与桶策略配置排查
S3跨桶复制AccessDenied错误排查指南
一、Analysis桶桶策略的核心问题
- 检查桶策略是否允许带加密头的PUT请求:你执行命令时指定了
--sse AES256,如果analysis桶的策略里没有明确允许s3:x-amz-server-side-encryption请求头等于AES256,会直接触发权限拒绝。要确认策略的Condition部分是否包含这个规则,或者是否因遗漏该条件导致请求不匹配。 - 检查策略是否限定了访问来源为专属访问点:如果analysis桶的策略仅允许通过其创建的访问点执行PUT操作,而你直接用桶名发起
aws s3 cp请求,会被策略拦截。
二、IAM权限的细节遗漏
- 确认分析师的IAM权限是否允许指定加密头:部分IAM策略会通过
Condition限制允许使用的加密方式,如果没明确授权允许s3:x-amz-server-side-encryption为AES256,跨桶复制时会被拒绝。 - 检查是否缺失版本控制相关权限:如果landing-zone桶开启了版本控制,跨桶复制时除了
s3:GetObject,还需要s3:GetObjectVersion权限,虽然单独GET正常,但复制操作可能依赖这个权限。
三、跨桶请求的权限逻辑问题
- 确认analysis桶策略是否认可S3内部发起的请求:跨桶复制时,PUT到analysis桶的请求实际是S3服务从landing-zone桶拉取数据后发起的,而非用户本地直接发送。要检查策略中的
Condition是否正确配置了aws:SourceArn指向landing-zone桶的对象ARN,确保这种内部请求能通过策略校验。
四、访问点配置的匹配问题
- 检查访问点的资源策略是否正确:landing-zone的访问点需允许分析师读取对象,analysis的访问点需允许从landing-zone访问点发起PUT操作。
- 尝试用访问点ARN替代桶名执行命令:如果策略仅对访问点生效,直接用桶名会被拒绝,正确命令格式应为:
aws s3 cp s3://arn:aws:s3:::accesspoint/landing-zone-ap/test.txt s3://arn:aws:s3:::accesspoint/analysis-ap/test.txt --sse AES256
内容的提问来源于stack exchange,提问作者EMD
相关产品推荐
相关产品推荐

