ApiAuth
Configure authorization to control access to your API Gateway API.
For more information and examples for configuring access using AWS SAM see Control API access with your AWS SAM template.
Syntax
To declare this entity in your AWS Serverless Application Model (AWS SAM) template, use the following syntax.
YAML
AddApiKeyRequiredToCorsPreflight:
Boolean
AddDefaultAuthorizerToCorsPreflight:Boolean
ApiKeyRequired:Boolean
Authorizers:CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer | AWS_IAM
DefaultAuthorizer:String
InvokeRole:String
ResourcePolicy:ResourcePolicyStatement
UsagePlan:ApiUsagePlan
Note
The Authorizers
property includes AWS_IAM
, but there is no extra configuration needed for AWS_IAM
. For an example, see AWS IAM.
Properties
-
AddApiKeyRequiredToCorsPreflight
-
If the
ApiKeyRequired
andCors
properties are set, then settingAddApiKeyRequiredToCorsPreflight
will cause the API key to be added to theOptions
property.Type: Boolean
Required: No
Default:
True
AWS CloudFormation compatibility: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent.
-
If the
DefaultAuthorizer
andCors
properties are set, then settingAddDefaultAuthorizerToCorsPreflight
will cause the default authorizer to be added to theOptions
property in the OpenAPI section.Type: Boolean
Required: No
Default: True
AWS CloudFormation compatibility: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent.
-
ApiKeyRequired
-
If set to true then an API key is required for all API events. For more information about API keys see Create and Use Usage Plans with API Keys in the API Gateway Developer Guide.
Type: Boolean
Required: No
AWS CloudFormation compatibility: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent.
-
The authorizer used to control access to your API Gateway API.
For more information, see Control API access with your AWS SAM template.
Type: CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer | AWS_IAM
Required: No
Default: None
AWS CloudFormation compatibility: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent.
Additional notes: SAM adds the Authorizers to the OpenApi definition of an Api.
-
Specify a default authorizer for an API Gateway API, which will be used for authorizing API calls by default.
Note
If the Api EventSource for the function associated with this API is configured to use IAM Permissions, then this property must be set to
AWS_IAM
, otherwise an error will result.Type: String
Required: No
Default: None
AWS CloudFormation compatibility: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent.
-
InvokeRole
-
Sets integration credentials for all resources and methods to this value.
CALLER_CREDENTIALS
maps toarn:aws:iam::*:user/*
, which uses the caller credentials to invoke the endpoint.Valid values:
CALLER_CREDENTIALS
,NONE
,IAMRoleArn
Type: String
Required: No
Default:
CALLER_CREDENTIALS
AWS CloudFormation compatibility: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent.
-
ResourcePolicy
-
Configure Resource Policy for all methods and paths on an API.
Type: ResourcePolicyStatement
Required: No
AWS CloudFormation compatibility: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent.
Additional notes: This setting can also be defined on individual
AWS::Serverless::Function
using the ApiFunctionAuth. This is required for APIs withEndpointConfiguration: PRIVATE
. -
UsagePlan
-
Configures a usage plan associated with this API. For more information about usage plans see Create and Use Usage Plans with API Keys in the API Gateway Developer Guide.
This AWS SAM property generates three additional AWS CloudFormation resources when this property is set: an AWS::ApiGateway::UsagePlan, an AWS::ApiGateway::UsagePlanKey, and an AWS::ApiGateway::ApiKey. For information about this scenario, see UsagePlan property is specified. For general information about generated AWS CloudFormation resources, see Generated AWS CloudFormation resources for AWS SAM.
Type: ApiUsagePlan
Required: No
AWS CloudFormation compatibility: This property is unique to AWS SAM and doesn't have an AWS CloudFormation equivalent.
Examples
CognitoAuth
Cognito Auth example
YAML
Auth: Authorizers: MyCognitoAuth: UserPoolArn: Fn::GetAtt: - MyUserPool - Arn AuthType: "COGNITO_USER_POOLS" DefaultAuthorizer: MyCognitoAuth InvokeRole: CALLER_CREDENTIALS AddDefaultAuthorizerToCorsPreflight: false ApiKeyRequired: false ResourcePolicy: CustomStatements: [{ "Effect": "Allow", "Principal": "*", "Action": "execute-api:Invoke", "Resource": "execute-api:/Prod/GET/pets", "Condition": { "IpAddress": { "aws:SourceIp": "1.2.3.4" } } }] IpRangeDenylist: - "10.20.30.40"
AWS IAM
AWS IAM example
YAML
Auth: Authorizers: AWS_IAM