

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

# Enkripsi di Amazon Tanpa OpenSearch Server
<a name="serverless-encryption"></a>

## Enkripsi saat diam
<a name="serverless-encryption-at-rest"></a>

Setiap koleksi Amazon OpenSearch Tanpa Server yang Anda buat dilindungi dengan enkripsi data saat istirahat, fitur keamanan yang membantu mencegah akses tidak sah ke data Anda. Enkripsi saat istirahat menggunakan AWS Key Management Service (AWS KMS) untuk menyimpan dan mengelola kunci enkripsi Anda. Ini menggunakan algoritma Advanced Encryption Standard dengan kunci 256-bit (AES-256) untuk melakukan enkripsi.

**Topics**
+ [Kebijakan enkripsi](#serverless-encryption-policies)
+ [Pertimbangan-pertimbangan](#serverless-encryption-considerations)
+ [Izin diperlukan](#serverless-encryption-permissions)
+ [Kebijakan kunci untuk kunci yang dikelola pelanggan](#serverless-customer-cmk-policy)
+ [Bagaimana OpenSearch Tanpa Server menggunakan hibah di AWS KMS](#serverless-encryption-grants)
+ [Membuat kebijakan enkripsi (konsol)](#serverless-encryption-console)
+ [Membuat kebijakan enkripsi (AWS CLI)](#serverless-encryption-cli)
+ [Melihat kebijakan enkripsi](#serverless-encryption-list)
+ [Memperbarui kebijakan enkripsi](#serverless-encryption-update)
+ [Menghapus kebijakan enkripsi](#serverless-encryption-delete)

### Kebijakan enkripsi
<a name="serverless-encryption-policies"></a>

Dengan kebijakan enkripsi, Anda dapat mengelola banyak koleksi dalam skala besar dengan secara otomatis menetapkan kunci enkripsi ke koleksi yang baru dibuat yang cocok dengan nama atau pola tertentu.

Saat membuat kebijakan enkripsi, Anda dapat menentukan *awalan*, yang merupakan aturan pencocokan berbasis wildcard seperti`MyCollection*`, atau memasukkan satu nama koleksi. Kemudian, saat Anda membuat koleksi yang cocok dengan nama atau pola awalan tersebut, kebijakan dan kunci KMS terkait secara otomatis ditetapkan padanya.

Saat membuat koleksi, Anda dapat menentukan AWS KMS kunci dalam dua cara: melalui kebijakan keamanan atau langsung dalam `CreateCollection` permintaan. Jika Anda memberikan AWS KMS kunci sebagai bagian dari `CreateCollection` permintaan, itu lebih diutamakan daripada kebijakan keamanan yang cocok. Dengan pendekatan ini, Anda memiliki fleksibilitas untuk mengganti pengaturan enkripsi berbasis kebijakan untuk koleksi tertentu bila diperlukan.

![\[Encryption policy creation process with rules and collection matching to KMS key.\]](http://docs.aws.amazon.com/id_id/opensearch-service/latest/developerguide/images/serverless-encryption.png)


Kebijakan enkripsi berisi elemen-elemen berikut:
+ `Rules`— satu atau lebih aturan pencocokan koleksi, masing-masing dengan sub-elemen berikut:
  + `ResourceType`— Saat ini satu-satunya pilihan adalah “koleksi”. Kebijakan enkripsi hanya berlaku untuk sumber daya pengumpulan.
  + `Resource`— Satu atau lebih nama koleksi atau pola yang akan diterapkan kebijakan, dalam format`collection/<collection name|pattern>`.
+ `AWSOwnedKey`— Apakah akan menggunakan Kunci milik AWS.
+ `KmsARN`— Jika Anda menyetel `AWSOwnedKey` ke false, tentukan Nama Sumber Daya Amazon (ARN) dari kunci KMS untuk mengenkripsi koleksi terkait. Jika Anda menyertakan parameter ini, OpenSearch Serverless mengabaikan parameter. `AWSOwnedKey`

Kebijakan sampel berikut akan menetapkan kunci yang dikelola pelanggan untuk koleksi masa depan yang dinamai`autopartsinventory`, serta koleksi yang dimulai dengan istilah “penjualan”:

```
{
   "Rules":[
      {
         "ResourceType":"collection",
         "Resource":[
            "collection/autopartsinventory",
            "collection/sales*"
         ]
      }
   ],
   "AWSOwnedKey":false,
   "KmsARN":"arn:aws:kms:us-east-1:123456789012:key/93fd6da4-a317-4c17-bfe9-382b5d988b36"
}
```

Meskipun kebijakan cocok dengan nama koleksi, Anda dapat memilih untuk mengganti penetapan otomatis ini selama pembuatan koleksi jika pola sumber daya berisi wildcard (\$1). Jika Anda memilih untuk mengganti penetapan kunci otomatis, OpenSearch Tanpa Server akan membuat kebijakan enkripsi untuk Anda bernama **auto-< *collection-name* >** dan melampirkannya ke koleksi. Kebijakan awalnya hanya berlaku untuk satu koleksi, tetapi Anda dapat memodifikasinya untuk menyertakan koleksi tambahan.

Jika Anda mengubah aturan kebijakan agar tidak lagi cocok dengan koleksi, kunci KMS terkait tidak akan dibatalkan dari koleksi tersebut. Koleksi selalu tetap dienkripsi dengan kunci enkripsi awalnya. Jika Anda ingin mengubah kunci enkripsi untuk koleksi, Anda harus membuat ulang koleksi.

Jika aturan dari beberapa kebijakan cocok dengan koleksi, aturan yang lebih spesifik akan digunakan. Misalnya, jika satu kebijakan berisi aturan untuk`collection/log*`, dan yang lain untuk`collection/logSpecial`, kunci enkripsi untuk kebijakan kedua digunakan karena lebih spesifik.

Anda tidak dapat menggunakan nama atau awalan dalam kebijakan jika sudah ada di kebijakan lain. OpenSearch Tanpa server menampilkan kesalahan jika Anda mencoba mengonfigurasi pola sumber daya yang identik dalam kebijakan enkripsi yang berbeda.

### Pertimbangan-pertimbangan
<a name="serverless-encryption-considerations"></a>

Pertimbangkan hal berikut saat Anda mengonfigurasi enkripsi untuk koleksi Anda:
+ Enkripsi saat istirahat *diperlukan* untuk semua koleksi tanpa server.
+ Anda memiliki opsi untuk menggunakan kunci yang dikelola pelanggan atau Kunci milik AWS. Jika Anda memilih kunci yang dikelola pelanggan, kami sarankan Anda mengaktifkan [rotasi kunci otomatis](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html).
+ Anda tidak dapat mengubah kunci enkripsi untuk koleksi setelah koleksi dibuat. Hati-hati AWS KMS memilih mana yang akan digunakan saat pertama kali Anda menyiapkan koleksi.
+ Koleksi hanya dapat mencocokkan satu kebijakan enkripsi.
+ Koleksi dengan kunci KMS unik tidak dapat berbagi OpenSearch Compute Units (OCUs) dengan koleksi lain. Setiap koleksi dengan kunci unik membutuhkan 4 OCUs.
+ Jika Anda memperbarui kunci KMS dalam kebijakan enkripsi, perubahan tersebut tidak memengaruhi koleksi pencocokan yang ada dengan kunci KMS yang telah ditetapkan.
+ OpenSearch Tanpa server tidak secara eksplisit memeriksa izin pengguna pada kunci yang dikelola pelanggan. Jika pengguna memiliki izin untuk mengakses koleksi melalui kebijakan akses data, mereka akan dapat menelan dan menanyakan data yang dienkripsi dengan kunci terkait.

### Izin diperlukan
<a name="serverless-encryption-permissions"></a>

Enkripsi saat istirahat untuk OpenSearch Tanpa Server menggunakan izin AWS Identity and Access Management (IAM) berikut. Anda dapat menentukan kondisi IAM untuk membatasi pengguna ke koleksi tertentu.
+ `aoss:CreateSecurityPolicy`— Buat kebijakan enkripsi.
+ `aoss:ListSecurityPolicies`— Buat daftar semua kebijakan enkripsi dan koleksi yang dilampirkan.
+ `aoss:GetSecurityPolicy`— Lihat detail kebijakan enkripsi tertentu.
+ `aoss:UpdateSecurityPolicy`— Memodifikasi kebijakan enkripsi.
+ `aoss:DeleteSecurityPolicy`— Hapus kebijakan enkripsi.

Contoh kebijakan akses berbasis identitas berikut memberikan izin minimum yang diperlukan bagi pengguna untuk mengelola kebijakan enkripsi dengan pola sumber daya. `collection/application-logs`

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "aoss:CreateSecurityPolicy",
            "aoss:UpdateSecurityPolicy",
            "aoss:DeleteSecurityPolicy",
            "aoss:GetSecurityPolicy"
         ],
         "Resource":"*",
         "Condition":{
            "StringEquals":{
               "aoss:collection":"application-logs"
            }
         }
      },
      {
         "Effect":"Allow",
         "Action":[
            "aoss:ListSecurityPolicies"
         ],
         "Resource":"*"
      }
   ]
}
```

------

### Kebijakan kunci untuk kunci yang dikelola pelanggan
<a name="serverless-customer-cmk-policy"></a>

Jika Anda memilih [kunci yang dikelola pelanggan](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) untuk melindungi koleksi, OpenSearch Tanpa Server mendapat izin untuk menggunakan kunci KMS atas nama kepala sekolah yang membuat pilihan. Prinsipal itu, pengguna atau peran, harus memiliki izin pada kunci KMS yang diperlukan Tanpa OpenSearch Server. Anda dapat memberikan izin ini dalam [kebijakan utama atau kebijakan](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) [IAM](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html).

OpenSearch Pembuatan tanpa server `GenerateDataKey` dan panggilan API `Decrypt` KMS selama operasi pemeliharaan seperti penskalaan otomatis dan pembaruan perangkat lunak. Anda dapat mengamati panggilan ini di luar pola lalu lintas khas Anda. Panggilan ini adalah bagian dari operasi layanan normal dan tidak menunjukkan lalu lintas pengguna aktif. 

OpenSearch Tanpa server melempar `KMSKeyInaccessibleException` ketika tidak dapat mengakses kunci KMS yang mengenkripsi data Anda saat istirahat. Ini terjadi ketika Anda menonaktifkan atau menghapus kunci KMS, atau mencabut hibah yang memungkinkan Tanpa OpenSearch Server untuk menggunakan kunci.

Minimal, OpenSearch Tanpa Server memerlukan izin berikut pada kunci yang dikelola pelanggan:
+ [km: DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
+ [km: CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)

Contoh:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Action": "kms:DescribeKey",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/Dale"
        },
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "kms:ViaService": "aoss.us-east-1.amazonaws.com"
            }
        }
    },
    {
        "Action": "kms:CreateGrant",
        "Effect": "Allow",
        "Principal": {
            "AWS": "arn:aws:iam::123456789012:user/Dale"
        },
        "Resource": "*",
        "Condition": {
            "StringEquals": {
                "kms:ViaService": "aoss.us-east-1.amazonaws.com"
            },
            "ForAllValues:StringEquals": {
                "kms:GrantOperations": [
                    "Decrypt",
                    "GenerateDataKey"
                ]
            },
            "Bool": {
                "kms:GrantIsForAWSResource": "true"
            }
        }
    }
  ]
}
```

------

OpenSearch [Tanpa server membuat hibah dengan izin [kms: GenerateDataKey dan kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html).](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)

Untuk informasi selengkapnya, lihat [Menggunakan kebijakan kunci di AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) dalam *Panduan Developer AWS Key Management Service *.

### Bagaimana OpenSearch Tanpa Server menggunakan hibah di AWS KMS
<a name="serverless-encryption-grants"></a>

OpenSearch Tanpa server memerlukan [hibah](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) untuk menggunakan kunci yang dikelola pelanggan.

Saat Anda membuat kebijakan enkripsi di akun Anda dengan kunci baru, OpenSearch Tanpa Server membuat hibah atas nama Anda dengan mengirimkan [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)permintaan ke. AWS KMS Hibah AWS KMS digunakan untuk memberikan akses OpenSearch Tanpa Server ke kunci KMS di akun pelanggan.

OpenSearch Tanpa server memerlukan hibah untuk menggunakan kunci yang dikelola pelanggan Anda untuk operasi internal berikut:
+ Kirim [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)permintaan AWS KMS untuk memverifikasi bahwa ID kunci terkelola pelanggan simetris yang diberikan valid. 
+ Kirim [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)permintaan ke kunci KMS untuk membuat kunci data yang dapat digunakan untuk mengenkripsi objek.
+ Kirim permintaan [Dekripsi](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) ke AWS KMS untuk mendekripsi kunci data terenkripsi sehingga mereka dapat digunakan untuk mengenkripsi data Anda. 

Anda dapat mencabut akses ke hibah, atau menghapus akses layanan ke kunci yang dikelola pelanggan kapan saja. Jika Anda melakukannya, OpenSearch Tanpa Server tidak akan dapat mengakses data apa pun yang dienkripsi oleh kunci yang dikelola pelanggan, yang memengaruhi semua operasi yang bergantung pada data tersebut, yang menyebabkan `AccessDeniedException` kesalahan dan kegagalan dalam alur kerja asinkron.

OpenSearch Tanpa server menghentikan hibah dalam alur kerja asinkron ketika kunci terkelola pelanggan tertentu tidak terkait dengan kebijakan atau koleksi keamanan apa pun.

### Membuat kebijakan enkripsi (konsol)
<a name="serverless-encryption-console"></a>

Dalam kebijakan enkripsi, Anda menentukan kunci KMS dan serangkaian pola pengumpulan yang akan diterapkan kebijakan tersebut. Setiap koleksi baru yang cocok dengan salah satu pola yang ditentukan dalam kebijakan akan diberikan kunci KMS terkait saat Anda membuat koleksi. Kami menyarankan Anda membuat kebijakan enkripsi *sebelum* Anda mulai membuat koleksi.

**Untuk membuat kebijakan OpenSearch enkripsi Tanpa Server**

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

1. Di panel navigasi kiri, perluas **Tanpa Server** dan pilih Kebijakan **enkripsi**.

1. Pilih **Buat kebijakan enkripsi**.

1. Berikan nama dan deskripsi untuk kebijakan tersebut.

1. Di bawah **Sumber Daya**, masukkan satu atau beberapa pola sumber daya untuk kebijakan enkripsi ini. Setiap koleksi yang baru dibuat di saat ini Akun AWS dan Wilayah yang cocok dengan salah satu pola secara otomatis ditetapkan ke kebijakan ini. Misalnya, jika Anda memasukkan `ApplicationLogs` (tanpa wildcard), dan kemudian membuat koleksi dengan nama itu, kebijakan dan kunci KMS terkait ditetapkan ke koleksi tersebut.

   Anda juga dapat memberikan awalan seperti`Logs*`, yang menetapkan kebijakan ke koleksi baru dengan nama yang diawali. `Logs` Dengan menggunakan wildcard, Anda dapat mengelola pengaturan enkripsi untuk beberapa koleksi dalam skala besar.

1. Di bawah **Enkripsi**, pilih kunci KMS untuk digunakan.

1. Pilih **Buat**.

#### Langkah selanjutnya: Buat koleksi
<a name="serverless-encryption-next"></a>

Setelah mengonfigurasi satu atau beberapa kebijakan enkripsi, Anda dapat mulai membuat koleksi yang sesuai dengan aturan yang ditentukan dalam kebijakan tersebut. Untuk petunjuk, lihat [Membuat koleksi](serverless-create.md).

Pada langkah **Enkripsi** pembuatan koleksi, OpenSearch Tanpa Server memberi tahu Anda bahwa nama yang Anda masukkan cocok dengan pola yang ditentukan dalam kebijakan enkripsi, dan secara otomatis menetapkan kunci KMS yang sesuai ke koleksi. Jika pola sumber daya berisi wildcard (\$1), Anda dapat memilih untuk mengganti kecocokan dan memilih kunci Anda sendiri.

### Membuat kebijakan enkripsi (AWS CLI)
<a name="serverless-encryption-cli"></a>

Untuk membuat kebijakan enkripsi menggunakan operasi API OpenSearch Tanpa Server, Anda menentukan pola sumber daya dan kunci enkripsi dalam format JSON. [CreateSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateSecurityPolicy.html)Permintaan menerima kebijakan sebaris dan file.json.

Kebijakan enkripsi mengambil format berikut. `my-policy.json`File sampel ini cocok dengan koleksi masa depan yang dinamai`autopartsinventory`, serta koleksi apa pun dengan nama yang dimulai dengan`sales`.

```
{
   "Rules":[
      {
         "ResourceType":"collection",
         "Resource":[
            "collection/autopartsinventory",
            "collection/sales*"
         ]
      }
   ],
   "AWSOwnedKey":false,
   "KmsARN":"arn:aws:kms:us-east-1:123456789012:key/93fd6da4-a317-4c17-bfe9-382b5d988b36"
}
```

Untuk menggunakan kunci milik layanan, setel `AWSOwnedKey` ke: `true`

```
{
   "Rules":[
      {
         "ResourceType":"collection",
         "Resource":[
            "collection/autopartsinventory",
            "collection/sales*"
         ]
      }
   ],
   "AWSOwnedKey":true
}
```

Permintaan berikut membuat kebijakan enkripsi:

```
aws opensearchserverless create-security-policy \
    --name sales-inventory \
    --type encryption \
    --policy file://my-policy.json
```

Kemudian, gunakan operasi [CreateCollection](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_CreateCollection.html)API untuk membuat satu atau beberapa koleksi yang cocok dengan salah satu pola sumber daya.

### Melihat kebijakan enkripsi
<a name="serverless-encryption-list"></a>

Sebelum membuat koleksi, Anda mungkin ingin melihat pratinjau kebijakan enkripsi yang ada di akun Anda untuk melihat mana yang memiliki pola sumber daya yang cocok dengan nama koleksi Anda. [ListSecurityPolicies](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListSecurityPolicies.html)Permintaan berikut mencantumkan semua kebijakan enkripsi di akun Anda:

```
aws opensearchserverless list-security-policies --type encryption
```

Permintaan mengembalikan informasi tentang semua kebijakan enkripsi yang dikonfigurasi. Gunakan konten `policy` elemen untuk melihat aturan pola yang didefinisikan dalam kebijakan:

```
{
   "securityPolicyDetails": [ 
      { 
         "createdDate": 1663693217826,
         "description": "Sample encryption policy",
         "lastModifiedDate": 1663693217826,
         "name": "my-policy",
         "policy": "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"]}],\"AWSOwnedKey\":true}",
         "policyVersion": "MTY2MzY5MzIxNzgyNl8x",
         "type": "encryption"
      }
   ]
}
```

Untuk melihat informasi terperinci tentang kebijakan tertentu, termasuk kunci KMS, gunakan [GetSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_GetSecurityPolicy.html)perintah.

### Memperbarui kebijakan enkripsi
<a name="serverless-encryption-update"></a>

Jika Anda memperbarui kunci KMS dalam kebijakan enkripsi, perubahan hanya berlaku untuk koleksi yang baru dibuat yang cocok dengan nama atau pola yang dikonfigurasi. Itu tidak memengaruhi koleksi yang ada yang memiliki kunci KMS yang sudah ditetapkan. 

Hal yang sama berlaku untuk aturan pencocokan kebijakan. Jika Anda menambahkan, memodifikasi, atau menghapus aturan, perubahan hanya berlaku untuk koleksi yang baru dibuat. Koleksi yang ada tidak kehilangan kunci KMS yang ditetapkan jika Anda mengubah aturan kebijakan sehingga tidak lagi cocok dengan nama koleksi.

**Untuk memperbarui kebijakan enkripsi di konsol OpenSearch Tanpa Server, pilih Kebijakan **enkripsi, pilih kebijakan** yang akan diubah, dan pilih Edit.** Buat perubahan dan pilih **Simpan**.

Untuk memperbarui kebijakan enkripsi menggunakan API OpenSearch Tanpa Server, gunakan operasi. [UpdateSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_UpdateSecurityPolicy.html) Permintaan berikut memperbarui kebijakan enkripsi dengan dokumen JSON kebijakan baru:

```
aws opensearchserverless update-security-policy \
    --name sales-inventory \
    --type encryption \
    --policy-version 2 \
    --policy file://my-new-policy.json
```

### Menghapus kebijakan enkripsi
<a name="serverless-encryption-delete"></a>

Saat Anda menghapus kebijakan enkripsi, koleksi apa pun yang saat ini menggunakan kunci KMS yang ditentukan dalam kebijakan tidak akan terpengaruh. **Untuk menghapus kebijakan di konsol OpenSearch Tanpa Server, pilih kebijakan dan pilih Hapus.**

Anda juga dapat menggunakan [DeleteSecurityPolicy](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_DeleteSecurityPolicy.html)operasi:

```
aws opensearchserverless delete-security-policy --name my-policy --type encryption
```

## Enkripsi saat bergerak
<a name="serverless-encryption-in-transit"></a>

Dalam OpenSearch Serverless, semua jalur dalam koleksi dienkripsi dalam perjalanan menggunakan Transport Layer Security 1.2 (TLS) dengan cipher AES-256 standar industri. Akses ke semua APIs dan Dasbor untuk Opensearch juga melalui TLS 1.2. TLS adalah seperangkat protokol kriptografi standar industri yang digunakan untuk mengenkripsi informasi yang dipertukarkan melalui jaringan.