本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
ApiAuth
設定授權以控制 API Gateway API 的存取權。
如需使用來配置存取權的詳細資訊和範例, AWS SAM 請參閱使用 AWS SAM 範本控制 API 存取。
語法
若要在 AWS Serverless Application Model (AWS SAM) 範本中宣告此實體,請使用下列語法。
YAML
AddApiKeyRequiredToCorsPreflight:
Boolean
AddDefaultAuthorizerToCorsPreflight:Boolean
ApiKeyRequired:Boolean
Authorizers:CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer
DefaultAuthorizer:String
InvokeRole:String
ResourcePolicy:ResourcePolicyStatement
UsagePlan:ApiUsagePlan
屬性
-
AddApiKeyRequiredToCorsPreflight
-
如果設定了
ApiKeyRequired
和Cors
屬性,則設定AddApiKeyRequiredToCorsPreflight
會導致 API 金鑰新增至Options
屬性。類型:布林值
必要:否
預設:
True
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
-
如果設定
DefaultAuthorizer
和Cors
屬性,則設定AddDefaultAuthorizerToCorsPreflight
將導致預設授權者新增至 OpenAPI 區段中的Options
屬性。類型:布林值
必要:否
預設值:真
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
-
ApiKeyRequired
-
如果設置為 true,則所有 API 事件都需要 API 密鑰。如需 API 金鑰的詳細資訊,請參閱 API Gateway 開發人員指南中的建立和使用搭配 API 金鑰的使用方案。
類型:布林值
必要:否
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
-
用來控制 API Gateway API 存取權的授權者。
如需詳細資訊,請參閱 使用 AWS SAM 範本控制 API 存取。
類型:CognitoAuthorizerLambdaTokenAuthorizer| LambdaRequestAuthorizer
必要:否
預設:無
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
附加說明:SAM 將授權者添加到 Api 的 OpenApi 定義中。
-
指定 API Gateway API 的預設授權程式,預設情況下將用於授權 API 呼叫。
注意
如果與此 API EventSource 關聯之函數的 Api 設定為使用 IAM 許可,則必須將此屬性設定為
AWS_IAM
,否則將導致錯誤。類型:字串
必要:否
預設:無
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
-
InvokeRole
-
將所有資源和方法的整合認證設定為此值。
CALLER_CREDENTIALS
映射到arn:aws:iam::*:user/*
,它使用呼叫者認證來調用端點。有效值:
CALLER_CREDENTIALS
、NONE
、IAMRoleArn
類型:字串
必要:否
預設:
CALLER_CREDENTIALS
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
-
ResourcePolicy
-
為 API 上的所有方法和路徑配置資源策略。
必要:否
AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。
附加注意事項:此設定也可以個別
AWS::Serverless::Function
使用ApiFunctionAuth. 這對於使用EndpointConfiguration: PRIVATE
. -
UsagePlan
-
設定與此 API 相關聯的使用方案。如需使用方案的詳細資訊,請參閱 API Gateway 開發人員指南中的建立和使用搭配 API 金鑰的使用方案。
設定此 AWS SAM 屬性時 AWS::ApiGateway::UsagePlan,此屬性會產生三個額外的 AWS CloudFormation 資源:a AWS::ApiGateway::UsagePlanKey、a 和 AWS::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"