我已将政策应用于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": "*"
}
]
}
但现在我得到了#34;访问被拒绝"即使我尝试从给定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
答案 0 :(得分:1)
您是否有用于S3设置的VPC端点?
在S3中有两种访问对象的方法。一个是通过AWS控制台,另一个是通过对S3对象的HTTPS调用。
如果您尝试从AWS控制台访问存储分区,则权限由您的IAM用户/角色和存储分区策略管理。您正在使用联合登录,因此我假设它是一个角色。
从VPC-111bbb222中的实例注销AWS控制台,尝试使用HTTPS URL访问该存储桶中的对象。
答案 1 :(得分: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"
}
}
]
}