首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在SAM模板中为隐式API网关分配IAM角色?

在SAM(Serverless Application Model)模板中为隐式API网关分配IAM角色,可以通过以下步骤实现:

  1. 在SAM模板中定义API网关资源,并指定其类型为AWS::Serverless::Api。例如:
代码语言:txt
复制
Resources:
  MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      DefinitionBody:
        swagger: "2.0"
        info:
          title: My API
        paths:
          /hello:
            get:
              responses:
                '200':
                  description: OK
  1. 在API网关资源中,添加一个属性Auth,用于指定隐式API网关的IAM角色。例如:
代码语言:txt
复制
Resources:
  MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      Auth:
        DefaultAuthorizer: MyAuthorizer
        Authorizers:
          MyAuthorizer:
            Type: AWS_IAM
  1. 在SAM模板中定义IAM角色资源,并为隐式API网关指定相应的角色。例如:
代码语言:txt
复制
Resources:
  MyApiRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service: apigateway.amazonaws.com
            Action: sts:AssumeRole
      Policies:
        - PolicyName: MyApiPolicy
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action:
                  - lambda:InvokeFunction
                Resource: "*"
  MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: prod
      Auth:
        DefaultAuthorizer: MyAuthorizer
        Authorizers:
          MyAuthorizer:
            Type: AWS_IAM
            AuthorizerUri: arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:MyAuthorizer/invocations
            AuthorizerCredentials:
              Fn::GetAtt: [MyApiRole, Arn]

在上述示例中,我们创建了一个名为MyApiRole的IAM角色资源,并为其指定了允许API网关服务扮演该角色的权限。然后,在API网关资源的Auth属性中,我们指定了MyApiRole作为隐式API网关的IAM角色。

请注意,以上示例中的资源和属性名称仅供参考,实际使用时需要根据具体情况进行调整。

关于SAM模板和隐式API网关的更多信息,您可以参考腾讯云的相关文档和产品介绍:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券