botocore.exceptions.ClientError: Произошла ошибка (AccessDeniedException) при вызове операции CreateStateMachine - PullRequest
0 голосов
/ 19 сентября 2019

Я получаю следующую ошибку при попытке создать конечный автомат на основе определения моего конечного автомата:

botocore.exceptions.ClientError: An error occurred (AccessDeniedException) when calling the CreateStateMachine operation: 'role' is not authorized to create managed-rule.

Код создания:

state_machine = sfn_client.create_state_machine(
    name = 'state-machine',
    definition = state_machine_def,
    roleArn = SFN_ROLE,
)

Моя роль IAM, котораяЯ использую содержит все необходимые разрешения, как описано здесь .Какого рода управляемое правило необходимо иметь разрешение на создание?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2019

Причина в том, что политика CloudWatchFullAccess , присоединенная к SFN_ROLE , не имеет достаточных разрешений для рабочего процесса пошаговых функций для публикации событий в CloudWatch.Как только я заменил его на CloudWatchEventsFullAccess все работает нормально.

0 голосов
/ 19 сентября 2019

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

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "states:ListStateMachines",
        "states:ListActivities",
        "states:CreateStateMachine",
        "states:CreateActivity"
      ],
      "Resource": [ 
        "arn:aws:states:*:*:*" 
      ]
    },
    {
      "Effect": "Allow",
      "Action": [ 
        "iam:PassRole"
      ],
      "Resource": [
        "arn:aws:iam:::role/my-execution-role"
      ]
    }
  ]
...