gpt4 book ai didi

aws-cloudformation - 如何将 IAM Auth 仅应用于 API 网关路径的一种方法 - SAM 模板

转载 作者:行者123 更新时间:2023-12-03 07:33:54 24 4
gpt4 key购买 nike

我当前正在创建一个定义 AWS API 网关的 SAM 模板。我有一个路径 /example ,它有 3 个方法;获取、发布和选项。我希望 POST 方法具有 IAM 授权,但其他方法无需授权即可公开。我的 SAM 模板当前如下所示:

Resources:
ApiGatewayApi:
Type: AWS::Serverless::Api
Properties:
Name: <API NAME>
StageName: <Stage Name>
Auth:
ApiKeyRequired: false
AddDefaultAuthorizerToCorsPreflight: false
DefaultAuthorizer: AWS_IAM
ResourcePolicy:
CustomStatements: [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::...",
]
},
"Action": "execute-api:Invoke",
"Resource": "execute-api:/<Stage Name>/POST/example"
}]
Tags:
<Key>: <Value>
DefinitionBody:
<Swagger definition>

但是,这会将 IAM 身份验证附加到所有方法。如何指定它仅附加到其中一种方法?

谢谢!

最佳答案

正如 @kaustubh-khavnekar 在评论中提到的,需要以下内容:

  1. Auth 部分中删除 DefaultAuthorizer: AWS_IAM
  2. 将以下内容添加到 IAM protected 方法端点的 swagger 定义
post:
x-amazon-apigateway-auth:
type : "AWS_IAM"
  • 将以下内容添加到不 protected 方法端点的 swagger 定义中:
  • get:
    x-amazon-apigateway-auth:
    type : "NONE"

    关于aws-cloudformation - 如何将 IAM Auth 仅应用于 API 网关路径的一种方法 - SAM 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70739569/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com