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

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

ApiAuth

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

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

语法

要在Amazon Serverless Application Model (Amazon SAM) 模板中声明此实体,请使用以下语法。

属性

AddDefaultAuthorizerToCorsPreflight

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

类型:布尔值

必填项:否

默认值:True

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

ApiKeyRequired

如果设置为 true,则所有 API 事件都需要 API 键。有关 API 密钥的更多信息,请参阅 API Gate way 开发者指南中的使用 API 密钥创建和使用使用计划

类型:布尔值

必填项:否

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

Authorizers

授权方用于控制对 API Gateway API 的访问。

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

类型CognitoAuthorizer| LambdaTokenAuthorizer| LambdaRequestAuthorizer

必填项:否

默认值:None(无)

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

其他注意事项:SAM 将授权方添加到 Api 的 OpenApi 定义中。

DefaultAuthorizer

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

注意

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

类型:字符串

必填项:否

默认值:None(无)

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

InvokeRole

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

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

有效值CALLER_CREDENTIALSNONEIAMRoleArn

类型:字符串

必填项:否

默认值CALLER_CREDENTIALS

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

ResourcePolicy

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

类型ResourcePolicyStatement

必填项:否

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。

其他注意事项:也可以AWS::Serverless::Function使用在个人身上定义此设置ApiFunctionAuth。对于使用的 API 来说,这是必需的EndpointConfiguration: PRIVATE

UsagePlan

配置与此 API 关联的使用计划。有关使用计划的更多信息,请参阅 API Gate way 开发者指南中的使用 API 密钥创建和使用使用计划

设置此Amazon SAM属性后,此属性会生成三个额外Amazon CloudFormation资源:an AWS::ApiGateway::UsagePlanAWS::ApiGateway::UsagePlanKey、an 和AWS::ApiGateway::ApiKey。有关此方案的信息,请参阅指定了 UsagePlan 属性。有关生成的Amazon CloudFormation资源的一般信息,请参阅Amazon CloudFormation

类型ApiUsagePlan

必填项:否

Amazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon 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"