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) 模板中声明此实体,请使用以下语法。

属性

AddApiKeyRequiredToCorsPreflight

如果设置了 ApiKeyRequiredCors 属性,则设置 AddApiKeyRequiredToCorsPreflight 会导致 API 密钥被添加到 Options 属性中。

类型:布尔值

必需:否

默认值True

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

AddDefaultAuthorizerToCorsPreflight

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

类型:布尔值

必需:否

默认值:True

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

ApiKeyRequired

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

类型:布尔值

必需:否

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

Authorizers

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

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

类型:CognitoAuthorizer| LambdaTokenAuthorizer| LambdaRequestAuthorizer

必需:否

默认值:无

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

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

DefaultAuthorizer

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

注意

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

类型:字符串

必需:否

默认值:无

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

InvokeRole

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

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

有效值: CALLER_CREDENTIALS, NONE, IAMRoleArn

类型:字符串

必需:否

默认值CALLER_CREDENTIALS

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

ResourcePolicy

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

类型:ResourcePolicyStatement

必需:否

Amazon CloudFormation 兼容性:此属性为 Amazon SAM 独有,没有 Amazon CloudFormation 等效属性。

附加说明:也可以使用 ApiFunctionAuth 在各个 AWS::Serverless::Function 中定义此设置。对于带 EndpointConfiguration: PRIVATE 的 API,这是必需的。

UsagePlan

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

如果设置了此 Amazon SAM 属性,它还会生成三个额外的 Amazon CloudFormation 资源:AWS::ApiGateway::UsagePlanAWS::ApiGateway::UsagePlanKeyAWS::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"