[英]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.