ApiFunctionAuth - AWS Serverless Application Model

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.

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.

AuthorizationScopes

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

AuthorizerUntuk 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 properti AWS::Serverless::Api sumber daya untuk mendeskripsikan API Anda, Anda harus menggunakan OverrideApiAuth with Authorizer untuk mengganti otorisasi global Anda. Untuk informasi selengkapnya, lihat OverrideApiAuth.

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 otorisasi AWS_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 ke arn: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 menggunakan DefinitionBody properti AWS::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