ApiAuth - Amazon Serverless Application Model
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

ApiAuth

配置授权以控制对 API Gateway API 的访问。

有关配置访问权限的更多信息和示例。Amazon SAM请参阅控制对 API Gateway API 的访问.

Syntax

要在您的Amazon Serverless Application Model(Amazon SAM) 模板,请使用以下语法。

Properties

AddDefaultAuthorizerToCorsPreflight

如果DefaultAuthorizerCors设置了属性,然后设置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,否则将导致出现错误。

类型:String

必需:否

默认值:无

Amazon CloudFormation兼容性:该属性是唯一的Amazon SAM没有Amazon CloudFormation等效函数

InvokeRole

将所有资源和方法的集成凭据设置为此值。

CALLER_CREDENTIALS映射到arn:aws:iam::*:user/*,它使用调用者凭据来调用终端节点。

有效值CALLER_CREDENTIALSNONEIAMRoleArn

类型:String

必需:否

默认值CALLER_CREDENTIALS

Amazon 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 CloudFormationresources.

类型APIUSagePlan

必需:否

Amazon CloudFormation兼容性:对是唯一的。Amazon SAM没有Amazon CloudFormation等效函数

Examples

CognitoAuth

Cognito 身份验证示例

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"