Amazon web services AWS配置是否可以在启用对象锁定的情况下写入S3存储桶?
我已经设置了AWS Config[1]以将配置项传递到S3存储桶。当S3存储桶没有启用对象锁定[2]时,一切正常。但是,当该bucket确实启用了对象锁定时,AWS Config将无法创建其传递通道,并且会出现以下错误消息 错误:创建传递通道失败:未充分传递策略异常:对s3存储桶的传递策略不足:oss-devex tf模块aws config受管存储桶,无法写入存储桶,前提是s3密钥前缀为“config test” 我搜索了这个异常,它通常与权限有关。在进行故障排除时,我为AWS Config分配了一个角色,该角色对S3 bucket(即,Amazon web services AWS配置是否可以在启用对象锁定的情况下写入S3存储桶?,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我已经设置了AWS Config[1]以将配置项传递到S3存储桶。当S3存储桶没有启用对象锁定[2]时,一切正常。但是,当该bucket确实启用了对象锁定时,AWS Config将无法创建其传递通道,并且会出现以下错误消息 错误:创建传递通道失败:未充分传递策略异常:对s3存储桶的传递策略不足:oss-devex tf模块aws config受管存储桶,无法写入存储桶,前提是s3密钥前缀为“config test” 我搜索了这个异常,它通常与权限有关。在进行故障排除时,我为AWS Config分
S3:
对bucket和对象都有完全权限,这比文档[3]中描述的要多),我没有在bucket上设置KMS Customer Master Key,我甚至在rest中禁用加密只是为了测试它
出于审核和法规遵从性要求,我想使用对象锁定,但在AWS配置文档中找不到任何引用
编辑:
我已经编写了一个terraform模块[4]来设置AWS配置。该模块中有几个示例运行良好,但只有在S3 bucket上未启用对象锁定的情况下才能运行
[1] -
[2] -
[3] -
[4] -为了再现您的情况,我做了以下操作:
- 创建了一个启用版本控制和对象锁定的AmazonS3存储桶
- 修改了已在使用AWS配置的现有IAM角色,以包括新的bucket
- 修改了AWS配置以写入新的bucket(因为我已经让配置与另一个bucket一起运行)
ConfigWritabilityCheckFile
对象
一段时间后,出现了一个具有此路径的对象:
AWSLogs/123456789012/Config/ap-southeast-2/2019/9/17/ConfigSnapshot/123456789012_Config_ap-southeast-2_ConfigSnapshot_20190917T224217Z_ea973cd9-25ff-4cbe-97ca-84ef150a1981.json.gz
因此,启用对象锁定似乎不会影响AWS配置使用bucket的能力
您应该检查AWS Config正在使用的IAM角色,以确认它对所需bucket具有适当的权限
我使用的IAM角色(我在现有设置中挂起,刚刚添加了新的bucket名称)包含:
托管策略awsconfigroule
可能在某个时候自动创建,其中包含:config-role\u AWSCOnfigdDeliveryPermissions\u ap-southeast-2
- 另外,它对很多服务都有“只读”的政策(同样,我也不清楚我为什么会有这种服务!)
ConfigWritabilityCheckFile
写入bucket)。然后,在第二次terraform运行时,我将AWS配置使用的bucket切换为启用对象锁定的bucket,这会产生与我以前看到的完全相同的错误(InsufficientDeliveryPolicyException:对s3 bucket的传递策略不足…
)。我还试图通过AWS控制台切换正在工作的AWS配置设置的存储桶,但遇到了类似的错误。有人说:AWS配置没有足够的权限将配置信息发送到指定的S3存储桶。更新角色或bucket权限并重试。接下来,我通过AWS控制台尝试了相同的设置,让它创建所有内容(S3 bucket、角色等)。然后我创建了一个启用对象锁定的新bucket,并从控制台为AWS配置创建的bucket复制了所有其他设置。在AWS配置中切换存储桶在控制台上产生了相同的错误。我确实注意到,通过控制台,使用对象锁定创建的bucket处于None模式(而我至少需要治理模式)。我试着在两种模式下切换铲斗,但都不起作用。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject*"
],
"Resource": [
"arn:aws:s3:::stack-lock/AWSLogs/123456789012/*"
],
"Condition": {
"StringLike": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}