通过 Web 控制台与 S3 交互时,请求上下文中是否存在 aws:SourceVpc 条件键?

Is aws:SourceVpc condition key present in the request context when interacting with S3 over web console?

我有一个存储桶策略(如下所列),当从特定 VPC 以外的任何地方访问时,它应该阻止对 S3 存储桶的访问。我在 VPC 中启动了一个 EC2 实例,测试并确认 S3 访问正常。现在,当我通过 Web 控制台访问同一个 S3 存储桶时,我收到 'Error - Access Denied' 消息。

这是否意味着在通过 Web 控制台与 S3 交互时,请求上下文中也存在 aws:SourceVpc 条件键?

我的假设是它存在于请求上下文中,否则策略语句将失败,因此语句的 "Effect" 不适用,因为没有 "Ifexists" 添加到 StringNotEquals - 问这个问题,因为我在 AWS 文档中找不到此信息。即使在将 "Ifexists" 添加到 StringNotEquals 之后,结果仍然相同 - 有人可以确认吗?

{
    "Version": "2012-10-17",
    "Id": "Policy1589385141624",
    "Statement": [
        {
            "Sid": "Access-to-specific-VPC-only",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::abhxy12bst3",
                "arn:aws:s3:::abhxy12bst3/*"
            ],
            "Condition": {
                "StringNotEquals": {
                    "aws:sourceVpc": "vpc-0xy915sdfedb5667"
                }
            }
        }
    ]
}

这将适用于与 S3 交互的所有请求。控制台只是在 AWS API.

之上提供了一个 GUI

是的,你是对的。我测试了以下存储桶策略,来自 AWS S3 控制台的操作被拒绝。

{
    "Version": "2012-10-17",
    "Id": "Policy1589385141624",
    "Statement": [
        {
            "Sid": "Access-to-specific-VPC-only",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::abhxy12bst3",
                "arn:aws:s3:::abhxy12bst3/*"
            ],
            "Condition": {
                "StringLike": {
                    "aws:sourceVpc": "vpc-30*"
                }
            }
        }
    ]
}

这意味着请求中肯定存在一些 vpc id。每个帐户可能相同,也可能不同。