

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

# Kontrol akses ke REST APIs menggunakan kumpulan pengguna Amazon Cognito sebagai otorisasi
<a name="apigateway-integrate-with-cognito"></a>

Sebagai alternatif untuk menggunakan [peran dan kebijakan IAM](permissions.md) atau otorisasi [Lambda](apigateway-use-lambda-authorizer.md) (sebelumnya dikenal sebagai otorisasi khusus), Anda dapat menggunakan kumpulan [pengguna Amazon Cognito untuk mengontrol siapa yang dapat mengakses API Anda di Amazon](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) API Gateway. 

Untuk menggunakan kumpulan pengguna Amazon Cognito dengan API Anda, Anda harus terlebih dahulu membuat otorisasi `COGNITO_USER_POOLS` jenis tersebut dan kemudian mengonfigurasi metode API untuk menggunakan otorisasi tersebut. Setelah API diterapkan, klien harus terlebih dahulu memasukkan pengguna ke kumpulan pengguna, mendapatkan [identitas atau token akses](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html) untuk pengguna, dan kemudian memanggil metode API dengan salah satu token, yang biasanya diatur ke `Authorization` header permintaan. Panggilan API hanya berhasil jika token yang diperlukan disediakan dan token yang disediakan valid, jika tidak, klien tidak berwenang untuk melakukan panggilan karena klien tidak memiliki kredensi yang dapat diotorisasi. 

Token identitas digunakan untuk mengotorisasi panggilan API berdasarkan klaim identitas pengguna yang masuk. Token akses digunakan untuk mengotorisasi panggilan API berdasarkan cakupan kustom sumber daya yang dilindungi akses tertentu. Untuk informasi selengkapnya, lihat [Menggunakan Token dengan Kumpulan Pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html) dan [Server Sumber Daya dan Cakupan Khusus](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-define-resource-servers.html).

Untuk membuat dan mengonfigurasi kumpulan pengguna Amazon Cognito untuk API, Anda melakukan tugas berikut:
+ Gunakan konsol Amazon Cognito, CLI/SDK, atau API untuk membuat kumpulan pengguna—atau gunakan yang dimiliki oleh akun lain. AWS 
+ Gunakan konsol API Gateway, CLI/SDK, atau API untuk membuat otorisasi API Gateway dengan kumpulan pengguna yang dipilih.
+ Gunakan konsol API Gateway, CLI/SDK, atau API untuk mengaktifkan otorisasi pada metode API yang dipilih.

 Untuk memanggil metode API apa pun dengan kumpulan pengguna diaktifkan, klien API Anda melakukan tugas berikut:
+  Gunakan Amazon Cognito CLI/SDK atau API untuk menandatangani pengguna ke kumpulan pengguna yang dipilih, dan mendapatkan token identitas atau token akses. Untuk mempelajari lebih lanjut tentang menggunakan SDKs, lihat [Contoh kode untuk Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/service_code_examples.html) menggunakan. AWS SDKs
+  Gunakan kerangka kerja khusus klien untuk memanggil API Gateway API yang diterapkan dan menyediakan token yang sesuai di header. `Authorization`

Sebagai pengembang API, Anda harus memberikan ID kumpulan pengguna, ID klien, dan mungkin rahasia klien terkait yang didefinisikan sebagai bagian dari kumpulan pengguna. 

**catatan**  
[Untuk mengizinkan pengguna masuk menggunakan kredensi Amazon Cognito dan juga mendapatkan kredensi sementara untuk digunakan dengan izin peran IAM, gunakan Identitas Federasi Amazon Cognito.](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html) Untuk setiap metode HTTP titik akhir sumber daya API, tetapkan jenis otorisasi, kategori`Method Execution`, ke. `AWS_IAM` 

Di bagian ini, kami menjelaskan cara membuat kumpulan pengguna, cara mengintegrasikan API Gateway API dengan kumpulan pengguna, dan cara menjalankan API yang terintegrasi dengan kumpulan pengguna. 

**Topics**
+ [Buat kumpulan pengguna Amazon Cognito untuk REST API](apigateway-create-cognito-user-pool.md)
+ [Integrasikan REST API dengan kumpulan pengguna Amazon Cognito](apigateway-enable-cognito-user-pool.md)
+ [Panggil REST API yang terintegrasi dengan kumpulan pengguna Amazon Cognito](apigateway-invoke-api-integrated-with-cognito-user-pool.md)
+ [Konfigurasikan otorisasi Amazon Cognito lintas akun untuk REST API menggunakan konsol API Gateway](apigateway-cross-account-cognito-authorizer.md)
+ [Buat otorisasi Amazon Cognito untuk REST API menggunakan CloudFormation](apigateway-cognito-authorizer-cfn.md)

# Buat kumpulan pengguna Amazon Cognito untuk REST API
<a name="apigateway-create-cognito-user-pool"></a>

Sebelum mengintegrasikan API Anda dengan kumpulan pengguna, Anda harus membuat kumpulan pengguna di Amazon Cognito. Konfigurasi kumpulan pengguna Anda harus mengikuti semua [kuota sumber daya untuk Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html). Semua variabel Amazon Cognito yang ditentukan pengguna seperti grup, pengguna, dan peran hanya boleh menggunakan karakter alfanumerik. Untuk petunjuk tentang cara membuat kumpulan pengguna, lihat [Tutorial: Membuat kumpulan pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-create-user-pool.html) di Panduan *Pengembang Amazon Cognito*.

Perhatikan ID kumpulan pengguna, ID klien, dan rahasia klien apa pun. Klien harus menyediakannya ke Amazon Cognito agar pengguna dapat mendaftar dengan kumpulan pengguna, masuk ke kumpulan pengguna, dan untuk mendapatkan identitas atau token akses untuk disertakan dalam permintaan memanggil metode API yang dikonfigurasi dengan kumpulan pengguna. Selain itu, Anda harus menentukan nama kumpulan pengguna saat mengonfigurasi kumpulan pengguna sebagai otorisasi di API Gateway, seperti yang dijelaskan selanjutnya.

Jika Anda menggunakan token akses untuk mengotorisasi panggilan metode API, pastikan untuk mengonfigurasi integrasi aplikasi dengan kumpulan pengguna untuk menyiapkan cakupan kustom yang Anda inginkan di server sumber daya tertentu. Untuk informasi selengkapnya tentang penggunaan token dengan kumpulan pengguna Amazon Cognito, lihat [Menggunakan Token dengan Kumpulan Pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html). Untuk informasi selengkapnya tentang server sumber daya, lihat [Mendefinisikan Server Sumber Daya untuk Kumpulan Pengguna Anda](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-define-resource-servers.html).

Perhatikan pengidentifikasi server sumber daya yang dikonfigurasi dan nama cakupan kustom. Anda membutuhkannya untuk membangun nama lengkap cakupan akses untuk **OAuth Scopes**, yang digunakan oleh otorisasi. `COGNITO_USER_POOLS` 

![\[Server dan cakupan sumber daya kumpulan pengguna Amazon Cognito\]](http://docs.aws.amazon.com/id_id/apigateway/latest/developerguide/images/cognito-user-pool-custom-scopes-new-console.png)


# Integrasikan REST API dengan kumpulan pengguna Amazon Cognito
<a name="apigateway-enable-cognito-user-pool"></a>

Setelah membuat kumpulan pengguna Amazon Cognito, di API Gateway, Anda harus membuat `COGNITO_USER_POOLS` otorisasi yang menggunakan kumpulan pengguna. Prosedur berikut menunjukkan cara melakukannya menggunakan konsol API Gateway.

**catatan**  
Anda dapat menggunakan [https://docs.aws.amazon.com/apigateway/latest/api/API_CreateAuthorizer.html](https://docs.aws.amazon.com/apigateway/latest/api/API_CreateAuthorizer.html)tindakan untuk membuat `COGNITO_USER_POOLS` otorisasi yang menggunakan beberapa kumpulan pengguna. Anda dapat menggunakan hingga 1.000 kumpulan pengguna untuk satu `COGNITO_USER_POOLS` otorisasi. Batas ini tidak dapat dinaikkan.

**penting**  
Setelah melakukan salah satu prosedur di bawah ini, Anda harus menerapkan atau menerapkan ulang API Anda untuk menyebarkan perubahan. Untuk informasi selengkapnya tentang penerapan API Anda, lihat[Menerapkan REST APIs di API Gateway](how-to-deploy-api.md).

**Untuk membuat `COGNITO_USER_POOLS` otorisasi menggunakan konsol API Gateway**

1. Buat API baru, atau pilih API yang ada di API Gateway.

1. Di panel navigasi utama, pilih **Authorizers**.

1. Pilih **Buat Authorizer**. 

1. Untuk mengonfigurasi otorisasi baru untuk menggunakan kumpulan pengguna, lakukan hal berikut:

   1.  Untuk **nama Authorizer**, masukkan nama. 

   1. Untuk **jenis Authorizer**, pilih **Cognito**.

   1. Untuk **kumpulan pengguna Cognito**, pilih Wilayah AWS tempat Anda membuat Amazon Cognito dan pilih kumpulan pengguna yang tersedia.

      Anda dapat menggunakan variabel tahap untuk menentukan kumpulan pengguna Anda. Gunakan format berikut untuk kumpulan pengguna Anda:`arn:aws:cognito-idp:us-east-2:111122223333:userpool/${stageVariables.MyUserPool}`.

   1.  Untuk **sumber Token**, masukkan **Authorization** sebagai nama header untuk meneruskan identitas atau token akses yang dikembalikan oleh Amazon Cognito saat pengguna berhasil masuk. 

   1. (Opsional) Masukkan ekspresi reguler di bidang **validasi Token** untuk memvalidasi bidang `aud` (audiens) token identitas sebelum permintaan diotorisasi dengan Amazon Cognito. Perhatikan bahwa saat menggunakan token akses validasi ini menolak permintaan karena token akses tidak berisi bidang. `aud`

   1. Pilih **Buat Authorizer**. 

1. Setelah membuat `COGNITO_USER_POOLS` otorisasi, Anda dapat menguji panggilannya dengan menyediakan token identitas yang disediakan dari kumpulan pengguna. Anda tidak dapat menggunakan token akses untuk menguji pemanggilan otorisasi Anda.

   Anda dapat memperoleh token identitas ini dengan memanggil [Amazon Cognito Identity SDK](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-integrate-apps.html) untuk melakukan login pengguna. Anda juga dapat menggunakan [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html)aksinya. Jika Anda tidak mengonfigurasi **cakupan Otorisasi** apa pun, API Gateway memperlakukan token yang disediakan sebagai token identitas. 

Prosedur sebelumnya membuat `COGNITO_USER_POOLS` otorisasi yang menggunakan kumpulan pengguna Amazon Cognito yang baru dibuat. Bergantung pada cara Anda mengaktifkan otorisasi pada metode API, Anda dapat menggunakan token identitas atau token akses yang disediakan dari kumpulan pengguna terintegrasi.

**Untuk mengkonfigurasi `COGNITO_USER_POOLS` otorisasi pada metode**

1. Pilih **Sumber daya**. Pilih metode baru atau pilih metode yang ada. Jika perlu, buat sumber daya.

1. Pada tab **Permintaan metode**, di bawah **Pengaturan permintaan metode**, pilih **Edit**.

1. Untuk **Authorizer, dari menu tarik-turun, pilih otorisasi** **kumpulan pengguna Amazon Cognito yang baru saja** Anda buat.

1.  Untuk menggunakan token identitas, lakukan hal berikut:

   1. Jaga **Cakupan Otorisasi kosong**.

   1. Jika diperlukan, dalam **permintaan Integrasi**, tambahkan `$context.authorizer.claims.property-name` ekspresi `$context.authorizer.claims['property-name']` atau dalam templat pemetaan tubuh untuk meneruskan properti klaim identitas yang ditentukan dari kumpulan pengguna ke backend. Untuk nama properti sederhana, seperti `sub` atau`custom-sub`, dua notasi identik. Untuk nama properti kompleks, seperti`custom:role`, Anda tidak dapat menggunakan notasi titik. Misalnya, ekspresi pemetaan berikut meneruskan [bidang standar](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims) klaim `sub` dan `email` ke backend:

      ```
      {
      	"context" : {
      		"sub" : "$context.authorizer.claims.sub",
      		"email" : "$context.authorizer.claims.email"
      	}
      }
      ```

      Jika Anda mendeklarasikan bidang klaim kustom saat mengonfigurasi kumpulan pengguna, Anda dapat mengikuti pola yang sama untuk mengakses bidang kustom. Contoh berikut mendapatkan `role` bidang khusus klaim:

      ```
      {
      	"context" : {
      		"role" : "$context.authorizer.claims.role"
          }
      }
      ```

      Jika bidang klaim kustom dideklarasikan sebagai`custom:role`, gunakan contoh berikut untuk mendapatkan properti klaim:

      ```
      {
      	"context" : {
      		"role" : "$context.authorizer.claims['custom:role']"
          }
      }
      ```

1.  Untuk menggunakan token akses, lakukan hal berikut: 

   1. Untuk **Cakupan Otorisasi**, masukkan satu atau beberapa nama lengkap cakupan yang telah dikonfigurasi saat kumpulan pengguna Amazon Cognito dibuat. Misalnya, mengikuti contoh yang diberikan[Buat kumpulan pengguna Amazon Cognito untuk REST API](apigateway-create-cognito-user-pool.md), salah satu cakupannya adalah`https://my-petstore-api.example.com/cats.read`. 

      Saat runtime, pemanggilan metode berhasil jika cakupan apa pun yang ditentukan pada metode dalam langkah ini cocok dengan cakupan yang diklaim dalam token yang masuk. Jika tidak, panggilan gagal dengan `401 Unauthorized` respons.

   1.  Pilih **Simpan**.

1. Ulangi langkah-langkah ini untuk metode lain yang Anda pilih.

Dengan `COGNITO_USER_POOLS` otorisasi, jika opsi **OAuthScopes** tidak ditentukan, API Gateway memperlakukan token yang disediakan sebagai token identitas dan memverifikasi identitas yang diklaim terhadap yang dari kumpulan pengguna. Jika tidak, API Gateway memperlakukan token yang disediakan sebagai token akses dan memverifikasi cakupan akses yang diklaim dalam token terhadap cakupan otorisasi yang dideklarasikan pada metode.

Alih-alih menggunakan konsol API Gateway, Anda juga dapat mengaktifkan kumpulan pengguna Amazon Cognito pada metode dengan menentukan file definisi OpenAPI dan mengimpor definisi API ke API Gateway.

**Untuk mengimpor otorisasi COGNITO\$1USER\$1POOLS dengan file definisi OpenAPI**

1. Buat (atau ekspor) file definisi OpenAPI untuk API Anda.

1. Tentukan definisi JSON `COGNITO_USER_POOLS` authorizer (`MyUserPool`) sebagai bagian dari `securitySchemes` bagian di OpenAPI 3.0 atau `securityDefinitions` bagian di Open API 2.0 sebagai berikut:

------
#### [ OpenAPI 3.0 ]

   ```
     "securitySchemes": {
       "MyUserPool": {
         "type": "apiKey",
         "name": "Authorization",
         "in": "header",
         "x-amazon-apigateway-authtype": "cognito_user_pools",
         "x-amazon-apigateway-authorizer": {
           "type": "cognito_user_pools",
           "providerARNs": [
             "arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}"
           ]
         }
       }
   ```

------
#### [ OpenAPI 2.0 ]

   ```
     "securityDefinitions": {
       "MyUserPool": {
         "type": "apiKey",
         "name": "Authorization",
         "in": "header",
         "x-amazon-apigateway-authtype": "cognito_user_pools",
         "x-amazon-apigateway-authorizer": {
           "type": "cognito_user_pools",
           "providerARNs": [
             "arn:aws:cognito-idp:{region}:{account_id}:userpool/{user_pool_id}"
           ]
         }
       }
   ```

------

1. Untuk menggunakan token identitas untuk otorisasi metode, tambahkan `{ "MyUserPool": [] }` ke `security` definisi metode, seperti yang ditunjukkan dalam metode GET berikut pada sumber daya root.

   ```
     "paths": {
       "/": {
         "get": {
           "consumes": [
             "application/json"
           ],
           "produces": [
             "text/html"
           ],
           "responses": {
             "200": {
               "description": "200 response",
               "headers": {
                 "Content-Type": {
                   "type": "string"
                 }
               }
             }
           },
           "security": [
             {
               "MyUserPool": []
             }
           ],        
           "x-amazon-apigateway-integration": {
             "type": "mock",
             "responses": {
               "default": {
                 "statusCode": "200",
                 "responseParameters": {
                   "method.response.header.Content-Type": "'text/html'"
                 },
               }
             },
             "requestTemplates": {
               "application/json": "{\"statusCode\": 200}"
             },
             "passthroughBehavior": "when_no_match"
           }
         },
         ...
      }
   ```

1.  Untuk menggunakan token akses untuk otorisasi metode, ubah definisi keamanan di atas menjadi`{ "MyUserPool": [resource-server/scope, ...] }`:

   ```
     "paths": {
       "/": {
         "get": {
           "consumes": [
             "application/json"
           ],
           "produces": [
             "text/html"
           ],
           "responses": {
             "200": {
               "description": "200 response",
               "headers": {
                 "Content-Type": {
                   "type": "string"
                 }
               }
             }
           },
           "security": [
             {
               "MyUserPool": ["https://my-petstore-api.example.com/cats.read", "http://my.resource.com/file.read"]
             }
           ],        
           "x-amazon-apigateway-integration": {
             "type": "mock",
             "responses": {
               "default": {
                 "statusCode": "200",
                 "responseParameters": {
                   "method.response.header.Content-Type": "'text/html'"
                 },
               }
             },
             "requestTemplates": {
               "application/json": "{\"statusCode\": 200}"
             },
             "passthroughBehavior": "when_no_match"
           }
         },
         ...
      }
   ```

1. Jika diperlukan, Anda dapat mengatur pengaturan konfigurasi API lainnya dengan menggunakan definisi atau ekstensi OpenAPI yang sesuai. Untuk informasi selengkapnya, lihat [Ekstensi OpenAPI untuk API Gateway](api-gateway-swagger-extensions.md).

# Panggil REST API yang terintegrasi dengan kumpulan pengguna Amazon Cognito
<a name="apigateway-invoke-api-integrated-with-cognito-user-pool"></a>

Untuk memanggil metode dengan otorisasi kumpulan pengguna yang dikonfigurasi, klien harus melakukan hal berikut: 
+ Aktifkan pengguna untuk mendaftar dengan kumpulan pengguna.
+ Aktifkan pengguna untuk masuk ke kumpulan pengguna.
+ Dapatkan [identitas atau token akses](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html) pengguna yang masuk dari kumpulan pengguna.
+ Sertakan token di `Authorization` header (atau header lain yang Anda tentukan saat Anda membuat otorisasi).

Anda dapat menggunakan [AWS Amplify]()untuk melakukan tugas-tugas ini. Lihat [Mengintegrasikan Amazon Cognito Dengan Web dan Aplikasi Seluler](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-integrate-apps.html) untuk informasi selengkapnya.
+ Untuk Android, lihat [Memulai dengan Amplify untuk](https://docs.amplify.aws/android/build-a-backend/auth/) Android.
+ Untuk menggunakan iOS, lihat [Memulai dengan Amplify untuk iOS](https://docs.amplify.aws/swift/build-a-backend/auth/).
+ Untuk menggunakannya JavaScript, lihat [Memulai dengan Amplify for Javascript](https://docs.amplify.aws/javascript/build-a-backend/auth/).

# Konfigurasikan otorisasi Amazon Cognito lintas akun untuk REST API menggunakan konsol API Gateway
<a name="apigateway-cross-account-cognito-authorizer"></a>

Anda sekarang juga dapat menggunakan kumpulan pengguna Amazon Cognito dari AWS akun lain sebagai otorisasi API Anda. Kumpulan pengguna Amazon Cognito dapat menggunakan strategi otentikasi token pembawa seperti atau SALL. OAuth Hal ini memudahkan untuk mengelola dan berbagi otorisasi kumpulan pengguna Amazon Cognito pusat di beberapa API Gateway. APIs

Di bagian ini, kami menunjukkan cara mengonfigurasi kumpulan pengguna Amazon Cognito lintas akun menggunakan konsol Amazon API Gateway.

Petunjuk ini mengasumsikan bahwa Anda sudah memiliki API Gateway API di satu AWS akun dan kumpulan pengguna Amazon Cognito di akun lain.

## Buat otorisasi Amazon Cognito lintas akun untuk REST API
<a name="apigateway-configure-cross-account-cognito-authorizer"></a>

Masuk ke konsol Amazon API Gateway di akun yang memiliki API Anda di dalamnya, lalu lakukan hal berikut:

1. Buat API baru, atau pilih API yang ada di API Gateway.

1. Di panel navigasi utama, pilih **Authorizers**.

1. Pilih **Buat Authorizer**.

1. Untuk mengonfigurasi otorisasi baru untuk menggunakan kumpulan pengguna, lakukan hal berikut:

   1.  Untuk **nama Authorizer**, masukkan nama. 

   1. Untuk **jenis Authorizer**, pilih **Cognito**.

   1. Untuk **kumpulan pengguna Cognito**, masukkan ARN lengkap untuk kumpulan pengguna yang Anda miliki di akun kedua Anda.
**catatan**  
**Di konsol Amazon Cognito, Anda dapat menemukan ARN untuk kumpulan pengguna Anda di bidang **ARN** Kolam pada panel Pengaturan Umum.**

   1.  Untuk **sumber Token**, masukkan **Authorization** sebagai nama header untuk meneruskan identitas atau token akses yang dikembalikan oleh Amazon Cognito saat pengguna berhasil masuk. 

   1. (Opsional) Masukkan ekspresi reguler di bidang **validasi Token** untuk memvalidasi bidang `aud` (audiens) token identitas sebelum permintaan diotorisasi dengan Amazon Cognito. Perhatikan bahwa saat menggunakan token akses validasi ini menolak permintaan karena token akses tidak berisi bidang. `aud`

   1. Pilih **Buat Authorizer**.

# Buat otorisasi Amazon Cognito untuk REST API menggunakan CloudFormation
<a name="apigateway-cognito-authorizer-cfn"></a>

Anda dapat menggunakannya CloudFormation untuk membuat kumpulan pengguna Amazon Cognito dan otorisasi Amazon Cognito. Contoh CloudFormation template melakukan hal berikut: 
+ Buat kumpulan pengguna Amazon Cognito. Klien harus terlebih dahulu menandatangani pengguna ke kumpulan pengguna dan mendapatkan [identitas atau token akses](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html). Jika Anda menggunakan token akses untuk mengotorisasi panggilan metode API, pastikan untuk mengonfigurasi integrasi aplikasi dengan kumpulan pengguna untuk menyiapkan cakupan kustom yang Anda inginkan di server sumber daya tertentu.
+ Membuat API Gateway API dengan `GET` metode.
+ Membuat otorisasi Amazon Cognito yang menggunakan `Authorization` header sebagai sumber token.

```
AWSTemplateFormatVersion: 2010-09-09
Resources:
  UserPool:
    Type: AWS::Cognito::UserPool
    Properties:
      AccountRecoverySetting:
        RecoveryMechanisms:
          - Name: verified_phone_number
            Priority: 1
          - Name: verified_email
            Priority: 2
      AdminCreateUserConfig:
        AllowAdminCreateUserOnly: true
      EmailVerificationMessage: The verification code to your new account is {####}
      EmailVerificationSubject: Verify your new account
      SmsVerificationMessage: The verification code to your new account is {####}
      VerificationMessageTemplate:
        DefaultEmailOption: CONFIRM_WITH_CODE
        EmailMessage: The verification code to your new account is {####}
        EmailSubject: Verify your new account
        SmsMessage: The verification code to your new account is {####}
    UpdateReplacePolicy: Retain
    DeletionPolicy: Retain
  CogAuthorizer:
    Type: AWS::ApiGateway::Authorizer
    Properties:
      Name: CognitoAuthorizer
      RestApiId:
        Ref: Api
      Type: COGNITO_USER_POOLS
      IdentitySource: method.request.header.Authorization
      ProviderARNs:
        - Fn::GetAtt:
            - UserPool
            - Arn
  Api:
    Type: AWS::ApiGateway::RestApi
    Properties:
      Name: MyCogAuthApi
  ApiDeployment:
    Type: AWS::ApiGateway::Deployment
    Properties:
      RestApiId:
        Ref: Api
    DependsOn:
      - CogAuthorizer
      - ApiGET
  ApiDeploymentStageprod:
    Type: AWS::ApiGateway::Stage
    Properties:
      RestApiId:
        Ref: Api
      DeploymentId:
        Ref: ApiDeployment
      StageName: prod
  ApiGET:
    Type: AWS::ApiGateway::Method
    Properties:
      HttpMethod: GET
      ResourceId:
        Fn::GetAtt:
          - Api
          - RootResourceId
      RestApiId:
        Ref: Api
      AuthorizationType: COGNITO_USER_POOLS
      AuthorizerId:
        Ref: CogAuthorizer
      Integration:
        IntegrationHttpMethod: GET
        Type: HTTP_PROXY
        Uri: http://petstore-demo-endpoint.execute-api.com/petstore/pets
Outputs:
  ApiEndpoint:
    Value:
      Fn::Join:
        - ""
        - - https://
          - Ref: Api
          - .execute-api.
          - Ref: AWS::Region
          - "."
          - Ref: AWS::URLSuffix
          - /
          - Ref: ApiDeploymentStageprod
          - /
```