Как вызвать функцию шага aws, используя запрос Http?

Я создал функцию шага и пытаюсь вызвать ее с помощью HTTP-запроса. Я использую Почтальон для создания подписи авторизации, но я получаю 403: запрещенный ответ.

<InvalidSignatureException>
  <Message>The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

I am invoking https://states.ap-northeast-1.amazonaws.com and getting back the reponse

The Canonical String for this request should have been
'POST
/

content-length:116
content-type:application/x-www-form-urlencoded
host:states.ap-northeast-1.amazonaws.com
x-amz-date:20170125T183745Z

content-length;content-type;host;x-amz-date
488183a388ce9b63833585129e71399296c8aa0ce4108b8f90d9616c43969a97'

The String-to-Sign should have been
'AWS4-HMAC-SHA256
20170125T183745Z
20170125/ap-northeast-1/states/aws4_request
fb2e325f309bf455dddbc0cd389523a9aa2410523393c9dc3890dac6e93e923c'
</Message>
</InvalidSignatureException>

Кажется, у меня нет разрешения вызывать функцию шага. Но в файле политики я предоставил доступ пользователю для данной роли:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::7640*******:user/*****",
        "Service": "states.ap-northeast-1.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

Пожалуйста, помогите мне настроить это?

2 ответа

У тебя есть sts:AssumeRole заявление в политике, но вы не звонили sts API, а ты? Ты звонишь states API, но нет соответствующего заявления в политике.

Удалить sts:AssumeRole заявление. Добавьте следующее утверждение.

Effect: Allow
Action: states:StartExecution
Resource: ARN of your state machine

Кажется, что аутентификация aws просто не работает в почтальоне: https://github.com/postmanlabs/postman-app-support/issues/3232

Другие вопросы по тегам