【问题标题】:AWS API Gateway Reverse Http Proxy to SQS Access DeniedAWS API Gateway 反向 Http 代理到 SQS 访问被拒绝
【发布时间】:2022-09-30 04:08:25
【问题描述】:

我正在尝试使用屏幕截图中的配置将 AWS API Gateway 用作 AWS SQS 的反向(转发)代理。我本质上想向 API Gateway 发送一个 REST 请求,然后直接转发到 SQS REST API 并返回响应。

当我向网关发送请求时,我立即返回

<?xml version=\"1.0\"?>
  <ErrorResponse xmlns=\"http://queue.amazonaws.com/doc/2012-11-05/\">
    <Error>
      <Type>Sender</Type>
      <Code>AccessDenied</Code>
      <Message>Access to the resource https://sqs.us-east-1.amazonaws.com/ is denied.</Message>
      <Detail/>
    </Error>
    <RequestId>51c903b2-4da3-5d5e-a3b8-589ee72167de</RequestId>
  </ErrorResponse>

但是,当我将请求 URL 直接切换到 SQS (https://sqs.us-east-1.amazonaws.com) 时,请求成功。

我错过了什么?

curl --request POST \'https://my-api-gateway.com/sqs\' \\
--header \'X-Amz-Date: <date>\' \\
--header \'X-Amz-Security-Token: <token>\' \\
--header \'Authorization: <auth>\' \\
--header \'Amz-Sdk-Invocation-Id: <invocation>\' \\
--header \'Amz-Sdk-Request: attempt=1; max=10\' \\
--header \'User-Agent: aws-sdk-go-v2/1.16.5 os/macos lang/go/1.18.3 md/GOOS/darwin md/GOARCH/arm64 api/sqs/1.18.6\' \\
--header \'Content-Length: 206\' \\
--data-urlencode \'Action=ReceiveMessage\' \\
--data-urlencode \'MaxNumberOfMessages=10\' \\
--data-urlencode \'QueueUrl=<my-queue-url>\' \\
--data-urlencode \'Version=2012-11-05\' \\
--data-urlencode \'WaitTimeSeconds=20\'

    标签: amazon-web-services aws-api-gateway amazon-api-gateway


    【解决方案1】:

    API 网关集成需要附加一个调用角色。此 IAM 角色必须具有适用于您的 SQS 的 SendMessage 策略,以便您的 API 网关集成有权将数据推送到您的队列。

    为此,首先使用此策略创建一个 IAM 角色

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": "sqs:SendMessage",
                "Resource": "arn:aws:sqs:eu-west-1:1234:your-queue-name"
            }
        ]
    }
    

    现在转到 API Gateway > 管理集成 > 选择您的集成 > 编辑 > 在调用角色字段中添加新创建的 IAM 角色的 ARN like this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 2021-07-13
      相关资源
      最近更新 更多