amazon-web-services - 如何在 AWS 策略中提供多个 StringNotEquals 条件?

标签 amazon-web-services amazon-s3 amazon-iam

我正在尝试编写 AWS S3 存储桶策略,拒绝所有流量,除非来自两个 VPC。我正在尝试编写的策略如下所示,在两者之间使用逻辑 AND StringNotEquals (除非它是无效的政策):

{
   "Version": "2012-10-17",
   "Id": "Policy1415115909152",
   "Statement": [
     {
       "Sid": "Allow-access-only-from-two-VPCs",
       "Action": "s3:*",
       "Effect": "Deny",
       "Resource": ["arn:aws:s3:::my-bucket",
                    "arn:aws:s3:::my-bucket/*"],
       "Condition": {
         "StringNotEquals": {
           "aws:sourceVpc": "vpc-111bbccc"
         },
         "StringNotEquals": {
           "aws:sourceVpc": "vpc-111bbddd"
         }
       },
       "Principal": "*"
     }
   ]
}

如果我使用这个:
"StringNotEquals": {
       "aws:sourceVpc": ["vpc-111bbccc", "vpc-111bbddd"]
     }

然后至少有一个字符串比较返回 true,并且 S3 存储桶无法从任何地方访问。

最佳答案

以前从未尝试过。但以下应该有效。发件人:Using IAM Policy Conditions for Fine-Grained Access Control

    "Condition": {
        "ForAllValues:StringNotEquals": {
            "aws:sourceVpc": [
                "vpc-111bbccc",
                "vpc-111bbddd"
            ]
        },

关于amazon-web-services - 如何在 AWS 策略中提供多个 StringNotEquals 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46062084/

相关文章:

amazon-web-services - AWS IAM : AssumeRole vs GetSessionToken

amazon-web-services - S3 桶的资源 IP 地址?

javascript - Cognito 用户授权访问 s3 对象?

amazon-web-services - 与 BitBucket 集成时 AWS CodePipeline 的 AWS IAM 访问异常

amazon-web-services - aws cloudformation - 'content.s3Bucket' 处的值无法满足约束 : Member must satisfy regular expression pattern

spring-boot - 如何解决共享 Amazon S3 预签名 URL 的风险?

amazon-web-services - AWS IAM 策略 : Multiple Actions and Multiple Resources

amazon-web-services - 如何创建具有所有可用权限的 S3 存储桶? (在用 Mocha 测试时)

java - AWS Lambda Java,连接到MySQL RDS

amazon-web-services - Amazon Batch Job 不会终止