繁体   English   中英

AWS Config 能否写入启用了 object 锁定的 S3 存储桶?

[英]Can AWS Config write to an S3 bucket with object locking enabled?

我设置了 AWS Config [1] 以将配置项传送到 S3 存储桶。 当 S3 存储桶未启用 Object 锁定 [2] 时,一切正常。 但是,当该存储桶确实启用了 Object 锁定时,AWS Config 无法创建其交付通道并出现错误并显示以下消息

错误:创建交付通道失败:InsufficientDeliveryPolicyException:s3 存储桶的交付策略不足:oss-devex-tf-module-aws-config-managed-bucket,无法写入存储桶,前提是 s3 键前缀为“config-test”。

我搜索过这个异常,它通常与权限有关。 在进行故障排除时,我为 AWS Config 分配了一个角色,该角色对 S3 存储桶具有完全权限(即,存储桶和对象上的s3:* ,这比文档 [3] 中描述的要多),我没有设置 KMS存储桶上的客户主密钥,为了测试它,我什至在 rest 禁用了加密。

由于审计和合规性要求,我想使用 Object 锁定,但我在 AWS Config 文档中找不到对它的任何引用。

编辑:我写了一个 terraform 模块 [4] 来设置 AWS Config。 该模块中有几个运行良好的示例,但前提是未在 S3 存储桶上启用 object 锁定。

[1] - https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html

[2] - https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html

[3] - https://docs.aws.amazon.com/config/latest/developerguide/s3-bucket-policy.html

[4] - https://gitlab.com/open-source-devex/terraform-modules/aws/config-managed-rules

答案似乎是否定的。

我只是与这个问题斗争了一段时间,直到我从 AWS 找到以下文档:

AWS Config 不支持到启用了 object 锁的 Amazon S3 存储桶的交付通道。

资料来源: 管理交付渠道

为了重现您的情况,我执行了以下操作:

  • 创建了一个激活了版本控制和对象锁定的 Amazon S3 存储桶
  • 修改了已与 AWS Config 一起使用的现有 IAM 角色以包含新存储桶
  • 修改 AWS Config 以写入新存储桶(因为我已经使用另一个存储桶运行 Config)

然后我看到 Config 在存储桶中创建了一个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 Config 使用存储桶的能力。

您应该检查 AWS Config 正在使用的 IAM 角色,以确认它对所需的存储桶具有适当的权限。

我使用的 IAM 角色(我在现有设置中闲逛,并刚刚添加了新的存储桶名称)包含:

  • AWSConfigRole托管策略
  • config-role_AWSConfigDeliveryPermissions_ap-southeast-2可能是在某个时候自动创建的,其中包含:
{
    "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"
                }
            }
        }
    ]
}
  • 另外,它对许多服务都有“只读”政策(同样,不确定我为什么拥有这个的历史!)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM