

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

# ApiFunctionAuth
<a name="sam-property-function-apifunctionauth"></a>

Mengonfigurasi otorisasi di tingkat peristiwa, untuk API, jalur, dan metode tertentu.

## Sintaksis
<a name="sam-property-function-apifunctionauth-syntax"></a>

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

### YAML
<a name="sam-property-function-apifunctionauth-syntax.yaml"></a>

```
  [ApiKeyRequired](#sam-function-apifunctionauth-apikeyrequired): Boolean
  [AuthorizationScopes](#sam-function-apifunctionauth-authorizationscopes): List
  [Authorizer](#sam-function-apifunctionauth-authorizer): String
  [InvokeRole](#sam-function-apifunctionauth-invokerole): String
  OverrideApiAuth: Boolean
  [ResourcePolicy](#sam-function-apifunctionauth-resourcepolicy): ResourcePolicyStatement
```

## Sifat-sifat
<a name="sam-property-function-apifunctionauth-properties"></a>

 `ApiKeyRequired`   <a name="sam-function-apifunctionauth-apikeyrequired"></a>
Memerlukan kunci API untuk API, jalur, dan metode ini.  
*Tipe*: Boolean  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `AuthorizationScopes`   <a name="sam-function-apifunctionauth-authorizationscopes"></a>
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  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `Authorizer`   <a name="sam-function-apifunctionauth-authorizer"></a>
`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](#sam-property-function-apifunctionauth--examples--override).  
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  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `InvokeRole`   <a name="sam-function-apifunctionauth-invokerole"></a>
Menentukan `InvokeRole` untuk digunakan untuk otorisasi `AWS_IAM`.  
*Tipe*: String  
*Wajib*: Tidak  
*Default*: `CALLER_CREDENTIALS`  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.  
*Catatan tambahan*: `CALLER_CREDENTIALS` memetakan ke `arn:aws:iam:::<user>/`, yang menggunakan kredensial pemanggil untuk memanggil titik akhir.

`OverrideApiAuth`  <a name="sam-function-apifunctionauth-overrideapiauth"></a>
Tentukan `true` untuk mengganti konfigurasi otorisasi global sumber daya Anda`AWS::Serverless::Api`. Properti ini hanya diperlukan jika Anda menentukan otorisasi global dan menggunakan `DefinitionBody` properti `AWS::Serverless::Api` sumber daya untuk mendeskripsikan API Anda.  
Saat Anda menentukan `OverrideApiAuth` sebagai`true`, AWS SAM akan mengganti otorisasi global Anda dengan nilai apa pun yang disediakan untuk`ApiKeyRequired`,`Authorizer`, atau. `ResourcePolicy` Oleh karena itu, setidaknya satu dari properti ini juga harus ditentukan saat menggunakan`OverrideApiAuth`. Sebagai contoh, lihat [Ganti otorisasi global saat DefinitionBody for ditentukan AWS::Serverless::Api](#sam-property-function-apifunctionauth--examples--override2).
*Tipe*: Boolean  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `ResourcePolicy`   <a name="sam-function-apifunctionauth-resourcepolicy"></a>
Mengonfigurasi Kebijakan Sumber Daya untuk jalur ini pada API.  
*Jenis*: [ResourcePolicyStatement](sam-property-function-resourcepolicystatement.md)  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

## Contoh
<a name="sam-property-function-apifunctionauth--examples"></a>

### Function-Auth
<a name="sam-property-function-apifunctionauth--examples--function-auth"></a>

Contoh berikut menentukan otorisasi pada tingkat fungsi.

#### YAML
<a name="sam-property-function-apifunctionauth--examples--function-auth--yaml"></a>

```
Auth:
  ApiKeyRequired: true
  Authorizer: NONE
```

### Ganti otorisasi global untuk REST API Amazon API Gateway
<a name="sam-property-function-apifunctionauth--examples--override"></a>

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 ini 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
<a name="sam-property-function-apifunctionauth--examples--override2"></a>

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
```

# ResourcePolicyStatement
<a name="sam-property-function-resourcepolicystatement"></a>

Mengonfigurasi kebijakan sumber daya untuk semua metode dan jalur API. Untuk informasi selengkapnya tentang kebijakan sumber daya, lihat [Mengendalikan akses ke API dengan kebijakan sumber daya API Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-resource-policies.html) di *Panduan Developer API Gateway*.

## Sintaksis
<a name="sam-property-function-resourcepolicystatement-syntax"></a>

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

### YAML
<a name="sam-property-function-resourcepolicystatement-syntax.yaml"></a>

```
  [AwsAccountBlacklist](#sam-function-resourcepolicystatement-awsaccountblacklist): List
  [AwsAccountWhitelist](#sam-function-resourcepolicystatement-awsaccountwhitelist): List
  [CustomStatements](#sam-function-resourcepolicystatement-customstatements): List
  [IntrinsicVpcBlacklist](#sam-function-resourcepolicystatement-intrinsicvpcblacklist): List
  [IntrinsicVpcWhitelist](#sam-function-resourcepolicystatement-intrinsicvpcwhitelist): List
  [IntrinsicVpceBlacklist](#sam-function-resourcepolicystatement-intrinsicvpceblacklist): List
  [IntrinsicVpceWhitelist](#sam-function-resourcepolicystatement-intrinsicvpcewhitelist): List
  [IpRangeBlacklist](#sam-function-resourcepolicystatement-iprangeblacklist): List
  [IpRangeWhitelist](#sam-function-resourcepolicystatement-iprangewhitelist): List
  [SourceVpcBlacklist](#sam-function-resourcepolicystatement-sourcevpcblacklist): List
  [SourceVpcWhitelist](#sam-function-resourcepolicystatement-sourcevpcwhitelist): List
```

## Sifat-sifat
<a name="sam-property-function-resourcepolicystatement-properties"></a>

 `AwsAccountBlacklist`   <a name="sam-function-resourcepolicystatement-awsaccountblacklist"></a>
 AWS Akun yang akan diblokir.  
*Jenis*: Daftar String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `AwsAccountWhitelist`   <a name="sam-function-resourcepolicystatement-awsaccountwhitelist"></a>
 AWS Akun untuk memungkinkan. Untuk contoh penggunaan properti ini, lihat bagian Contoh di bagian bawah halaman ini.  
*Jenis*: Daftar String  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `CustomStatements`   <a name="sam-function-resourcepolicystatement-customstatements"></a>
Daftar pernyataan kebijakan sumber daya kustom untuk diterapkan ke API ini. Untuk contoh penggunaan properti ini, lihat bagian Contoh di bagian bawah halaman ini.  
*Tipe*: Daftar  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `IntrinsicVpcBlacklist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcblacklist"></a>
Daftar virtual private cloud (VPCs) yang akan diblokir, di mana setiap VPC ditentukan sebagai referensi seperti [referensi dinamis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) atau fungsi `Ref` [intrinsik](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html). Untuk contoh penggunaan properti ini, lihat bagian Contoh di bagian bawah halaman ini.  
*Tipe*: Daftar  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `IntrinsicVpcWhitelist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcwhitelist"></a>
Daftar VPCs to allow, di mana setiap VPC ditentukan sebagai referensi seperti [referensi dinamis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) atau fungsi `Ref` [intrinsik](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html).  
*Tipe*: Daftar  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `IntrinsicVpceBlacklist`   <a name="sam-function-resourcepolicystatement-intrinsicvpceblacklist"></a>
Daftar VPC endpoint yang akan diblokir, dengan setiap VPC endpoint ditetapkan sebagai referensi seperti [referensi dinamis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) atau [fungsi intrinsik](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) `Ref`.  
*Tipe*: Daftar  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `IntrinsicVpceWhitelist`   <a name="sam-function-resourcepolicystatement-intrinsicvpcewhitelist"></a>
Daftar VPC endpoint yang akan diizinkan, dengan setiap VPC endpoint ditetapkan sebagai referensi seperti [referensi dinamis](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html) atau [fungsi intrinsik](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) `Ref`. Untuk contoh penggunaan properti ini, lihat bagian Contoh di bagian bawah halaman ini.  
*Tipe*: Daftar  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `IpRangeBlacklist`   <a name="sam-function-resourcepolicystatement-iprangeblacklist"></a>
Alamat IP atau jangkauan alamat yang akan diblokir. Untuk contoh penggunaan properti ini, lihat bagian Contoh di bagian bawah halaman ini.  
*Tipe*: Daftar  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `IpRangeWhitelist`   <a name="sam-function-resourcepolicystatement-iprangewhitelist"></a>
Alamat IP atau jangkauan alamat yang akan diizinkan.  
*Tipe*: Daftar  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `SourceVpcBlacklist`   <a name="sam-function-resourcepolicystatement-sourcevpcblacklist"></a>
Sumber VPC atau VPC endpoint yang akan diblokir. Nama VPC sumber harus dimulai dengan `"vpc-"` dan nama VPC endpoint sumber harus dimulai dengan `"vpce-"`. Untuk contoh penggunaan properti ini, lihat bagian Contoh di bagian bawah halaman ini.  
*Tipe*: Daftar  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

 `SourceVpcWhitelist`   <a name="sam-function-resourcepolicystatement-sourcevpcwhitelist"></a>
VPC sumber atau VPC endpoint yang akan diizinkan. Nama VPC sumber harus dimulai dengan `"vpc-"` dan nama VPC endpoint sumber harus dimulai dengan `"vpce-"`.  
*Tipe*: Daftar  
*Wajib*: Tidak  
*CloudFormation kompatibilitas*: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.

## Contoh
<a name="sam-property-function-resourcepolicystatement--examples"></a>

### Contoh Kebijakan Sumber Daya
<a name="sam-property-function-resourcepolicystatement--examples--resource-policy-example"></a>

Contoh berikut memblokir dua alamat IP dan VPC sumber, dan memungkinkan akun AWS .

#### YAML
<a name="sam-property-function-resourcepolicystatement--examples--resource-policy-example--yaml"></a>

```
Auth:
  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"
      - "1.2.3.4"
    SourceVpcBlacklist:
      - "vpce-1a2b3c4d"
    AwsAccountWhitelist:
      - "111122223333"
    IntrinsicVpcBlacklist:
      - "{{resolve:ssm:SomeVPCReference:1}}" 
      - !Ref MyVPC
    IntrinsicVpceWhitelist:
      - "{{resolve:ssm:SomeVPCEReference:1}}" 
      - !Ref MyVPCE
```