错误:应用 VPC 策略后 S3 存储桶中的访问被拒绝
Posted
技术标签:
【中文标题】错误:应用 VPC 策略后 S3 存储桶中的访问被拒绝【英文标题】:Error: Access Denied in S3 bucket after applying VPC policy 【发布时间】:2017-09-08 14:28:14 【问题描述】:我已对allow only connections from my VPC应用了一项政策:
"Version": "2012-10-17",
"Id": "Policy1415115909153",
"Statement": [
"Sid": "Access-to-specific-VPC-only",
"Action": "s3:*",
"Effect": "Deny",
"Resource": ["arn:aws:s3:::examplebucket",
"arn:aws:s3:::examplebucket/*"],
"Condition":
"StringNotEquals":
"aws:sourceVpc": "vpc-111bbb22"
,
"Principal": "*"
]
但现在我得到“拒绝访问”,即使我尝试从给定 VPC 中的实例从 AWS 控制台访问它:
我已经阅读了https://aws.amazon.com/premiumsupport/knowledge-center/s3-regain-access/,但很遗憾我使用的是公司提供的联合登录,并且无法访问完整的 root 用户。
我的问题是为什么即使在 VPC 中我也无法访问存储桶?
我发现的一些类似问题 - Policy Denying Access On Amazon S3 和 S3 VPC end point Bucket policy
【问题讨论】:
在该 EC2 实例上安装 awscli,然后使用“aws s3 ls examplebucket”测试 S3 访问。 我使用联合登录(我使用公司的 AD 帐户登录)。我无权访问根用户或 IAM 用户。我不确定我是否可以访问 AWS CLI。 【参考方案1】:为防止您的策略在 AWS 控制台中应用于联合用户,您可以在策略声明中使用 NotPrincipal 元素而不是 Principal
将他们“列入白名单”。例如:
"Version": "2012-10-17",
"Id": "Policy1415115909153",
"Statement": [
"Sid": "Access-to-specific-VPC-only",
"Action": "s3:*",
"Effect": "Deny",
"Resource": ["arn:aws:s3:::examplebucket",
"arn:aws:s3:::examplebucket/*"],
"Condition":
"StringNotEquals":
"aws:sourceVpc": "vpc-111bbb22"
,
"NotPrincipal":
"Federated": "arn:aws:iam::YOUR-AWS-ACCOUNT-ID:saml-provider/YOUR-PROVIDER-NAME"
]
【讨论】:
【参考方案2】:您是否设置了 S3 的 VPC 终端节点?
在 S3 中有两种访问对象的方法。一种是通过 AWS 控制台,另一种是通过对 S3 对象的 HTTPS 调用。
如果您尝试从 AWS 控制台访问存储桶,则权限由您的 IAM 用户/角色和存储桶策略控制。您正在使用联合登录,所以我假设它是一个角色。
从 VPC-111bbb222 中的一个实例,注销 AWS 控制台并尝试使用 HTTPS URL 访问该存储桶中的对象。
【讨论】:
请注意,我在策略中使用的是aws:sourceVpc
,而不是aws:sourceVpce
。我正在关注教程“限制对特定 VPC 的访问”。 “限制对特定 VPC 端点的访问”位于其上方。
顺便说一句,我实际上可以从 VPC 访问存储桶中的文件,但我无法管理存储桶(如添加其他文件、更改策略等)我也在尝试遵循这个答案 - ***.com/a/43372890/492336,但到目前为止没有成功。
如果您可以访问存储桶中的对象,那么您可能有一个允许它的 ACL。您能否在“权限”选项卡中向我们展示任何 ACL?
我不能,因为一旦我应用该策略,我就会被拒绝访问。
啊啊啊,我在关注!我看到您正在使用 aws:sourceVpc,但是否有 VPC 端点? 1) 如果有一个端点,任何来自该 VPC 的发往 S3 的流量都将被强制流出该端点。 2) 现有政策限制了任何不是来自 VPC 的 s3 操作。 3) 如果源因为存在端点而被强制为 VPCE,您将永远无法在 VPC 中获取实例来正确管理存储桶,因为该策略仅允许 VPC 源。您需要删除端点以创建您的源 VPC 而不是 VPCE。以上是关于错误:应用 VPC 策略后 S3 存储桶中的访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章