Как я могу сделать белый / IPC белый список для API в API Gateway? - PullRequest
0 голосов
/ 22 октября 2018

У нас есть API в API Gateway, связанный с лямбда-функцией.API имеет три этапа (Dev / Stage / Prod), ключ API (необходим) и план использования (подключен ко всем трем этапам).

Мы пытаемся ограничить трафик для этого API, чтобы Stage/ Prod доступен только с наших серверов из нашего VPC, а Dev доступен только с IP-адреса нашего офиса.Мы попытались использовать Ресурсную Политику ниже, но она не работает.Stage / Prod по-прежнему доступен с IP-адреса нашего офиса.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:eu-west-1:{{accountId}}:{{apiId}}/*"
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": [
                "arn:aws:execute-api:eu-west-1:{{accountId}}:{{apiId}}/Stage",
                "arn:aws:execute-api:eu-west-1:{{accountId}}:{{apiId}}/Prod"
            ],
            "Condition": {
                "StringNotEquals": {
                    "aws:SourceVpc": "{{vpcId}}"
                }
            }
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "execute-api:Invoke",
            "Resource": "arn:aws:execute-api:eu-west-1:{{accountId}}:{{apiId}}/Dev",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "{{ipAddress}}"
                }
            }
        }
    ]
}

Мы заменили наши реальные значения на рули {{}}.

Что мы делаем не так?Ура!

...