Использование списка объектов документа политики IAM как AWS :: Serverless :: Function Policies - PullRequest
0 голосов
/ 29 июня 2018

В соответствии с документацией для AWS::Serverless::Function в модели без сервера, можно указать список объектов документа политики IAM (PDO) для свойства Policies ресурса.

Однако AWS Toolkit для Visual Studio отмечает синтаксическую ошибку, когда я пытаюсь определить IAM PDO: enter image description here

Вот полный пример моего Resources раздела:

"Resources": { "Example" : { "Type" : "AWS::Serverless::Function", "Properties": { "Handler": "Example::Example.Controllers.ExampleController::ExampleAction", "Runtime": "dotnetcore2.0", "CodeUri": "", "MemorySize": 256, "Timeout": 30, "Policies": [{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "*", "Resource": "*" } }], "Events": { "PutResource": { "Type": "Api", "Properties": { "Path": "/{id}", "Method": "GET" } } } } } }

Есть ли что-то, что я ошибаюсь, или есть проблема с проверкой синтаксиса SAM или AWS Toolkit?

Ответы [ 3 ]

0 голосов
/ 19 июля 2018

Кажется, проблема вызвана проблемами синтаксического анализа в Visual Studio и AWS Toolkit. Я поднял вопрос о GitHub, и вы можете отследить его здесь: https://github.com/aws/aws-sdk-net/issues/1001

0 голосов
/ 19 июля 2018

Я только что обновил схему VS CloudFormation. Проблема должна исчезнуть при следующем перезапуске Visual Studio.

0 голосов
/ 13 июля 2018

Я думаю, что проблема в вашем синтаксисе в том, что это должен быть массив операторов, потому что может быть несколько политик, как показано ниже,

"Statement":[ 
              {
                "Effect": "Allow",
                "Action": "*",
                "Resource": "*"
              }
            ]

Пример использования нескольких политик будет таким, как показано ниже,

"Statement": [
            {
              "Effect": "Allow",
              "Action": [
                "dynamodb:Query"
              ],
              "Resource": "arn:aws:dynamodb:${region}:*:table/${project}-songs-${dev}/*/*"
            },
            {
              "Effect": "Allow",
              "Action": [
                "dynamodb:GetItem"                  ],
              "Resource": "arn:aws:dynamodb:${region}:*:table/${project}-users-${dev}"
            },

         ]
...