将 SSL 流量强制传输到现有 S3 存储桶:如何确保事情不会中断?
Force SSL traffic to existing S3 bucket: How to ensure things won't break?
在我的公司,我们有多个 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"
}
}
}
]
我应该采取哪些步骤来确保 lambda 函数和外部集成在实施 ACL 策略后仍然能够 write/read 从存储桶中获取?
提前致谢
您从 Lambda 函数和 AWS CLI 执行的 S3 操作默认使用 TLS。您需要检查是否有任何使用 S3 的外部集成使用 SSL 或以托管方式执行 S3 操作。如果是这样,我会说没问题。
需要注意的一件小事。最后添加的条件非常重要:)。我在合并过程中错误地错过了条件部分。添加了一个显式拒绝,它拒绝了所有 S3 请求。 root用户只能帮忙重新更新一下策略
另一件需要注意的事情,如果您有单独的服务负责部署此更改,则需要允许该服务的角色执行 s3:PutBucketPolicy
操作,以便可以在那里修改存储桶策略之后。
在我的公司,我们有多个 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"
}
}
}
]
我应该采取哪些步骤来确保 lambda 函数和外部集成在实施 ACL 策略后仍然能够 write/read 从存储桶中获取?
提前致谢
您从 Lambda 函数和 AWS CLI 执行的 S3 操作默认使用 TLS。您需要检查是否有任何使用 S3 的外部集成使用 SSL 或以托管方式执行 S3 操作。如果是这样,我会说没问题。
需要注意的一件小事。最后添加的条件非常重要:)。我在合并过程中错误地错过了条件部分。添加了一个显式拒绝,它拒绝了所有 S3 请求。 root用户只能帮忙重新更新一下策略
另一件需要注意的事情,如果您有单独的服务负责部署此更改,则需要允许该服务的角色执行 s3:PutBucketPolicy
操作,以便可以在那里修改存储桶策略之后。