Как настроить Cloudformation для полного доступа с безсерверного клиента? - PullRequest
0 голосов
/ 17 сентября 2018

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

Пользователь: arn: aws: iam :: xxxx: user / myname is notразрешено выполнять: cloudformation: DescribeStacks на ресурсе: arn: aws: cloudformation: eu-west-1: xxxxxx: stack / hello-world-dev / *

Я проверил свои ключи, и они верныЯ предполагаю, что у моего пользователя нет доступа к облачной информации.

Мой вопрос: возможно ли установить разрешения для моего пользователя в файле yaml?Например, полный доступ к облачной информации, полный доступ к лямбде и т. Д.

Ниже вы можете найти мои файлы функций и yaml:

handler.js

module.exports.helloWorld = (event, context, callback) => {
  const response = {
    statusCode: 200,
    headers: {
      'Access-Control-Allow-Origin': '*', // Required for CORS support to work
    },
    body: JSON.stringify({
      message: 'Go Serverless v1.0! Your function executed successfully!',
      input: event,
    }),
  };

  callback(null, response);
};

serverless.yaml

service: hello-world

provider:
  name: aws
  runtime: nodejs8.10
  region: eu-west-1
  # iamRoleStatements:
  #   - Effect: "Allow"
  #     Action:
  #      - cloudformation: CreateStack
  #      - cloudformation: DescribeStacks
  #      - cloudformation: CreateChangeSet
  #      - cloudformation: ListStacks
  #      - cloudformation: UpdateStack
  #      - cloudformation: DescribeChangeSet
  #      - cloudformation: ExecuteChangeSet
  #      - iam: GetRole
  #      - lambda: UpdateFunctionCode
  #      - lambda: UpdateFunctionConfig
  #      - lambda: GetFunctionConfiguration
  #      - lambda: AddPermission
  #      - s3: GetObject
  #     Resource: "*"

# The `functions` block defines what code to deploy
functions:
  helloWorld:
    handler: handler.helloWorld
    # The `events` block defines how to trigger the handler.helloWorld code
    events:
      - http:
          path: hello-world
          method: get
          cors: true

1 Ответ

0 голосов
/ 17 сентября 2018

Таким образом, проблема здесь в том, что ваши ключи ~ / .aws / credentials по умолчанию не имеют правильных назначенных им разрешений.

Вы не можете назначить разрешения в файле yaml для вашего пользователя, вам нужно перейти в консоль и назначить, вы можете создавать пользователей в разделе ресурсов, но это будет противоречит интуитивно - я не совсем уверен каков ваш уровень знаний, поэтому, если вам нужна дополнительная помощь, пожалуйста, прокомментируйте, и я уточню свой ответ.

Ваша роль / разрешения для развертывания должны в основном иметь полный доступ к Lambda, IAM, Cloudformation и APIG.

...