

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

# Mengonfigurasi otentikasi Amazon Cognito untuk Dasbor OpenSearch
<a name="cognito-auth"></a>

Anda dapat mengautentikasi dan melindungi instalasi OpenSearch Dasbor default OpenSearch Layanan Amazon Anda menggunakan Amazon [Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/what-is-amazon-cognito.html). Otentikasi Amazon Cognito bersifat opsional dan hanya tersedia untuk domain yang menggunakan OpenSearch atau Elasticsearch 5.1 atau yang lebih baru. [Jika Anda tidak mengonfigurasi autentikasi Amazon Cognito, Anda masih dapat melindungi Dasbor menggunakan [kebijakan akses berbasis IP](ac.md#ac-types-ip) dan [server proxy](dashboards.md#dashboards-proxy), otentikasi dasar HTTP, atau SALL.](saml.md)

Sebagian besar proses otentikasi terjadi di Amazon Cognito, tetapi bagian ini menawarkan pedoman dan persyaratan untuk mengonfigurasi sumber daya Amazon Cognito agar berfungsi dengan domain Layanan. OpenSearch [Harga standar](https://aws.amazon.com/cognito/pricing/) berlaku untuk semua sumber daya Amazon Cognito.

**Tip**  
Pertama kali Anda mengonfigurasi domain untuk menggunakan otentikasi Amazon Cognito untuk OpenSearch Dasbor, sebaiknya gunakan konsol. Sumber daya Amazon Cognito sangat disesuaikan, dan konsol dapat membantu Anda mengidentifikasi dan memahami fitur yang penting bagi Anda.

**Topics**
+ [Prasyarat](#cognito-auth-prereq)
+ [Mengonfigurasi domain untuk menggunakan autentikasi Amazon Cognito](#cognito-auth-config)
+ [Mengizinkan peran terautentikasi](#cognito-auth-config-ac)
+ [Mengonfigurasi penyedia identitas](#cognito-auth-identity-providers)
+ [(Opsional) Mengonfigurasi akses terperinci](#cognito-auth-granular)
+ [(Opsional) Menyesuaikan halaman masuk](#cognito-auth-customize)
+ [(Opsional) Mengonfigurasi keamanan tingkat lanjut](#cognito-auth-advanced)
+ [Pengujian](#cognito-auth-testing)
+ [Kuota](#cognito-auth-limits)
+ [Masalah konfigurasi umum](#cognito-auth-troubleshooting)
+ [Menonaktifkan otentikasi Amazon Cognito untuk Dasbor OpenSearch](#cognito-auth-disable)
+ [Menghapus domain yang menggunakan autentikasi Amazon Cognito untuk Dasbor OpenSearch](#cognito-auth-delete)

## Prasyarat
<a name="cognito-auth-prereq"></a>

Sebelum Anda dapat mengonfigurasi otentikasi Amazon Cognito untuk OpenSearch Dasbor, Anda harus memenuhi beberapa prasyarat. Konsol OpenSearch Layanan membantu merampingkan pembuatan sumber daya ini, tetapi memahami tujuan setiap sumber daya membantu konfigurasi dan pemecahan masalah. Autentikasi Amazon Cognito untuk Dasbor memerlukan sumber daya berikut:
+ [Kolam pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) Amazon Cognito
+ [Kolam identitas](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html) Amazon Cognito
+ IAM role yang memiliki kebijakan `AmazonOpenSearchServiceCognitoAccess` dilampirkan (`CognitoAccessForAmazonOpenSearch`)

**catatan**  
Kumpulan pengguna dan kumpulan identitas harus sama Wilayah AWS. Anda dapat menggunakan kumpulan pengguna, kumpulan identitas, dan peran IAM yang sama untuk menambahkan autentikasi Amazon Cognito untuk Dasbor ke beberapa domain Layanan. OpenSearch Untuk mempelajari selengkapnya, lihat [Kuota](#cognito-auth-limits).

### Tentang kolam pengguna
<a name="cognito-auth-prereq-up"></a>

Kolam pengguna memiliki dua fitur utama: membuat dan mengelola direktori pengguna, dan memungkinkan pengguna untuk mendaftar dan masuk. Untuk petunjuk cara membuat kumpulan pengguna, lihat [Memulai kumpulan pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-user-pools.html) di Panduan *Pengembang Amazon Cognito*.

Saat Anda membuat kumpulan pengguna untuk digunakan dengan OpenSearch Layanan, pertimbangkan hal berikut:
+ Kumpulan pengguna Amazon Cognito Anda harus memiliki [nama domain](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-domain.html). OpenSearch Layanan menggunakan nama domain ini untuk mengarahkan pengguna ke halaman login untuk mengakses Dasbor. Selain nama domain, kolam pengguna tidak memerlukan konfigurasi non-default.
+ Anda harus menentukan [atribut standar](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#cognito-user-pools-standard-attributes) kolam yang diperlukan—atribut seperti nama, tanggal lahir, alamat email, dan nomor telepon. Anda tidak dapat mengubah atribut ini setelah membuat kolam pengguna, jadi pilih atribut yang penting bagi Anda saat ini.
+ Saat membuat kolam pengguna Anda, pilih apakah pengguna dapat membuat akun mereka sendiri, kekuatan sandi minimum untuk akun, dan apakah akan mengaktifkan autentikasi multi-faktor. Jika Anda berencana untuk menggunakan [penyedia identitas eksternal](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html), pengaturan ini tidak penting. Secara teknis, Anda dapat mengaktifkan kolam pengguna sebagai penyedia identitas *dan* mengaktifkan penyedia identitas eksternal, tetapi kebanyakan orang lebih memilih satu atau yang lain.

Kumpulan pengguna IDs mengambil bentuk`{{region}}_{{ID}}`. Jika Anda berencana untuk menggunakan AWS CLI atau AWS SDK untuk mengkonfigurasi OpenSearch Layanan, catat ID.

### Tentang kolam identitas
<a name="cognito-auth-prereq-ip"></a>

Kolam identitas memungkinkan Anda menetapkan peran hak istimewa sementara dan terbatas kepada pengguna setelah mereka masuk. Untuk petunjuk tentang cara membuat kumpulan identitas, lihat [Identity pool ikhtisar konsol](https://docs.aws.amazon.com/cognito/latest/developerguide/identity-pools.html) di Panduan *Pengembang Amazon Cognito*. Saat Anda membuat kumpulan identitas untuk digunakan dengan OpenSearch Layanan, pertimbangkan hal berikut: 
+ Jika Anda menggunakan konsol Amazon Cognito, Anda harus memilih **Aktifkan akses ke identitas yang tidak terautentikasi** kotak centang untuk membuat kolam identitas. Setelah Anda membuat kumpulan identitas dan mengonfigurasi domain OpenSearch Layanan, Amazon Cognito menonaktifkan setelan ini.
+ Anda tidak perlu menambahkan [Penyedia identitas eksternal](https://docs.aws.amazon.com/cognito/latest/developerguide/external-identity-providers.html) ke kolam identitas. Saat Anda mengonfigurasi OpenSearch Layanan untuk menggunakan autentikasi Amazon Cognito, layanan akan mengonfigurasi kumpulan identitas untuk menggunakan kumpulan pengguna yang baru saja Anda buat.
+ Setelah Anda membuat kolam identitas, Anda harus memilih IAM role yang tidak terautentikasi dan dikonfirmasi. Peran ini menentukan kebijakan akses yang dimiliki pengguna sebelum dan sesudah mereka masuk. Jika Anda menggunakan konsol Amazon Cognito, maka dapat membuat peran ini untuk Anda. Setelah Anda membuat peran yang diautentikasi, membuat catatan dari ARN, yang mengambil bentuk `arn:aws:iam::{{123456789012}}:role/Cognito_{{identitypoolname}}Auth_Role`.

Identity pool IDs mengambil bentuk`{{region}}:{{ID}}-{{ID}}-{{ID}}-{{ID}}-{{ID}}`. Jika Anda berencana untuk menggunakan AWS CLI atau AWS SDK untuk mengkonfigurasi OpenSearch Layanan, catat ID.

### Tentang CognitoAccessForAmazonOpenSearch peran
<a name="cognito-auth-role"></a>

OpenSearch Layanan memerlukan izin untuk mengonfigurasi pengguna Amazon Cognito dan kumpulan identitas dan menggunakannya untuk otentikasi. Anda dapat menggunakan`AmazonOpenSearchServiceCognitoAccess`, yang merupakan kebijakan AWS terkelola, untuk tujuan ini. `AmazonESCognitoAccess`adalah kebijakan warisan yang digantikan oleh `AmazonOpenSearchServiceCognitoAccess` ketika layanan diubah namanya menjadi Amazon OpenSearch Service. Kedua kebijakan memberikan izin Amazon Cognito minimum yang diperlukan untuk mengaktifkan otentikasi Amazon Cognito. Untuk detail kebijakan, lihat [AmazonOpenSearchServiceCognitoAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonOpenSearchServiceCognitoAccess.html)di *Panduan Referensi Kebijakan AWS Terkelola*.

Jika Anda menggunakan konsol untuk membuat atau mengonfigurasi domain OpenSearch Layanan, itu akan membuat peran IAM untuk Anda dan melampirkan `AmazonOpenSearchServiceCognitoAccess` kebijakan (atau `AmazonESCognitoAccess` kebijakan jika itu adalah domain Elasticsearch) ke peran tersebut. Nama default untuk peran ini adalah `CognitoAccessForAmazonOpenSearch`.

Kebijakan izin peran `AmazonOpenSearchServiceCognitoAccess` dan `AmazonESCognitoAccess` keduanya memungkinkan OpenSearch Layanan untuk menyelesaikan tindakan berikut pada semua identitas dan kumpulan pengguna:
+ Tindakan: `cognito-idp:DescribeUserPool`
+ Tindakan: `cognito-idp:CreateUserPoolClient`
+ Tindakan: `cognito-idp:DeleteUserPoolClient`
+ Tindakan: `cognito-idp:UpdateUserPoolClient`
+ Tindakan: `cognito-idp:DescribeUserPoolClient`
+ Tindakan: `cognito-idp:AdminInitiateAuth`
+ Tindakan: `cognito-idp:AdminUserGlobalSignOut`
+ Tindakan: `cognito-idp:ListUserPoolClients`
+ Tindakan: `cognito-identity:DescribeIdentityPool`
+ Tindakan: `cognito-identity:SetIdentityPoolRoles`
+ Tindakan: `cognito-identity:GetIdentityPoolRoles`

Jika Anda menggunakan AWS CLI atau salah satu AWS SDKs, Anda harus membuat peran Anda sendiri, melampirkan kebijakan, dan menentukan ARN untuk peran ini ketika Anda mengonfigurasi domain OpenSearch Layanan Anda. Peran harus memiliki hubungan kepercayaan berikut:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "opensearchservice.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

*Untuk petunjuknya, lihat [Membuat peran untuk mendelegasikan izin ke AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dan [Menambahkan dan menghapus izin identitas IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) di Panduan Pengguna IAM.*

## Mengonfigurasi domain untuk menggunakan autentikasi Amazon Cognito
<a name="cognito-auth-config"></a>

Setelah menyelesaikan prasyarat, Anda dapat mengonfigurasi domain OpenSearch Layanan untuk menggunakan Amazon Cognito untuk Dasbor.

**catatan**  
Amazon Cognito tidak tersedia di semua. Wilayah AWS Untuk daftar Wilayah yang didukung;, lihat [Titik akhir layanan](https://docs.aws.amazon.com/general/latest/gr/cognito_identity.html#cognito_identity_region) untuk Amazon Cognito. Anda tidak perlu menggunakan Wilayah yang sama untuk Amazon Cognito yang Anda gunakan untuk OpenSearch Layanan.

### Mengonfigurasi autentikasi Amazon Cognito (konsol)
<a name="cognito-auth-config-console"></a>

Karena itu menciptakan `CognitoAccessForAmazonOpenSearch` peran untuk Anda, konsol menawarkan pengalaman konfigurasi yang paling sederhana. Selain izin OpenSearch Layanan standar, Anda memerlukan kumpulan izin berikut untuk menggunakan konsol guna membuat domain yang menggunakan autentikasi Amazon Cognito untuk Dasbor. OpenSearch 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "cognito-identity:ListIdentityPools",
        "cognito-idp:ListUserPools",
        "iam:CreateRole",
        "iam:AttachRolePolicy"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::{{123456789012}}:role/service-role/{{CognitoAccessForAmazonOpenSearch}}"
    }
  ]
}
```

------

Untuk petunjuk menambahkan izin ke identitas (pengguna, grup pengguna, atau peran), lihat [Menambahkan izin identitas IAM (](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)konsol).

Jika `CognitoAccessForAmazonOpenSearch` sudah ada, Anda memerlukan lebih sedikit izin:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcs",
        "cognito-identity:ListIdentityPools",
        "cognito-idp:ListUserPools"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::{{123456789012}}:role/service-role/{{CognitoAccessForAmazonOpenSearch}}"
    }
  ]
}
```

------

**Untuk mengonfigurasi otentikasi Amazon Cognito untuk Dasbor (konsol)**

1. Buka konsol OpenSearch Layanan Amazon di [https://console.aws.amazon.com/aos/rumah/](https://console.aws.amazon.com/aos/home/).

1. Di bawah **Domain**, pilih domain yang ingin Anda konfigurasikan.

1. Pilih **Tindakan**, **Edit konfigurasi keamanan**.

1. Pilih **Aktifkan otentikasi Amazon Cognito**.

1. Untuk **Wilayah**, pilih Wilayah AWS yang berisi kumpulan pengguna Amazon Cognito dan kumpulan identitas.

1. Untuk **kumpulan pengguna Cognito, pilih kumpulan** pengguna atau buat satu. Untuk informasi selengkapnya, lihat [Tentang kolam pengguna](#cognito-auth-prereq-up).

1. Untuk **kumpulan identitas Cognito**, pilih kumpulan identitas atau buat. Untuk informasi selengkapnya, lihat [Tentang kolam identitas](#cognito-auth-prereq-ip).
**catatan**  
Tautan **Buat kumpulan pengguna** dan **Buat kumpulan identitas** mengarahkan Anda ke konsol Amazon Cognito dan mengharuskan Anda membuat sumber daya ini secara manual. Prosesnya tidak otomatis. Untuk informasi selengkapnya, lihat [Prasyarat](#cognito-auth-prereq).

1. Untuk **nama peran IAM**, gunakan nilai default `CognitoAccessForAmazonOpenSearch` (disarankan) atau masukkan nama baru. Untuk informasi selengkapnya, lihat [Tentang CognitoAccessForAmazonOpenSearch peran](#cognito-auth-role).

1. Pilih **Simpan perubahan**.

Setelah domain selesai diproses, lihat [Mengizinkan peran terautentikasi](#cognito-auth-config-ac) dan [Mengonfigurasi penyedia identitas](#cognito-auth-identity-providers) untuk langkah-langkah konfigurasi tambahan.

### Mengonfigurasi autentikasi Amazon Cognito (AWS CLI)
<a name="cognito-auth-config-cli"></a>

Gunakan `--cognito-options` parameter untuk mengonfigurasi domain OpenSearch Layanan Anda. Sintaks berikut digunakan oleh perintah `create-domain` dan `update-domain-config`:

```
--cognito-options Enabled=true,UserPoolId="{{user-pool-id}}",IdentityPoolId="{{identity-pool-id}}",RoleArn="{{arn:aws:iam::123456789012:role/CognitoAccessForAmazonOpenSearch}}"
```

**Contoh**

Contoh berikut membuat domain di `us-east-1` Wilayah yang memungkinkan otentikasi Amazon Cognito untuk Dasbor menggunakan `CognitoAccessForAmazonOpenSearch` peran dan menyediakan akses domain ke: `Cognito_Auth_Role`

```
aws opensearch create-domain --domain-name {{my-domain}} --region {{us-east-1}} --access-policies '{ "Version": "2012-10-17",		 	 	  "Statement":[{"Effect":"Allow","Principal":{"AWS": ["arn:aws:iam::{{123456789012}}:role/{{Cognito_Auth_Role}}"]},"Action":"es:ESHttp*","Resource":"arn:aws:es:{{us-east-1:123456789012}}:domain/*" }]}' --engine-version "OpenSearch_1.0" --cluster-config InstanceType=m4.xlarge.search,InstanceCount=1 --ebs-options EBSEnabled=true,VolumeSize=10 --cognito-options Enabled=true,UserPoolId="{{us-east-1_123456789}}",IdentityPoolId="{{us-east-1:12345678-1234-1234-1234-123456789012}}",RoleArn="arn:aws:iam::{{123456789012}}:role/{{CognitoAccessForAmazonOpenSearch}}"
```

Setelah domain selesai diproses, lihat [Mengizinkan peran terautentikasi](#cognito-auth-config-ac) dan [Mengonfigurasi penyedia identitas](#cognito-auth-identity-providers) untuk langkah-langkah konfigurasi tambahan.

### Mengkonfigurasi Otentikasi Amazon Cognito ()AWS SDKs
<a name="cognito-auth-config-sdk"></a>

 AWS SDKs (kecuali Android dan iOS SDKs) mendukung semua operasi yang ditentukan dalam [Referensi API OpenSearch Layanan Amazon](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/Welcome.html), termasuk `CognitoOptions` parameter untuk `CreateDomain` dan `UpdateDomainConfig` operasi. Untuk informasi selengkapnya tentang menginstal dan menggunakan AWS SDKs, lihat [Kit Pengembangan AWS Perangkat Lunak](https://aws.amazon.com/code).

Setelah domain selesai diproses, lihat [Mengizinkan peran terautentikasi](#cognito-auth-config-ac) dan [Mengonfigurasi penyedia identitas](#cognito-auth-identity-providers) untuk langkah-langkah konfigurasi tambahan.

## Mengizinkan peran terautentikasi
<a name="cognito-auth-config-ac"></a>

Secara default, peran IAM terautentikasi yang Anda konfigurasikan dengan mengikuti pedoman di [Tentang kolam identitas](#cognito-auth-prereq-ip) tidak memiliki hak istimewa yang diperlukan untuk mengakses Dasbor. OpenSearch Anda harus memberikan peran dengan izin tambahan.

**catatan**  
Jika Anda mengonfigurasi [kontrol akses berbutir halus](fgac.md) dan menggunakan kebijakan akses terbuka atau berbasis IP, Anda dapat melewati langkah ini.

Anda dapat menyertakan izin ini dalam kebijakan [berbasis identitas](ac.md#ac-types-identity), tetapi kecuali Anda ingin pengguna yang diautentikasi memiliki akses ke semua domain OpenSearch Layanan, kebijakan [berbasis sumber daya yang dilampirkan](ac.md#ac-types-resource) ke satu domain adalah pendekatan yang lebih baik.

Untuk`Principal`, tentukan ARN dari peran terautentikasi Cognito yang Anda konfigurasikan dengan pedoman. [Tentang kolam identitas](#cognito-auth-prereq-ip)

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Principal":{
            "AWS":[
               "arn:aws:iam::{{111122223333}}:role/Cognito_{{identitypoolname}}/Auth_Role"
            ]
         },
         "Action":[
            "es:ESHttp*"
         ],
         "Resource":"arn:aws:es:{{us-east-1}}:{{111122223333}}:domain/{{domain-name}}/*"
      }
   ]
}
```

------

 Untuk petunjuk tentang menambahkan kebijakan berbasis sumber daya ke domain OpenSearch Layanan, lihat. [Mengonfigurasi kebijakan akses](createupdatedomains.md#createdomain-configure-access-policies)

## Mengonfigurasi penyedia identitas
<a name="cognito-auth-identity-providers"></a>

Saat Anda mengonfigurasi domain untuk menggunakan autentikasi Amazon Cognito untuk Dasbor, OpenSearch Layanan menambahkan [klien aplikasi](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html) ke kumpulan pengguna dan menambahkan kumpulan pengguna ke kumpulan identitas sebagai penyedia autentikasi. 

**Awas**  
Jangan mengganti nama atau menghapus klien aplikasi.

Tergantung pada bagaimana Anda mengonfigurasi kolam pengguna, Anda mungkin perlu membuat akun pengguna secara manual, atau pengguna mungkin dapat membuatnya sendiri. Jika pengaturan ini dapat diterima, Anda tidak perlu melakukan tindakan lebih lanjut. Banyak orang, bagaimanapun, lebih memilih untuk menggunakan penyedia identitas eksternal.

Untuk mengaktifkan penyedia identitas SAML 2.0, Anda harus menyediakan dokumen metadata SAML. Untuk mengaktifkan penyedia identitas sosial seperti Login with Amazon, Facebook, dan Google, Anda harus memiliki ID aplikasi dan rahasia aplikasi dari penyedia layanan tersebut. Anda dapat mengaktifkan kombinasi penyedia identitas. 

Cara termudah untuk mengonfigurasi kolam pengguna Anda adalah dengan menggunakan konsol Amazon Cognito. Untuk petunjuknya, lihat [Masuk kumpulan pengguna dengan penyedia identitas pihak ketiga](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html) dan [setelan khusus Aplikasi dengan klien aplikasi](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-app-idp-settings.html) di Panduan Pengembang *Amazon* Cognito.

## (Opsional) Mengonfigurasi akses terperinci
<a name="cognito-auth-granular"></a>

Anda mungkin telah memperhatikan bahwa pengaturan kumpulan identitas default menetapkan setiap pengguna yang log dalam peran IAM (`Cognito_{{identitypool}}Auth_Role`) yang sama, yang berarti bahwa setiap pengguna dapat mengakses sumber daya yang sama AWS . Jika Anda ingin menggunakan [kontrol akses detail](fgac.md) dengan Amazon Cognito—misalnya, jika Anda ingin analis organisasi Anda memiliki akses hanya-baca ke beberapa indeks, tetapi developer memiliki akses tulis ke semua indeks—Anda memiliki dua opsi:
+ Buat grup pengguna dan konfigurasikan penyedia identitas Anda untuk memilih IAM role berdasarkan token autentikasi pengguna (disarankan).
+ Konfigurasikan penyedia identitas Anda untuk memilih IAM role berdasarkan satu atau beberapa aturan.

Untuk panduan yang mencakup kontrol akses detail, lihat [Tutorial: Konfigurasikan domain dengan pengguna master IAM dan otentikasi Amazon Cognito](fgac-iam.md).

**penting**  
Sama seperti peran default, Amazon Cognito harus menjadi bagian dari hubungan kepercayaan setiap peran tambahan ini. Untuk detailnya, lihat [Membuat peran untuk pemetaan peran](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html#creating-roles-for-role-mapping) di Panduan Pengembang *Amazon Cognito*.

### Kelompok pengguna dan token
<a name="cognito-auth-granular-tokens"></a>

Bila Anda membuat grup pengguna, Anda memilih IAM role untuk anggota grup. Untuk informasi tentang membuat grup, lihat [Menambahkan grup ke kumpulan pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html) di Panduan *Pengembang Amazon Cognito*.

Setelah Anda membuat satu grup pengguna atau lebih, Anda dapat mengonfigurasi penyedia autentikasi Anda untuk menetapkan peran pengguna grup mereka daripada peran default kolam identitas. Pilih **Pilih peran dari token**, lalu pilih **Gunakan peran default yang Diautentikasi** atau **DENY** untuk menentukan cara kumpulan identitas menangani pengguna yang bukan bagian dari grup.

### Aturan
<a name="cognito-auth-granular-rules"></a>

Aturan pada dasarnya adalah serangkaian pernyataan `if` bahwa Amazon Cognito mengevaluasi secara berurutan. Misalnya, jika alamat email pengguna berisi `@corporate`, Amazon Cognito menetapkan pengguna tersebut `Role_A`. Jika alamat email pengguna berisi `@subsidiary`, maka menetapkan pengguna tersebut `Role_B`. Jika tidak, maka menetapkan pengguna menjadi peran terautentikasi default.

*Untuk mempelajari lebih lanjut, lihat [Menggunakan pemetaan berbasis aturan untuk menetapkan peran kepada pengguna](https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html#using-rules-to-assign-roles-to-users) di Panduan Pengembang Amazon Cognito.*

## (Opsional) Menyesuaikan halaman masuk
<a name="cognito-auth-customize"></a>

Anda dapat menggunakan konsol Amazon Cognito untuk mengunggah logo khusus dan membuat perubahan CSS ke halaman masuk. Untuk petunjuk dan daftar lengkap properti CSS, lihat [Menyesuaikan pencitraan merek UI (klasik) yang dihosting](https://docs.aws.amazon.com/cognito/latest/developerguide/hosted-ui-classic-branding.html) di Panduan Pengembang *Amazon Cognito*.

## (Opsional) Mengonfigurasi keamanan tingkat lanjut
<a name="cognito-auth-advanced"></a>

Kolam pengguna Amazon Cognito mendukung fitur keamanan canggih seperti autentikasi multi-faktor, pemeriksaan kredensial yang dikompromikan, dan autentikasi adaptif. Untuk mempelajari lebih lanjut, lihat [Menggunakan fitur keamanan kumpulan pengguna Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/managing-security.html) di Panduan Pengembang *Amazon Cognito*.

## Pengujian
<a name="cognito-auth-testing"></a>

Setelah Anda puas dengan konfigurasi Anda, verifikasi bahwa pengalaman pengguna memenuhi harapan Anda.

**Untuk mengakses OpenSearch Dasbor**

1. Arahkan ke `https://{{opensearch-domain}}/_dashboards` di browser web. Untuk masuk ke penyewa tertentu secara langsung, tambahkan `?security_tenant={{tenant-name}}` ke URL.

1. Masuk menggunakan kredensial pilihan Anda.

1. Setelah OpenSearch Dasbor dimuat, konfigurasikan setidaknya satu pola indeks. Dasbor menggunakan pola-pola ini untuk mengidentifikasi indeks mana yang ingin Anda analisis. Masukkan `*`, pilih **Langkah selanjutnya**, lalu pilih **Buat pola indeks**.

1. Untuk mencari atau menjelajahi data Anda, pilih **Temukan**.

Jika ada langkah dari proses ini yang gagal, lihat [Masalah konfigurasi umum](#cognito-auth-troubleshooting) untuk informasi pemecahan masalah.

## Kuota
<a name="cognito-auth-limits"></a>

Amazon Cognito memiliki batas lunak pada banyak sumber dayanya. [Jika Anda ingin mengaktifkan otentikasi Dasbor untuk sejumlah besar domain OpenSearch Layanan, tinjau [Kuota di Amazon Cognito dan minta kenaikan batas](https://docs.aws.amazon.com/cognito/latest/developerguide/limits.html) seperlunya.](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html)

Setiap domain OpenSearch Layanan menambahkan [klien aplikasi](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html) ke kumpulan pengguna, yang menambahkan [penyedia autentikasi](https://docs.aws.amazon.com/cognito/latest/developerguide/external-identity-providers.html) ke kumpulan identitas. Jika Anda mengaktifkan autentikasi OpenSearch Dasbor untuk lebih dari 10 domain, Anda mungkin menemukan batas “penyedia kumpulan pengguna Amazon Cognito maksimum per kumpulan identitas”. **Jika Anda melebihi batas, domain OpenSearch Layanan apa pun yang Anda coba konfigurasikan untuk menggunakan autentikasi Amazon Cognito untuk Dasbor dapat macet dalam status konfigurasi Pemrosesan.**

## Masalah konfigurasi umum
<a name="cognito-auth-troubleshooting"></a>

Tabel berikut mencantumkan masalah konfigurasi umum dan solusinya.


**Konfigurasi Layanan OpenSearch**  

| Isu | Solusi | 
| --- | --- | 
|  `OpenSearch Service can't create the role` (konsol)  | Anda tidak memiliki izin IAM yang benar. Tambahkan izin yang ditentukan di [Mengonfigurasi autentikasi Amazon Cognito (konsol)](#cognito-auth-config-console). | 
|  `User is not authorized to perform: iam:PassRole on resource CognitoAccessForAmazonOpenSearch` (konsol)  | Anda tidak memiliki iam:PassRole izin untuk [CognitoAccessForAmazonOpenSearch](#cognito-auth-role)peran tersebut. Lampirkan kebijakan berikut ke akun Anda:  JSON   

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::{{123456789012:role/service-role/CognitoAccessForAmazonOpenSearch}}"
    }
  ]
}
```    Cara lainnya, Anda dapat melampirkan kebijakan `IAMFullAccess`. | 
|  `User is not authorized to perform: cognito-identity:ListIdentityPools on resource`  |  Anda tidak memiliki izin baca untuk Amazon Cognito. Lampirkan kebijakan `AmazonCognitoReadOnly` untuk akun Anda.  | 
|  `An error occurred (ValidationException) when calling the CreateDomain operation: OpenSearch Service must be allowed to use the passed role`  |  OpenSearch Layanan tidak ditentukan dalam hubungan kepercayaan `CognitoAccessForAmazonOpenSearch` peran. Periksa apakah peran Anda menggunakan hubungan kepercayaan yang ditentukan dalam [Tentang CognitoAccessForAmazonOpenSearch peran](#cognito-auth-role). Cara lainnya, gunakan konsol untuk mengonfigurasi autentikasi Amazon Cognito. Konsol membuat peran untuk Anda.  | 
|  `An error occurred (ValidationException) when calling the CreateDomain operation: User is not authorized to perform: cognito-idp:{{action}} on resource: {{user pool}}`  | Peran yang ditentukan di --cognito-options tidak memiliki izin untuk mengakses Amazon Cognito. Periksa apakah peran tersebut memiliki AmazonOpenSearchServiceCognitoAccess kebijakan AWS terkelola yang dilampirkan. Cara lainnya, gunakan konsol untuk mengonfigurasi autentikasi Amazon Cognito. Konsol membuat peran untuk Anda. | 
| An error occurred (ValidationException) when calling the CreateDomain operation: User pool does not exist |  OpenSearch Layanan tidak dapat menemukan kumpulan pengguna. Konfirmasi bahwa Anda membuat satu dan memiliki ID yang benar. Untuk menemukan ID, Anda dapat menggunakan konsol Amazon Cognito atau perintah berikut: AWS CLI  <pre>aws cognito-idp list-user-pools --max-results 60 --region {{region}}</pre>  | 
|  `An error occurred (ValidationException) when calling the CreateDomain operation: IdentityPool not found`  |  OpenSearch Layanan tidak dapat menemukan kumpulan identitas. Konfirmasi bahwa Anda membuat satu dan memiliki ID yang benar. Untuk menemukan ID, Anda dapat menggunakan konsol Amazon Cognito atau perintah berikut: AWS CLI  <pre>aws cognito-identity list-identity-pools --max-results 60 --region {{region}}</pre>  | 
|  `An error occurred (ValidationException) when calling the CreateDomain operation: Domain needs to be specified for user pool`  | Kolam pengguna tidak memiliki nama domain. Anda dapat mengonfigurasi satu menggunakan konsol Amazon Cognito atau perintah AWS CLI berikut:<pre>aws cognito-idp create-user-pool-domain --domain {{name}} --user-pool-id {{id}}</pre> | 


**Mengakses Dasbor OpenSearch**  

| Isu | Solusi | 
| --- | --- | 
| Halaman masuk tidak menampilkan penyedia identitas pilihan saya. |  Periksa apakah Anda mengaktifkan penyedia identitas untuk klien aplikasi OpenSearch Layanan seperti yang ditentukan dalam[Mengonfigurasi penyedia identitas](#cognito-auth-identity-providers).  | 
|  Halaman masuk tidak terlihat seolah-olah terkait dengan organisasi saya.  |  Lihat [(Opsional) Menyesuaikan halaman masuk](#cognito-auth-customize).  | 
| Kredensial masuk saya tidak bekerja. |  Periksa bahwa Anda telah mengonfigurasi penyedia identitas sebagaimana ditentukan dalam [Mengonfigurasi penyedia identitas](#cognito-auth-identity-providers). Jika Anda menggunakan kumpulan pengguna sebagai penyedia identitas, periksa apakah akun tersebut ada di konsol Amazon Cognito.  | 
|  OpenSearch Dasbor tidak memuat sama sekali atau tidak berfungsi dengan baik.  |  Peran yang diautentikasi Amazon Cognito memerlukan `es:ESHttp*` izin untuk domain (`/*`) untuk mengakses dan menggunakan Dasbor. Periksa bahwa Anda menambahkan kebijakan akses sebagaimana ditentukan dalam [Mengizinkan peran terautentikasi](#cognito-auth-config-ac).  | 
|  Ketika saya keluar dari OpenSearch Dasbor dari satu tab, tab yang tersisa menampilkan pesan yang menyatakan bahwa token penyegaran telah dicabut.  |  Saat Anda keluar dari sesi OpenSearch Dasbor saat menggunakan autentikasi Amazon Cognito OpenSearch , Layanan menjalankan operasi, [AdminUserGlobalSignOut](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUserGlobalSignOut.html)yang membuat Anda keluar *dari* semua OpenSearch sesi Dasbor aktif.   | 
| Invalid identity pool configuration. Check assigned IAM roles for this pool. | Amazon Cognito tidak memiliki izin untuk menganggap IAM role atas nama pengguna terautentikasi. Memodifikasi hubungan kepercayaan untuk peran guna menyertakan:  JSON   

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [{
    "Effect": "Allow",
    "Principal": {
      "Federated": "cognito-identity.amazonaws.com"
    },
    "Action": "sts:AssumeRoleWithWebIdentity",
    "Condition": {
      "StringEquals": {
        "cognito-identity.amazonaws.com:aud": "{{identity-pool-id}}"
      },
      "ForAnyValue:StringLike": {
        "cognito-identity.amazonaws.com:amr": "authenticated"
      }
    }
  }
 ]
}
```     | 
| Token is not from a supported provider of this identity pool. | Kesalahan ini jarang terjadi saat Anda menghapus klien aplikasi dari kolam pengguna. Coba buka Dasbor di sesi browser baru. | 

## Menonaktifkan otentikasi Amazon Cognito untuk Dasbor OpenSearch
<a name="cognito-auth-disable"></a>

Gunakan prosedur berikut untuk menonaktifkan otentikasi Amazon Cognito untuk Dasbor.

**Untuk menonaktifkan otentikasi Amazon Cognito untuk Dasbor (konsol)**

1. Buka [konsol OpenSearch Layanan Amazon](https://console.aws.amazon.com/aos/home/).

1. Di bawah **Domain**, pilih domain yang ingin Anda konfigurasikan.

1. Pilih **Tindakan**, **Edit konfigurasi keamanan**.

1. Hapus pilihan **Aktifkan autentikasi Amazon Cognito**.

1. Pilih **Simpan perubahan**.

**penting**  
Jika Anda tidak lagi membutuhkan kolam pengguna Amazon Cognito dan kolam identitas, hapus kolam tersebut. Jika tidak, Anda terus dikenakan biaya.

## Menghapus domain yang menggunakan autentikasi Amazon Cognito untuk Dasbor OpenSearch
<a name="cognito-auth-delete"></a>

**Untuk mencegah domain yang menggunakan autentikasi Amazon Cognito untuk Dasbor macet dalam status konfigurasi Pemrosesan, OpenSearch hapus *domain* Layanan sebelum menghapus kumpulan pengguna dan identitas Amazon Cognito terkait.**