ApiAuth - AWS Serverless Application Model

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

ApiAuth

設定授權以控制API閘道的存取權API。

如需使用來配置存取權的詳細資訊和範例, AWS SAM 請參閱使用 AWS SAM 範本控制API存取

語法

若要在 AWS Serverless Application Model (AWS SAM) 範本中宣告此實體,請使用下列語法。

屬性

AddApiKeyRequiredToCorsPreflight

如果設定了ApiKeyRequiredCors屬性,則設定AddApiKeyRequiredToCorsPreflight會導致API金鑰新增至Options屬性。

類型:布林值

必要:否

預設True

AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。

AddDefaultAuthorizerToCorsPreflight

如果設定DefaultAuthorizerCors屬性,則設定AddDefaultAuthorizerToCorsPreflight將導致預設授權者新增至 API「開啟」區段中的Options屬性。

類型:布林值

必要:否

預設值:真

AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。

ApiKeyRequired

如果設置為 true 則需要所有API事件的API密鑰。如需API金鑰的詳細資訊,請參閱《API閘道開發人員指南》的「建立和使用API金鑰使用計劃」。

類型:布林值

必要:否

AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。

Authorizers

用來控制API閘道API存取權的授權者。

如需詳細資訊,請參閱使用 AWS SAM 範本控制API存取

類型:CognitoAuthorizerLambdaTokenAuthorizer| LambdaRequestAuthorizer

必要:否

預設:無

AWS CloudFormation 兼容性:此屬性是唯一的, AWS SAM 並且沒有相 AWS CloudFormation 等的屬性。

附加說明:SAM將授權者添加到 Api 的 OpenApi 定義中。

DefaultAuthorizer

指定API閘道的預設授權者API,預設情況下將用於授權通API話。

注意

如果與此關聯 EventSource 的函數的 Api 配置API為使用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如需使用方案的詳細資訊,請參閱《API閘道開發人員指南》的「使用API金鑰建立和使用使用計劃

設定此 AWS SAM 屬性時 AWS::ApiGateway::UsagePlan,此屬性會產生三個額外的 AWS CloudFormation 資源:a AWS::ApiGateway::UsagePlanKey、a 和 AWS::ApiGateway::ApiKey. 如需有關此案例的資訊,請參閱UsagePlan屬性已指定。如需有關已產生 AWS CloudFormation 資源的一般資訊,請參閱產生的 AWS CloudFormation 資源 AWS SAM

類型: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" } } }] IpRangeDenylist: - "10.20.30.40"