У меня есть IP-белый список Resource Policy
на AWS
API Gateway
, как показано ниже. Теперь у меня есть Lambda
, который должен вызывать этот API, но в настоящее время правильно запрещено.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "..."
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": "...",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"...",
"...",
]
}
}
}
]
}
Функция Lambda настроена для доступа к моему VP C:
VpcConfig:
SubnetIds:
- "subA"
- "subB"
SecurityGroupIds:
- "sg1"
У меня вопрос в два раза:
- Как мне изменить
API Resource Policy
разрешить доступ из этой функции? Замена политики белого списка приведенным ниже фрагментом не работает. ("User: anonymous is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:... with an explicit deny"
)
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": [
"arn:aws:execute-api:..."
],
"Condition" : {
"StringNotEquals": {
"aws:SourceVpc": "{{ID of VPC attached to Lambda}}"
}
}
}
Добавление приведенного выше фрагмента к существующей политике также нарушает существующую политику белого списка (весь доступ запрещен с идентичным сообщением, как указано выше). Как составить несколько политик рядом друг с другом? Они? Это
and
или
or
композиция?