Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
ApiFunctionAuth
Mengonfigurasi otorisasi di tingkat peristiwa, untuk API, jalur, dan metode tertentu.
Sintaks
Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.
YAML
ApiKeyRequired:
Boolean
AuthorizationScopes:List
Authorizer:String
InvokeRole:String
OverrideApiAuth:Boolean
ResourcePolicy:ResourcePolicyStatement
Properti
-
ApiKeyRequired
-
Memerlukan kunci API untuk API, jalur, dan metode ini.
Tipe: Boolean
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan.
-
Cakupan otorisasi yang akan diterapkan ke API, path, dan metode ini.
Cakupan yang Anda tentukan akan membatalkan setiap cakupan yang diterapkan oleh properti
DefaultAuthorizer
jika Anda telah menentukannya.Tipe: Daftar
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan.
-
Authorizer
Untuk fungsi tertentu.Jika Anda memiliki otorisasi global yang ditentukan untuk
AWS::Serverless::Api
sumber daya Anda, Anda dapat mengganti otorisasi dengan menyetelnya.Authorizer
NONE
Sebagai contoh, lihat Ganti otorisasi global untuk REST API Amazon API Gateway.catatan
Jika Anda menggunakan
DefinitionBody
propertiAWS::Serverless::Api
sumber daya untuk mendeskripsikan API Anda, Anda harus menggunakanOverrideApiAuth
withAuthorizer
untuk mengganti otorisasi global Anda. Untuk informasi selengkapnya, lihatOverrideApiAuth
.Nilai valid:
AWS_IAM
,NONE
, atau ID logis untuk otorisasi apa pun yang ditentukan dalam AWS SAM template Anda.Tipe: String
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan.
-
InvokeRole
-
Menentukan
InvokeRole
untuk digunakan untuk otorisasiAWS_IAM
.Tipe: String
Wajib: Tidak
Default:
CALLER_CREDENTIALS
AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan.
Catatan tambahan:
CALLER_CREDENTIALS
memetakan kearn:aws:iam::*:user/*
, yang menggunakan kredensial pemanggil untuk memanggil titik akhir. OverrideApiAuth
-
Tentukan
true
untuk mengganti konfigurasi otorisasi global sumber daya AndaAWS::Serverless::Api
. Properti ini hanya diperlukan jika Anda menentukan otorisasi global dan menggunakanDefinitionBody
propertiAWS::Serverless::Api
sumber daya untuk mendeskripsikan API Anda.catatan
Saat Anda menentukan
OverrideApiAuth
sebagaitrue
, AWS SAM akan mengganti otorisasi global Anda dengan nilai apa pun yang disediakan untukApiKeyRequired
,Authorizer
, atau.ResourcePolicy
Oleh karena itu, setidaknya satu dari properti ini juga harus ditentukan saat menggunakanOverrideApiAuth
. Sebagai contoh, lihat Ganti otorisasi global saat DefinitionBody for ditentukan AWS::Serverless::Api .Tipe: Boolean
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan.
-
ResourcePolicy
-
Mengonfigurasi Kebijakan Sumber Daya untuk jalur ini pada API.
Jenis: ResourcePolicyStatement
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan.
Contoh
Function-Auth
Contoh berikut menentukan otorisasi pada tingkat fungsi.
YAML
Auth: ApiKeyRequired: true Authorizer: NONE
Ganti otorisasi global untuk REST API Amazon API Gateway
Anda dapat menentukan otorisasi global untuk AWS::Serverless::Api
sumber daya Anda. Berikut ini adalah contoh yang mengkonfigurasi otorisasi default global:
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth
Untuk mengganti authorizer default untuk AWS Lambda fungsi Anda, Anda dapat menentukan Authorizer
sebagai. NONE
Berikut adalah contohnya:
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: ... MyFn: Type: AWS::Serverless::Function Properties: ... Events: LambdaRequest: Type: Api Properties: RestApiId: !Ref MyApiWithLambdaRequestAuth Method: GET Auth: Authorizer: NONE
Ganti otorisasi global saat DefinitionBody for ditentukan AWS::Serverless::Api
Saat menggunakan DefinitionBody
properti untuk mendeskripsikan AWS::Serverless::Api
sumber daya Anda, metode penggantian sebelumnya tidak berfungsi. Berikut ini adalah contoh penggunaan DefinitionBody
properti untuk sumber AWS::Serverless::Api
daya:
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... DefinitionBody: swagger: 2.0 ... paths: /lambda-request: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth
Untuk mengganti otorisasi global, gunakan properti. OverrideApiAuth
Berikut ini adalah contoh yang digunakan OverrideApiAuth
untuk mengganti otorisasi global dengan nilai yang disediakan untuk: Authorizer
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 ... Resources: MyApiWithLambdaRequestAuth: Type: AWS::Serverless::Api Properties: ... DefinitionBody: swagger: 2-0 ... paths: /lambda-request: ... Auth: Authorizers: MyLambdaRequestAuth: FunctionArn: !GetAtt MyAuthFn.Arn DefaultAuthorizer: MyLambdaRequestAuth MyAuthFn: Type: AWS::Serverless::Function ... MyFn: Type: AWS::Serverless::Function Properties: ... Events: LambdaRequest: Type: Api Properties: RestApiId: !Ref MyApiWithLambdaRequestAuth Method: GET Auth: Authorizer: NONE OverrideApiAuth: true Path: /lambda-token