簡體   English   中英

API 網關允許來自 VPC 端點或源的請求 IP?

[英]API Gateway to allow requests from both a VPC Endpoint OR Source IP?

我有一個只能通過 VPC 端點訪問的私有 API 網關。 我希望資源策略僅在請求通過

A - VPC 端點(例如同一 VPC 內的 Lambda)

或者

B - 不在 VPC 內,而是來自一組外部 IP 地址/CIDR 塊。

我知道 A 可以通過以下方式實現:

"Condition": {
      "StringEquals": {
             "aws:SourceVpce": "vpce-xyz"
       }
}

我知道 B 可以通過以下方式實現:

"Condition": {
       "IpAddress": {
             "aws:SourceIp": [
                    "xx.xx.xx.xx/32"
             ]
       }
}

但是,是否可以以 OR 風格的方式同時應用它們? VPC 的入站規則允許 IP 地址/CIDR 塊。 同一 VPC 內的 Lambda 可以訪問私有 API 網關。

謝謝

編輯 - 政策的完整示例:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:eu-west-1:x:y/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceVpce": "vpce-123"
                },
                "IpAddress": {
                    "aws:SourceIp": [
                        "1234",
                        "1234"
                    ]
                }
            }
        }
    ]
}

是的,這應該是可能的。 您需要兩個 IAM 語句來獲取OR 所以基本上第二個語句與第一個語句完全相同,除了條件。 例如:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:eu-west-1:x:y/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceVpce": "vpce-123"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:eu-west-1:x:y/*",
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": [
                        "1234",
                        "1234"
                    ]
                }
            }
        }        
    ]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM