本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ApiAuth
配置授权以控制对 API Gateway API 的访问。
有关使用配置访问的更多信息和示例Amazon SAM看到控制对 API Gateway API 的访问.
语法
要在您的中声明此实体Amazon Serverless Application Model(Amazon SAM) 模板,请使用以下语法。
YAML
AddDefaultAuthorizerToCorsPreflight:BooleanApiKeyRequired:BooleanAuthorizers:CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizerDefaultAuthorizer:StringInvokeRole:StringResourcePolicy:ResourcePolicyStatementUsagePlan:ApiUsagePlan
属性
-
AddDefaultAuthorizerToCorsPreflight -
如果
DefaultAuthorizer和Cors设置了属性,然后设置AddDefaultAuthorizerToCorsPreflight将导致默认授权者被添加到Options属性在 OpenAPI 部分中。类型:Boolean
必需:否
默认值:True
Amazon CloudFormation兼容性:该属性对是唯一的Amazon SAM而且没有Amazon CloudFormation等效项
-
ApiKeyRequired -
如果设置为 true,则所有 API 事件都需要 API 密钥。有关 API 键的更多信息,请参阅。创建和使用带 API 密钥的使用计划中的API Gateway 开发人员指南.
类型:Boolean
必需:否
Amazon CloudFormation兼容性:该属性对是唯一的Amazon SAM而且没有Amazon CloudFormation等效项
-
Authorizers -
用于控制对 API Gateway API 的访问的授权方。
有关更多信息,请参阅 控制对 API Gateway API 的访问。
类型:Cognito 授权者|lambdatoken授权者|lambdaRequest 授权者
必需:否
默认值:无
Amazon CloudFormation兼容性:该属性对是唯一的Amazon SAM而且没有Amazon CloudFormation等效项
附加说明:SAM 将授权者添加到 Api 的 OpenAPI 定义中。
-
DefaultAuthorizer -
为 API Gateway API 指定默认授权方,默认情况下将用于授权 API 调用。
注意:如果与此 API 关联的函数的 Api EventSource 配置为使用 IAM 权限,则必须将此属性设置为
AWS_IAM,否则将会导致出现错误。类型:字符串
必需:否
默认值:无
Amazon CloudFormation兼容性:该属性对是唯一的Amazon SAM而且没有Amazon CloudFormation等效项
-
InvokeRole -
将所有资源和方法的集成凭据设置为此值。
CALLER_CREDENTIALS映射到arn:aws:iam::*:user/*,它使用调用者凭据来调用终端节点。有效值:
CALLER_CREDENTIALS、NONE、IAMRoleArn类型:字符串
必需:否
默认值:
CALLER_CREDENTIALSAmazon CloudFormation兼容性:该属性对是唯一的Amazon SAM而且没有Amazon CloudFormation等效项
-
ResourcePolicy -
为 API 上的所有方法和路径配置资源策略。
类型:资源策略声明
必需:否
Amazon CloudFormation兼容性:该属性对是唯一的Amazon SAM而且没有Amazon CloudFormation等效项
附加说明:此设置也可以在个人身上定义
AWS::Serverless::Function使用ApiFunctionAuth. 这对于具有EndpointConfiguration: PRIVATE. -
UsagePlan -
配置与此 API 关联的使用计划。有关使用计划的更多信息请参阅创建和使用带 API 密钥的使用计划中的API Gateway 开发人员指南.
该Amazon SAM属性生成三个额外的Amazon CloudFormation设置此属性时的资源:AWS::ApiGateway::UsagePlan,一个AWS::ApiGateway::UsagePlanKey,还有AWS::ApiGateway::ApiKey. 有关此方案的信息,请参阅。指定了 UsagePlan 属性. 有关生成的一般信息Amazon CloudFormation资源,请参阅生成Amazon CloudFormation资源.
类型:APIUSAGE 计划
必需:否
Amazon CloudFormation兼容性:该属性对是唯一的Amazon SAM而且没有Amazon CloudFormation等效项
示例
CognitoAuth
Cognito Auth 示例
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" } } }] IpRangeBlacklist: - "10.20.30.40"