本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
ApiAuth
配置授权以控制对 API Gateway API 的访问。
有关使用配置访问权限的更多信息和示例,Amazon SAM请参阅控制对 API Gateway API 的访问。
语法
要在Amazon Serverless Application Model (Amazon SAM) 模板中声明此实体,请使用以下语法。
YAML
AddDefaultAuthorizerToCorsPreflight:BooleanApiKeyRequired:BooleanAuthorizers:CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizerDefaultAuthorizer:StringInvokeRole:StringResourcePolicy:ResourcePolicyStatementUsagePlan:ApiUsagePlan
属性
-
AddDefaultAuthorizerToCorsPreflight -
如果设置了
DefaultAuthorizer和Cors属性,则设置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_CREDENTIALS、NONE、IAMRoleArn类型:字符串
必填项:否
默认值:
CALLER_CREDENTIALSAmazon CloudFormation兼容性:此属性是独一无二的Amazon SAM,没有Amazon CloudFormation等效属性。
-
ResourcePolicy -
为 API 上的所有方法和路径配置资源策略。
必填项:否
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"