2017-03-17 53 views
1

我已經在我的cloudformation模板中定義一個定製的授權:參考的API中的授權人定義網關路徑

MyCustomAuthorizer: 
    Type: AWS::ApiGateway::Authorizer 
    Properties: 
    Name: "MyCustomAuthorizer" 
    Type: "TOKEN" 
    AuthorizerUri: "arn:my_lambda" 
    IdentitySource: "method.request.header.Auth" 
    RestApiId: 
     Ref: ApiGatewayApi 

而且我有一個API網關API:

ApiGatewayApi: 
    Type: AWS::ApiGateway::RestApi 
    Properties: 
     Name: "ApiGatewayApi" 
     Description: "Api gateway REST API" 
     Body: 
     basePath: "/prod" 
     schemes: 
     - "https" 
     paths: 
      /echo: 
      get: 
       consumes: 
       - "application/json" 
       produces: 
       - "application/json" 
       responses: 
       "200": 
        description: "200 response" 
        schema: 
        $ref: "#/definitions/schema" 
       security: 
       - sigv4: [] 

如何使具體是/echo路徑使用MyCustomAuthorizer

我可以使用說明here

回答

0

的文檔有一個example在控制檯上做到這一點。您需要在方法內的'安全'屬性中添加定製授權人

"securityDefinitions" : { 
    "test-authorizer" : { 
     "type" : "apiKey",       // Required and the value must be "apiKey" for an API Gateway API. 
     "name" : "Authorization",     // The source header name identifying this authorizer. 
     "in" : "header",       // Required and the value must be "header" for an AAPI Gateway API. 
     "x-amazon-apigateway-authtype" : "oauth2", // Specifies the authorization mechanism for the client. 
     "x-amazon-apigateway-authorizer" : {  // An API Gateway custom authorizer definition 
     "type" : "token",      // Required property and the value must "token" 
     "authorizerUri" : "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:account-id:function:function-name/invocations", 
     "authorizerCredentials" : "arn:aws:iam::account-id:role", 
     "identityValidationExpression" : "^x-[a-z]+", 
     "authorizerResultTtlInSeconds" : 60 
     } 
    } 
    } 


    "/http" : { 
    "get" : { 
    "responses" : { }, 
    "security" : [ { 
     "test-authorizer" : [ ] 
    } ], 
    "x-amazon-apigateway-integration" : { 
     "type" : "http", 
     "responses" : { 
     "default" : { 
      "statusCode" : "200" 
     } 
     }, 
     "httpMethod" : "GET", 
     "uri" : "http://api.example.com" 
    } 
    } 
}