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

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

ApiAuth

配置授权以控制对您的 API 网关 API。

有关使用来配置访问权限的更多信息和示例 AWS SAM 看到 控制对的访问 API 网关 APIs 在 AWS 无服务器应用程序模型 开发人员指南.

语法

在你的 AWS 无服务器应用程序模型 (AWS SAM)模板,使用以下语法。

属性

AddDefaultAuthorizerToCorsPreflight

如果 DefaultAuthorizerCors 设置属性,然后设置 AddDefaultAuthorizerToCorsPreflight 将默认授权者添加到 Options 属性。

类型:布尔值

必需: 否

默认值:True.

AWS CloudFormation 相容性: 此属性对于 AWS SAM 并且没有 AWS CloudFormation 同等产品。

ApiKeyRequired

如果设置为true,则所有API事件都需要API密钥。有关API密钥的更多信息,请参阅 使用API密钥创建和使用计划 在 API 网关 开发人员指南.

类型:布尔值

必需: 否

AWS CloudFormation 相容性: 此属性对于 AWS SAM 并且没有 AWS CloudFormation 同等产品。

Authorizers

授权人用于控制对您的 API 网关 API。

有关更多信息,请参阅 AWS 无服务器应用程序模型 开发人员指南 中的 控制对的访问 API 网关 APIs

类型: 骨科医生 | LambdaTokenAuthor | Lambda申请授权人

必需: 否

默认值:无

AWS CloudFormation 相容性: 此属性对于 AWS SAM 并且没有 AWS CloudFormation 同等产品。

其他备注: SAM将授权者添加到Api的OpenApi定义中。

DefaultAuthorizer

为 API 网关 API,用于默认授权API调用。

注意:如果与此API关联的函数的ApiEventsource配置为使用IAM权限,则此属性必须设置为 AWS_IAM否则将出现错误。

类型:字符串

必需: 否

默认值:无

AWS CloudFormation 相容性: 此属性对于 AWS SAM 并且没有 AWS CloudFormation 同等产品。

InvokeRole

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

支持的值 CALLER_CREDENTIALS, NONE,IAMRoleArn。

CALLER_CREDENTIALS 映射至 arn:aws:iam::*:user/*,使用呼叫者凭证调用终端。

类型:字符串

必需: 否

默认值CALLER_CREDENTIALS

AWS CloudFormation 相容性: 此属性对于 AWS SAM 并且没有 AWS CloudFormation 同等产品。

ResourcePolicy

针对API上的所有方法和路径配置资源策略。

类型: 资源政策声明

必需: 否

AWS CloudFormation 相容性: 此属性对于 AWS SAM 并且没有 AWS CloudFormation 同等产品。

其他备注: 也可根据个人 AWS::Serverless::Function 使用 ApiFunctionAuth. 对于具有以下特性的API来说,这是必需的 EndpointConfiguration: PRIVATE.

UsagePlan

配置与此API关联的使用计划。有关使用计划的更多信息,请参阅 使用API密钥创建和使用计划 在 API 网关 开发人员指南.

这 AWS SAM 属性会生成三个额外的 AWS CloudFormation 设置此属性时的资源: ASTA::ApiGateway::Usage计划, ASTA::ApiGateway::UsageplanKey、和 ASTA::ApiGateway::ApiKey. 有关此方案的信息,请参阅 UsagePlan 属性已指定. 有关生成的 AWS CloudFormation 资源,请参阅 已生成 AWS CloudFormation 资源.

类型: ApiUsage计划

必需: 否

AWS CloudFormation 相容性: 此属性对于 AWS SAM 并且没有 AWS CloudFormation 同等产品。

示例

CognitoAuth

骨灰泥认证示例

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"