

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# ApiAuth
<a name="sam-property-api-apiauth"></a>

Konfigurasikan otorisasi untuk mengendalikan akses ke API Gateway Anda.

Untuk informasi selengkapnya dan contoh untuk mengonfigurasi akses menggunakan AWS SAM lihat[Kontrol akses API dengan AWS SAM template Anda](serverless-controlling-access-to-apis.md).

## Sintaksis
<a name="sam-property-api-apiauth-syntax"></a>

Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.

### YAML
<a name="sam-property-api-apiauth-syntax.yaml"></a>

```
  AddApiKeyRequiredToCorsPreflight: Boolean
  [AddDefaultAuthorizerToCorsPreflight](#sam-api-apiauth-adddefaultauthorizertocorspreflight): Boolean
  [ApiKeyRequired](#sam-api-apiauth-apikeyrequired): Boolean
  [Authorizers](#sam-api-apiauth-authorizers): CognitoAuthorizer | LambdaTokenAuthorizer | LambdaRequestAuthorizer | AWS_IAM
  [DefaultAuthorizer](#sam-api-apiauth-defaultauthorizer): String
  [InvokeRole](#sam-api-apiauth-invokerole): String
  [ResourcePolicy](#sam-api-apiauth-resourcepolicy): ResourcePolicyStatement
  [UsagePlan](#sam-api-apiauth-usageplan): ApiUsagePlan
```

**catatan**  
`Authorizers`Properti termasuk`AWS_IAM`, tetapi tidak ada konfigurasi tambahan yang diperlukan untuk`AWS_IAM`. Sebagai contoh, lihat [AWS IAM](#sam-property-api-apiauth--examples--aws_iam).

## Sifat-sifat
<a name="sam-property-api-apiauth-properties"></a>

 `AddApiKeyRequiredToCorsPreflight`   <a name="sam-api-apiauth-addapikeyrequiredtocorspreflight"></a>
Jika `Cors` properti `ApiKeyRequired` dan disetel, maka pengaturan `AddApiKeyRequiredToCorsPreflight` akan menyebabkan kunci API ditambahkan ke `Options` properti.  
*Tipe*: Boolean  
*Wajib*: Tidak  
*Default*: `True`  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `AddDefaultAuthorizerToCorsPreflight`   <a name="sam-api-apiauth-adddefaultauthorizertocorspreflight"></a>
Jika properti `DefaultAuthorizer` dan `Cors` ditetapkan, kemudian pengaturan `AddDefaultAuthorizerToCorsPreflight` akan menyebabkan otorisasi default yang akan ditambahkan ke properti `Options` di bagian OpenAPI.  
*Tipe*: Boolean  
*Wajib*: Tidak  
*Default*: BETUL  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `ApiKeyRequired`   <a name="sam-api-apiauth-apikeyrequired"></a>
Jika diatur ke BETUL, kunci API diperlukan untuk semua peristiwa API. Untuk informasi selengkapnya tentang kunci API lihat [Buat dan Gunakan Rencana Penggunaan dengan Kunci API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) di *Panduan Developer API Gateway*.  
*Tipe*: Boolean  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `Authorizers`   <a name="sam-api-apiauth-authorizers"></a>
Pengotorisasi yang digunakan untuk mengendalikan akses ke API dari API Gateway Anda.  
Untuk informasi selengkapnya, lihat [Kontrol akses API dengan AWS SAM template Anda](serverless-controlling-access-to-apis.md).  
*Jenis*: [CognitoAuthorizer](sam-property-api-cognitoauthorizer.md)\$1 [LambdaTokenAuthorizer](sam-property-api-lambdatokenauthorizer.md)\$1 [LambdaRequestAuthorizer](sam-property-api-lambdarequestauthorizer.md)\$1 AWS\$1IAM  
*Wajib*: Tidak  
*Default*: Tidak ada  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.  
*Catatan tambahan*: SAM menambahkan Authorizers ke OpenApi definisi Api.

 `DefaultAuthorizer`   <a name="sam-api-apiauth-defaultauthorizer"></a>
Tentukan otorisasi default untuk API Gateway dari API, yang akan digunakan untuk otorisasi panggilan API secara default.  
Jika Api EventSource untuk fungsi yang terkait dengan API ini dikonfigurasi untuk menggunakan Izin IAM, maka properti ini harus disetel ke`AWS_IAM`, jika tidak, kesalahan akan terjadi.
*Tipe*: String  
*Wajib*: Tidak  
*Default*: Tidak ada  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `InvokeRole`   <a name="sam-api-apiauth-invokerole"></a>
Mengatur kredensial integrasi untuk semua sumber daya dan metode untuk nilai ini.  
`CALLER_CREDENTIALS` memetakan ke `arn:aws:iam:::<user>/`, yang menggunakan kredensial pemanggil untuk memanggil titik akhir.  
*Nilai yang valid*:`CALLER_CREDENTIALS`,`NONE`, `IAMRoleArn`  
*Tipe*: String  
*Wajib*: Tidak  
*Default*: `CALLER_CREDENTIALS`  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `ResourcePolicy`   <a name="sam-api-apiauth-resourcepolicy"></a>
Konfigurasikan Kebijakan Sumber Daya untuk semua metode dan jalur pada API.  
*Jenis*: [ResourcePolicyStatement](sam-property-api-resourcepolicystatement.md)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.  
*Catatan tambahan*: Pengaturan ini juga dapat ditentukan pada `AWS::Serverless::Function` individu menggunakan [ApiFunctionAuth](sam-property-function-apifunctionauth.md). Ini diperlukan untuk APIs dengan`EndpointConfiguration: PRIVATE`.

 `UsagePlan`   <a name="sam-api-apiauth-usageplan"></a>
Mengonfigurasi rencana penggunaan yang terkait dengan API ini. Untuk informasi selengkapnya tentang rencana penggunaan lihat [Buat dan Gunakan Rencana Penggunaan dengan Kunci API](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html) di *Panduan Developer API Gateway*.  
 AWS SAM Properti ini menghasilkan tiga CloudFormation sumber daya tambahan ketika properti ini disetel: an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplan.html), an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-usageplankey.html), dan an [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-apigateway-apikey.html). Untuk informasi selengkapnya tentang skenario ini, lihat [UsagePlan properti ditentukan](sam-specification-generated-resources-api.md#sam-specification-generated-resources-api-usage-plan). Untuk informasi umum tentang CloudFormation sumber daya yang dihasilkan, lihat[CloudFormation Sumber daya yang dihasilkan untuk AWS SAM](sam-specification-generated-resources.md).  
*Jenis*: [ApiUsagePlan](sam-property-api-apiusageplan.md)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

## Contoh
<a name="sam-property-api-apiauth--examples"></a>

### CognitoAuth
<a name="sam-property-api-apiauth--examples--cognitoauth"></a>

Contoh Cognito Auth

#### YAML
<a name="sam-property-api-apiauth--examples--cognitoauth--yaml"></a>

```
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
<a name="sam-property-api-apiauth--examples--aws_iam"></a>

AWS Contoh IAM

#### YAML
<a name="sam-property-api-apiauth--examples--cognitoauth--yaml"></a>

```
Auth:
  Authorizers: AWS_IAM
```