0

在我的公司,我们有多个 S3 存储桶,我们希望对它们强制执行仅 HTTPS 流量。这些存储桶已启动并运行,即 lambda 函数和外部集成(例如安全监控系统)要么一直向它们写入对象,要么从它们中获取对象。

我计划执行以下 ACL 策略:

{
    "Version": "2012-10-17",
    "Id": "Enforce HTTPS",
    "Statement": [
        {
            "Sid": "HTTPSOnly",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::mybucket",
                "arn:aws:s3:::mybucket/*"
            ],
            "Condition": {
                "Bool": {
                    "aws:SecureTransport": "false"
                }
            }
        }
    ]

在实施 ACL 策略后,我应该采取哪些步骤来确保 lambda 函数和外部集成仍然能够从存储桶中写入/读取?

先感谢您

4

1 回答 1

1

您从 Lambda 函数和 AWS CLI 执行的 S3 操作默认使用 TLS。您需要检查使用 S3 的任何外部集成是否使用 SSL 或以托管方式执行 S3 操作。如果是这样的话,我会说没问题。

一件小事要注意。最后添加的条件非常重要:)。我在合并过程中错误地错过了条件部分。这增加了一个明确的拒绝,它拒绝了所有的 S3 请求。Root 用户只能帮助再次更新策略。

需要注意的另一件事是,如果您有一个单独的服务负责部署此更改,则需要允许该服务的角色执行s3:PutBucketPolicy操作,以便之后可以修改存储桶策略。

于 2021-11-18T13:30:43.030 回答