API网关允许来自VPC端点或源IP的请求



我有一个只能通过VPC端点访问的专用API网关。我希望资源策略只允许通过的请求进入

一个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"
]
}
}
}        
]
}

相关内容

  • 没有找到相关文章

最新更新