本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
ApiAuth
設定授權以控制對 API Gateway API 的存取。
如需使用 設定存取的詳細資訊和範例, AWS SAM 請參閱 使用 AWS SAM 範本控制 API 存取。
語法
若要在 AWS Serverless Application Model (AWS SAM) 範本中宣告此實體,請使用下列語法。
YAML
AddApiKeyRequiredToCorsPreflight:BooleanAddDefaultAuthorizerToCorsPreflight:BooleanApiKeyRequired:BooleanAuthorizers:CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer | AWS_IAMDefaultAuthorizer:StringInvokeRole:StringResourcePolicy:ResourcePolicyStatementUsagePlan:ApiUsagePlan
注意
Authorizers 屬性包含 AWS_IAM,但 不需要額外的組態AWS_IAM。如需範例,請參閱「AWS IAM」。
屬性
-
AddApiKeyRequiredToCorsPreflight -
如果已設定
ApiKeyRequired和Cors屬性,則設定AddApiKeyRequiredToCorsPreflight會導致 API 金鑰新增至Options屬性。類型:布林值
必要:否
預設:
TrueCloudFormation 相容性:此屬性對 是唯一的 AWS SAM ,並且沒有 CloudFormation 同等的。
-
如果設定
DefaultAuthorizer和Cors屬性,則設定AddDefaultAuthorizerToCorsPreflight將導致預設授權方新增至 OpenAPI 區段中的Options屬性。類型:布林值
必要:否
預設:True
CloudFormation 相容性:此屬性對 是唯一的 AWS SAM ,並且沒有 CloudFormation 同等的。
-
ApiKeyRequired -
如果設定為 true,則所有 API 事件都需要 API 金鑰。如需 API 金鑰的詳細資訊,請參閱《 API Gateway 開發人員指南》中的使用 API 金鑰建立和使用用量計劃。
類型:布林值
必要:否
CloudFormation 相容性:此屬性對 是唯一的 AWS SAM ,並且沒有 CloudFormation 同等的。
-
用於控制 API Gateway API 存取的授權方。
如需詳細資訊,請參閱使用 AWS SAM 範本控制 API 存取。
類型:CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer | AWS_IAM
必要:否
預設:無
CloudFormation 相容性:此屬性對 是唯一的 AWS SAM ,並且沒有 CloudFormation 同等的。
其他備註:SAM 會將授權方新增至 Api 的 OpenApi 定義。
-
為 API Gateway API 指定預設授權方,該 API Gateway API 預設將用於授權 API 呼叫。
注意
如果與此 API 相關聯之函數的 Api EventSource 設定為使用 IAM 許可,則此屬性必須設定為
AWS_IAM,否則會產生錯誤。類型:字串
必要:否
預設:無
CloudFormation 相容性:此屬性對 是唯一的 AWS SAM ,並且沒有 CloudFormation 同等的。
-
InvokeRole -
將所有資源和方法的整合登入資料設定為此值。
CALLER_CREDENTIALS會映射至arn:aws:iam::,其會使用呼叫者登入資料來叫用端點。:<user>/有效值:
CALLER_CREDENTIALS、NONE、IAMRoleArn類型:字串
必要:否
預設:
CALLER_CREDENTIALSCloudFormation 相容性:此屬性對 是唯一的 AWS SAM ,並且沒有 CloudFormation 同等的。
-
ResourcePolicy -
設定 API 上所有方法和路徑的資源政策。
必要:否
CloudFormation 相容性:此屬性對 是唯一的 AWS SAM ,並且沒有 CloudFormation 同等的。
其他備註:此設定也可以
AWS::Serverless::Function在個別使用 時定義ApiFunctionAuth。對於具有 APIs,這是必要的EndpointConfiguration: PRIVATE。 -
UsagePlan -
設定與此 API 相關聯的用量計劃。如需用量計劃的詳細資訊,請參閱《 API Gateway 開發人員指南》中的建立和使用具有 API 金鑰的用量計劃。
此 AWS SAM 屬性會在設定此屬性時產生三個額外的 CloudFormation 資源:AWS::ApiGateway::UsagePlan、 AWS::ApiGateway::UsagePlanKey和 AWS::ApiGateway::ApiKey。如需此案例的資訊,請參閱 已指定 UsagePlan 屬性。如需已產生 CloudFormation 資源的一般資訊,請參閱 產生的 CloudFormation 資源 AWS SAM。
類型:ApiUsagePlan
必要:否
CloudFormation 相容性:此屬性對 是唯一的 AWS SAM ,並且沒有 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"
AWS IAM
AWS IAM 範例
YAML
Auth: Authorizers: AWS_IAM