ApiAuth - AWS Serverless Application Model

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

ApiAuth

設定授權以控制 API Gateway 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將導致預設授權者新增至 OpenAPI 區段中的Options屬性。

類型:布林值

必要:否

預設值:真

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

ApiKeyRequired

如果設置為 true,則所有 API 事件都需要 API 密鑰。如需 API 金鑰的詳細資訊,請參閱 API Gateway 開發人員指南中的建立和使用搭配 API 金鑰的使用方案

類型:布林值

必要:否

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

Authorizers

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

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

類型:CognitoAuthorizerLambdaTokenAuthorizer| LambdaRequestAuthorizer

必要:否

預設:無

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

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

DefaultAuthorizer

指定 API Gateway API 的預設授權程式,預設情況下將用於授權 API 呼叫。

注意

如果與此 API EventSource 關聯之函數的 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. 這對於使用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"