Не удается исправить Предоставленная роль выполнения не имеет разрешений для вызова CreateNetworkInterface в EC2 - PullRequest
0 голосов
/ 14 февраля 2020

Я пытаюсь развернуть с VP C, и это мой serverless.yaml


vpcSettings: &vpcSettings
  vpc: ${self:custom.allVpcSettings.${self:provider.stage}.vpc}

provider:
  name: aws
  runtime: nodejs10.x
  stage: ${opt:stage, 'local'}
  region: us-west-1
  memorySize: 256
  timeout: 30
  deploymentPrefix: fs-sls-${self:provider.stage}-deploy
  deploymentBucket: fs-serverless-deployment
  variables: ${file(.env.${opt:stage, self:provider.stage}.json)}
  environment:
    NODE_ENV: ${self:provider.variables.NODE_ENV}

functions:
  ping:
    handler: src/handler.ping
    description: Let us know if the service is up and running
    events:
      - http:
          path: ping
          method: get
          cors: true
  graphql:
    handler: src/handler.graphqlHandler
    <<: *vpcSettings
    description: One function where all GQL request comes
    memorySize: 1024
    events:
      - http:
          path: graphql
          method: post
          cors: true
      - http:
          path: graphql
          method: get
          cors: true

plugins:
  - serverless-offline

custom:
  serverless-offline:
    port: 6000
  allVpcSettings:
    local:
      vpc: 'This is a dummy value that should be ignored'
    dev:
      vpc:
        securityGroupIds:
          - sg-xxxxxxxxxxxxxxx
        subnetIds:
          - subnet-xxxxxxxxxxxxxxx
          - subnet-xxxxxxxxxxxxxxx
    prod:
      vpc:
        securityGroupIds:
          - sg-xxxxxxxxxxxxxxx
        subnetIds:
          - subnet-xxxxxxxxxxxxxxx
          - subnet-xxxxxxxxxxxxxxx

Сбой из-за следующей ошибки


  Serverless Error ---------------------------------------

  The provided execution role does not have permissions to call CreateNetworkInterface on EC2

  Get Support --------------------------------------------
     Docs:          docs.serverless.com
     Bugs:          github.com/serverless/serverless/issues
     Issues:        forum.serverless.com

  Your Environment Information ---------------------------
     Operating System:          darwin
     Node Version:              10.16.0
     Framework Version:         1.52.0
     Plugin Version:            2.0.0
     SDK Version:               2.1.1

Пользователь, которого я создал для для этого в его разрешениях есть AdministratorAccess, а также AWSLambdaVPCAccessExecutionRole. Что еще здесь ожидается?

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

Так что я исправил это. Это означает, что роль развертывания лямбды не имеет разрешения. Так что это сводится к тому, чтобы дать ему роль. Во-первых, подтвердите, если у вас есть роль. Проверьте изображение, где искать роль.

Как только вы его не найдете. Что вы, скорее всего, не будете. Возьмите имя роли и перейдите к IAM -> Роли и найдите имя роли и добавьте AWSLambdaVPCAccessExecutionRole к выбранной роли. Это должно дать ему необходимое разрешение.

Теперь попробуйте развернуть SLS, и оно должно работать.

Получив роль, отредактируйте ее, добавив enter image description here

0 голосов
/ 16 февраля 2020

Хотя пользователь, которого вы создали для развертывания этой лямбда-функции, имеет доступ администратора, самой лямбда-функции сама требуются сетевые разрешения, если вы развертываете ее в VP * 1013. *.

Попробуйте добавить эти разрешения в блок provider вашего serverless.yml шаблона:

    - Effect: Allow
      Action:
        - ec2:DescribeNetworkInterfaces
        - ec2:CreateNetworkInterface
        - ec2:DeleteNetworkInterface
        - ec2:DescribeInstances
        - ec2:AttachNetworkInterface
      Resource:
        - *

Если это сработает, вам потребуется развернуть более ограниченную структуру разрешений для ваша производственная среда.

...