Окончательный размер политики превышает лимит (20480) - PullRequest
0 голосов
/ 20 октября 2019

Очевидно, я достиг предела для политики моей лямбда-функции, которую я использую с aws-cognito и aws-api-gateway:

The final policy size is bigger than the limit (20480)

Итак, моя лямбда-функциязаполнен всеми разрешенными конечными точками от шлюза API, например:

{
      "Sid": "eff74414-a6bd-4520-bf67-691ced3245d5",
      "Effect": "Allow",
      "Principal": {
        "Service": "apigateway.amazonaws.com"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:eu-central-1:ID:function:FUNCTION",
      "Condition": {
        "ArnLike": {
          "AWS:SourceArn": "arn:aws:execute-api:eu-central-1:ID:API_ID/*/GET/company"
        }
      }
    },
    {
      "Sid": "6d52e172-84b6-4196-b924-f83b78153bc5",
      "Effect": "Allow",
      "Principal": {
        "Service": "apigateway.amazonaws.com"
      },
      "Action": "lambda:InvokeFunction",
      "Resource": "arn:aws:lambda:eu-central-1:ID:function:FUNCTION",
      "Condition": {
        "ArnLike": {
          "AWS:SourceArn": "arn:aws:execute-api:eu-central-1:ID:API_ID/*/GET/companies"
        }
      }
    },
...

Я знаю, что есть способ объединить их, используя aws cli, например:

aws lambda add-permission --function-name 'FUNCTION' --statement-id '7bd8e791-7d28-41d0-9ebd-7e2596574fd5' --action "lambda:InvokeFunction" --principal "apigateway.amazonaws.com" --source-arn "arn:aws:execute-api:eu-central-1:ID:API_ID/*/GET/*/*/*" --source-account "ID" --region 'eu-central-1'

Хотя я могу добавить это разрешение, оно недействительно:

API с идентификатором API_ID не включает ресурс с путем /// *, имеющий интеграцию arn: aws: lambda: eu-central-1: ID: function: FUNCTION для метода GET.

Итак, что я могу сделать, чтобы объединить все мои разрешения API?

1 Ответ

0 голосов
/ 20 октября 2019

Хорошо, поэтому я нашел решение. Я устанавливаю Execution role для каждого Integration Request для каждого метода ресурса в API-шлюзе.

Эта роль выполнения должна иметь доверительные отношения с API-шлюзом - тогда она, наконец, будет работать:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...