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

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

ApiAuth

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

有关使用 AWS SAM 配置访问权限的更多信息和示例,请参阅控制对 API 网关 APIs 的访问

语法

在您的 中声明此实体 AWS 无服务器应用程序模型 (AWS SAM) 模板时,请使用以下语法。

属性

AddDefaultAuthorizerToCorsPreflight

如果设置了 DefaultAuthorizerCors 属性,则设置 AddDefaultAuthorizerToCorsPreflight 将导致默认授权方添加到 Options 部分的 OpenAPI 属性中。

类型:布尔值

必需: 否

默认值:True

兼容性AWS CloudFormation: 此属性对于 AWS SAM 是唯一的,没有等效的 AWS CloudFormation。

ApiKeyRequired

如果设置为 true,则所有 API 事件都需要一个 API 密钥。有关 API 密钥的更多信息,请参阅 https://docs.amazonaws.cn/apigateway/latest/developerguide/api-gateway-api-usage-plans.html 中的创建和使用带 API 密钥的使用计划API 网关 开发人员指南。

类型:布尔值

必需: 否

兼容性AWS CloudFormation: 此属性对于 AWS SAM 是唯一的,没有等效的 AWS CloudFormation。

Authorizers

用于控制对您的 API 网关 API 的访问的授权方。

有关更多信息,请参阅 控制对 API 网关 APIs 的访问

类型: CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer

必需: 否

默认值:无

兼容性AWS CloudFormation: 此属性对于 AWS SAM 是唯一的,没有等效的 AWS CloudFormation。

其他说明: SAM 将 授权方添加到 Api 的 OpenApi 定义中。

DefaultAuthorizer

为 API 网关 API 指定默认授权方,默认情况下将用于授权 API 调用。

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

类型: 字符串

必需: 否

默认值:无

兼容性AWS CloudFormation: 此属性对于 AWS SAM 是唯一的,没有等效的 AWS CloudFormation。

InvokeRole

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

CALLER_CREDENTIALS 映射到 arn:aws:iam::*:user/*,后者使用调用方凭证调用终端节点。

有效值CALLER_CREDENTIALSNONEIAMRoleArn

类型: 字符串

必需: 否

默认值CALLER_CREDENTIALS

兼容性AWS CloudFormation: 此属性对于 AWS SAM 是唯一的,没有等效的 AWS CloudFormation。

ResourcePolicy

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

类型: ResourcePolicyStatement

必需: 否

兼容性AWS CloudFormation: 此属性对于 AWS SAM 是唯一的,没有等效的 AWS CloudFormation。

其他说明: 也可以使用 AWS::Serverless::Function 在单个 ApiFunctionAuth 上定义此设置。这是具有 APIs 的 EndpointConfiguration: PRIVATE 所必需的。

UsagePlan

配置与此 API 关联的使用计划。有关使用计划的更多信息,请参阅 https://docs.amazonaws.cn/apigateway/latest/developerguide/api-gateway-api-usage-plans.html 中的创建和使用带 API 密钥的使用计划API 网关 开发人员指南。

在设置此属性时,AWS SAM 属性会生成三个额外的 AWS CloudFormation 资源:AWS::ApiGateway::UsagePlanAWS::ApiGateway::UsagePlanKeyAWS::ApiGateway::ApiKey。有关此方案的信息,请参阅UsagePlan 属性已指定。有关生成的 AWS CloudFormation 资源的一般信息,请参阅已生成 AWS CloudFormation 资源

类型: ApiUsagePlan

必需: 否

兼容性AWS CloudFormation: 此属性对于 AWS SAM 是唯一的,没有等效的 AWS CloudFormation。

示例

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"