

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

# Enkripsi saat istirahat untuk Fungsi Web
<a name="web-functions-encryption"></a>

AWS Lambda mengenkripsi data untuk Fungsi Web Lambda Anda saat istirahat di sisi server. Halaman ini menjelaskan opsi enkripsi yang tersedia untuk Anda dan cara mengonfigurasi kunci yang dikelola pelanggan.

## Opsi untuk enkripsi saat istirahat
<a name="web-functions-encryption-options"></a>

Enkripsi saat istirahat selalu aktif. Lambda mengenkripsi artefak kode Fungsi Web dan variabel lingkungan di sisi server, dan Anda tidak dapat mematikan enkripsi ini. Secara default, Lambda menggunakan file. Kunci milik AWS Anda dapat mengonfigurasi kunci yang dikelola pelanggan sebagai gantinya.

Anda memiliki dua opsi untuk AWS KMS kunci yang melindungi data Anda:

**Kunci milik AWS (default)**  
Secara default, Lambda mengenkripsi data Anda dengan file. [Kunci milik AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) AWS memiliki dan mengelola kunci ini. Anda tidak dapat melihat, mengelola, atau mengaudit penggunaannya. Jika perilaku default ini sesuai dengan kebutuhan Anda, tidak diperlukan pengaturan tambahan.

**Kunci yang dikelola pelanggan**  
Anda dapat secara opsional mengonfigurasi kunci yang dikelola AWS KMS pelanggan Anda sendiri. Gunakan kunci yang dikelola pelanggan saat Anda perlu mengontrol rotasi kunci, menggunakan kunci audit CloudTrail, mengelola akses kunci melalui kebijakan utama, atau memenuhi persyaratan kepatuhan organisasi. Dengan kunci yang dikelola pelanggan, hanya prinsipal yang Anda otorisasi yang dapat mengakses kode terenkripsi dan variabel lingkungan. Kunci yang dikelola pelanggan dikenakan AWS KMS biaya. Untuk informasi selengkapnya, lihat [harga AWS Key Management Service](https://aws.amazon.com/kms/pricing/).

## Mengenkripsi data saat istirahat menggunakan kunci yang dikelola pelanggan
<a name="web-functions-encryption-cmk"></a>

Bagian berikut menjelaskan bagaimana Fungsi Web menggunakan kunci yang dikelola pelanggan, cara mengonfigurasi kunci dan izinnya, dan cara mengurangi akses ke sana.

### Bagaimana Fungsi Web menggunakan kunci yang dikelola pelanggan
<a name="web-functions-encryption-how-it-works"></a>

Saat Anda menentukan kunci terkelola pelanggan, Lambda menggunakan enkripsi [amplop](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping). Ini berarti Lambda mengenkripsi data revisi dengan kunci data, dan kunci KMS Anda mengenkripsi kunci data tersebut. Lambda mendapatkan kunci data dari AWS KMS dan mendekripsi dengan kunci KMS Anda ketika perlu membaca data. Hanya prinsipal dengan akses ke kunci KMS yang dapat mengakses kode revisi dan variabel lingkungan.

Lambda mengenkripsi sumber daya Fungsi Web berikut dengan kunci terkelola pelanggan Anda:


| Sumber daya | Apa yang dienkripsi | 
| --- | --- | 
| Revisi | Artefak kode yang dibuat dari paket penerapan Amazon S3 Anda, dan variabel lingkungan revisi. | 

Lambda tidak menggunakan AWS KMS hibah untuk Fungsi Web. Akses diotorisasi melalui kebijakan kunci dan izin IAM kepala pemanggil.

Lambda memanggil AWS KMS sambil membuat dan meluncurkan sumber daya revisi dan dapat menyimpan materi yang didekripsi di lingkungan eksekusi aktif. Mencabut akses kunci bukanlah mekanisme penahanan lalu lintas langsung karena lingkungan yang ada dapat terus menggunakan materi yang di-cache untuk periode yang tidak ditentukan.

Setelah perubahan kebijakan kunci, uji perilaku yang diharapkan dan pantau revisi dan kesehatan titik akhir. Untuk penahanan darurat, hentikan perutean lalu lintas ke revisi yang terpengaruh atau nonaktifkan titik akhir daripada hanya mengandalkan pencabutan kunci.

Lambda menetapkan konteks enkripsi berikut pada semua AWS KMS operasi untuk Fungsi Web:
+ `aws:lambda:WebFunctionRevisionArn`— Nama Sumber Daya Amazon (ARN) dari revisi Fungsi Web.

Anda dapat menggunakan konteks enkripsi ini dalam kebijakan utama untuk cakupan akses ke Fungsi Web tertentu atau revisi. Untuk informasi selengkapnya, lihat [Mencakup akses ke kunci KMS Anda](#web-functions-encryption-scope-down).

### Mengonfigurasi kunci terkelola pelanggan
<a name="web-functions-encryption-key-requirements"></a>

 AWS KMS Kunci harus berupa kunci enkripsi simetris (spesifikasi kunci`SYMMETRIC_DEFAULT`, penggunaan `ENCRYPT_DECRYPT` kunci). Anda tidak dapat menggunakan tombol asimetris.

Fungsi Web mendukung tombol Multi-wilayah. Jenis kunci yang Anda butuhkan tergantung pada konfigurasi titik akhir Anda:
+ **HomeRegion endpoint** — Anda dapat menggunakan kunci Single-region atau kunci Multi-region.
+ **MultiRegion atau PerRegion titik akhir** - Anda harus menggunakan kunci Multi-wilayah dengan replika di setiap titik akhir Wilayah AWS yang disajikan. Jika Wilayah tidak memiliki replika kunci, replikasi ke Wilayah tersebut gagal.

Untuk informasi tentang membuat kunci Multi-wilayah, lihat [Membuat kunci utama Multi-wilayah](https://docs.aws.amazon.com/kms/latest/developerguide/create-primary-keys.html) di Panduan *AWS Key Management Service Pengembang*.

Karena AWS KMS tidak menyalin atau menyinkronkan kebijakan kunci antara kunci Multi-wilayah terkait, Anda harus mengonfigurasi setiap kebijakan kunci secara terpisah. Konfigurasikan kebijakan kunci pada kunci utama dan pada setiap kunci replika. Minimal, kebijakan setiap kunci replika harus mengizinkan kepala layanan Lambda untuk menelepon. `kms:Decrypt` Izin ini memungkinkan Lambda untuk mendekripsi kunci data di Wilayah tersebut. Untuk informasi selengkapnya, lihat [Mengotorisasi penggunaan kunci Multi-wilayah](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-auth.html) di Panduan *AWS Key Management Service Pengembang*.

**catatan**  
Saat Anda membuat kunci replika Multi-wilayah, kunci tersebut dapat memakan waktu dari beberapa detik hingga beberapa menit untuk tersedia di semua Wilayah. Konfirmasikan bahwa kunci replika tersedia di setiap Wilayah target sebelum Anda membuat revisi atau titik akhir.

### Mengonfigurasi izin untuk menggunakan kunci terkelola pelanggan
<a name="web-functions-encryption-permissions"></a>

Untuk membuat revisi dengan kunci yang dikelola pelanggan, Anda memerlukan izin berikut pada AWS KMS kunci:
+ `kms:DescribeKey`— Diperlukan saat Anda membuat Fungsi Web atau revisi dengan kunci.
+ `kms:GenerateDataKey`— Lambda memanggil operasi ini untuk menghasilkan kunci data yang mengenkripsi artefak kode revisi dan variabel lingkungan.
+ `kms:Decrypt`— Lambda memanggil operasi ini untuk memvalidasi bahwa kunci dapat digunakan saat Anda membuat revisi. Prinsipal yang membaca revisi dengan `GetWebFunctionRevision` juga membutuhkan kunci untuk melihat `kms:Decrypt` variabel lingkungannya.

Permintaan pembuatan gagal jika kunci hilang, dinonaktifkan, bukan kunci enkripsi simetris, atau tidak dapat diakses dengan izin yang diperlukan.

**catatan**  
Anda tidak perlu `kms:Encrypt` izin. Lambda menggunakan enkripsi amplop dengan`GenerateDataKey`, yang mengembalikan teks biasa dan salinan kunci data terenkripsi tanpa memerlukan panggilan enkripsi terpisah.

Kebijakan AWS KMS kunci juga harus mengizinkan Lambda service principal (`lambda.amazonaws.com`) untuk menelepon. `kms:Decrypt` Lambda menggunakan izin ini untuk mendekripsi kunci data saat meluncurkan lingkungan eksekusi untuk revisi. Prinsipal layanan tidak perlu`kms:DescribeKey`. Prinsipal yang membuat Fungsi Web atau revisi membutuhkan izin itu.

#### Contoh kebijakan kunci
<a name="web-functions-encryption-key-policy"></a>

Kebijakan kunci berikut berisi tiga pernyataan yang dibutuhkan Web Functions, masing-masing dicakup dengan kondisi yang dijelaskan dalam. [Mencakup akses ke kunci KMS Anda](#web-functions-encryption-scope-down) Pernyataan pertama memberi kepala layanan Lambda izin yang dibutuhkan saat meluncurkan lingkungan eksekusi. Yang kedua dan ketiga memberikan prinsipal yang membuat revisi izin yang dibutuhkan pada waktu pembuatan.

`kms:DescribeKey`ada dalam pernyataan terpisah karena ini adalah operasi metadata yang tidak membawa konteks enkripsi. Kondisi konteks enkripsi tidak akan pernah cocok dengan `DescribeKey` permintaan, sehingga kondisi tersebut hanya berlaku untuk pernyataan yang memberikan `kms:GenerateDataKey` dan`kms:Decrypt`.

Contoh ini hanya menunjukkan pernyataan yang dibutuhkan Lambda untuk Fungsi Web. Tambahkan pernyataan ini ke kebijakan kunci yang ada daripada menggantinya, dan simpan pernyataan yang memberikan akses administrator Anda untuk mengelola kunci.

**Example Kebijakan kunci untuk enkripsi Fungsi Web**  

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Allow Lambda to decrypt the data key for Web Function revisions",
            "Effect": "Allow",
            "Principal": { "Service": "lambda.amazonaws.com" },
            "Action": "kms:Decrypt",
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws:lambda:WebFunctionRevisionArn": "arn:aws:lambda:{{us-east-1}}:{{111122223333}}:web-function/{{my-function}}/revision/*",
                    "aws:SourceArn": "arn:aws:lambda:{{us-east-1}}:{{111122223333}}:web-function/{{my-function}}/revision/*"
                }
            }
        },
        {
            "Sid": "Allow the revision creator to generate and validate data keys",
            "Effect": "Allow",
            "Principal": { "AWS": "arn:aws:iam::{{111122223333}}:role/{{MyWebFunctionDeployRole}}" },
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:EncryptionContext:aws:lambda:WebFunctionRevisionArn": "arn:aws:lambda:{{us-east-1}}:{{111122223333}}:web-function/{{my-function}}/revision/*"
                },
                "StringEquals": {
                    "kms:ViaService": "lambda.{{us-east-1}}.amazonaws.com"
                }
            }
        },
        {
            "Sid": "Allow the revision creator to describe the key",
            "Effect": "Allow",
            "Principal": { "AWS": "arn:aws:iam::{{111122223333}}:role/{{MyWebFunctionDeployRole}}" },
            "Action": "kms:DescribeKey",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "lambda.{{us-east-1}}.amazonaws.com"
                }
            }
        }
    ]
}
```

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

### Membuat revisi Fungsi Web dengan kunci yang dikelola pelanggan
<a name="web-functions-encryption-specifying-key"></a>

Untuk mengenkripsi revisi dengan kunci yang dikelola pelanggan, tentukan ARN kunci dalam `kmsKeyArn` parameter konfigurasi revisi. Anda dapat mengatur parameter ini saat Anda memanggil [CreateWebFunction](https://docs.aws.amazon.com/lambda/latest/lambda-web/API_CreateWebFunction.html)atau [CreateWebFunctionRevision](https://docs.aws.amazon.com/lambda/latest/lambda-web/API_CreateWebFunctionRevision.html). Jika Anda menghilangkan`kmsKeyArn`, Lambda mengenkripsi revisi dengan. Kunci milik AWS

**Untuk membuat Fungsi Web dengan kunci yang dikelola pelanggan (AWS CLI)**
+ Jalankan perintah berikut untuk membuat Fungsi Web dengan kunci yang dikelola pelanggan.

  ```
  aws lambda-web create-web-function \
      --function-name {{my-web-app}} \
      --revision-config '{
        "kmsKeyArn": "arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{key-id}}",
        "buildConfig": {
          "codeConfig": {
            "s3Object": { "bucket": "{{amzn-s3-demo-bucket}}", "key": "{{my-app.zip}}" }
          },
          "runtimeConfig": { "runtime": "nodejs24.x" }
        },
        "serviceConfig": {
          "executionRoleArn": "arn:aws:iam::{{111122223333}}:role/{{my-web-function-role}}"
        }
      }' \
      --endpoint-config '{
        "endpointName": "{{my-endpoint}}",
        "endpointType": "HomeRegion",
        "authType": "ApplicationManaged"
      }'
  ```

### Mengubah konfigurasi enkripsi Fungsi Web yang ada
<a name="web-functions-encryption-changing-key"></a>

`kmsKeyArn`Parameter ditetapkan untuk masa revisi. Karena revisi tidak dapat diubah, Anda tidak dapat mengubah kunci yang melindungi revisi yang ada. Untuk mengubah konfigurasi enkripsi, buat revisi baru yang menentukan kunci baru, lalu rute lalu lintas ke revisi tersebut.

Fungsi Web mendukung transisi kunci berikut:
+ **Kunci milik AWS to customer managed key** — Buat revisi baru yang menentukan`kmsKeyArn`.
+ **Satu pelanggan mengelola kunci ke kunci terkelola pelanggan yang berbeda** — Buat revisi baru yang menentukan ARN kunci baru.
+ **Kunci yang dikelola pelanggan untuk Kunci milik AWS** — Buat revisi baru tanpa`kmsKeyArn`. Lambda kemudian melindungi revisi itu dengan Kunci milik AWS, yang merupakan default.

Lambda tidak mengenkripsi ulang revisi yang ada saat Anda membuat revisi baru dengan kunci yang berbeda. Setiap revisi tetap dienkripsi dengan kunci yang Anda tentukan saat Anda membuatnya. Ini berarti bahwa selama revisi sebelumnya masih dapat menerima lalu lintas, kunci aslinya harus tetap diaktifkan dan dapat diakses oleh kepala layanan Lambda. Sebelum Anda menonaktifkan atau menghapus kunci, konfirmasikan bahwa tidak ada revisi yang dienkripsi dengan kunci tersebut yang masih direferensikan oleh bobot revisi titik akhir.

**Untuk membuat revisi baru dengan kunci terkelola pelanggan yang berbeda (AWS CLI)**

1. Jalankan perintah berikut untuk membuat revisi yang menggunakan kunci yang berbeda.

   ```
   aws lambda-web create-web-function-revision \
       --function-name {{my-web-app}} \
       --kms-key-arn arn:aws:kms:{{us-east-1}}:{{111122223333}}:key/{{new-key-id}} \
       --build-config '{
         "codeConfig": { "s3Object": { "bucket": "{{my-bucket}}", "key": "{{my-app-v2.zip}}" } },
         "runtimeConfig": { "runtime": "nodejs24.x" }
       }' \
       --service-config '{
         "executionRoleArn": "arn:aws:iam::{{111122223333}}:role/{{my-web-function-role}}"
       }'
   ```

1. Perbarui bobot revisi titik akhir untuk merutekan lalu lintas ke revisi baru. Untuk informasi selengkapnya, lihat [Pola deployment](web-functions-deployment.md).

### Mencakup akses ke kunci KMS Anda
<a name="web-functions-encryption-scope-down"></a>

Kebijakan kunci dalam [Contoh kebijakan kunci](#web-functions-encryption-key-policy) membatasi akses dengan kunci kondisi berikut. Masing-masing membatasi bagaimana kunci dapat digunakan, sehingga akses ke kunci tidak lebih luas dari kebutuhan Fungsi Web.

#### Konteks enkripsi
<a name="web-functions-encryption-scope-down-context"></a>

Lambda menetapkan konteks enkripsi `aws:lambda:WebFunctionRevisionArn` pada setiap AWS KMS permintaan revisi. Gunakan `StringLike` kondisi `kms:EncryptionContext:aws:lambda:WebFunctionRevisionArn` untuk membatasi kunci revisi Fungsi Web tertentu. Terapkan kondisi ini pada pernyataan pembuat dan pernyataan utama layanan Lambda.

Jangan terapkan kondisi ini pada pernyataan yang memberikan. `kms:DescribeKey` Operasi itu tidak membawa konteks enkripsi, sehingga kondisinya akan menolaknya.

Contoh berikut menunjukkan pernyataan pembuat dengan kondisi konteks enkripsi.

```
{
    "Sid": "Allow the revision creator to generate and validate data keys",
    "Effect": "Allow",
    "Principal": { "AWS": "arn:aws:iam::{{111122223333}}:role/{{MyWebFunctionDeployRole}}" },
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
    ],
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "kms:EncryptionContext:aws:lambda:WebFunctionRevisionArn": "arn:aws:lambda:{{us-east-1}}:{{111122223333}}:web-function/{{my-function}}/revision/*"
        }
    }
}
```

#### kms: kondisi ViaService
<a name="web-functions-encryption-scope-down-viaservice"></a>

`kms:ViaService`Kondisi membatasi kunci sehingga hanya permintaan yang dibuat Lambda atas nama Anda yang dapat menggunakannya. Nilainya adalah Region-specific:`lambda.{{us-east-1}}.amazonaws.com`.

Dengan kondisi ini, AWS KMS menolak panggilan langsung yang dilakukan dengan kredensil yang sama (misalnya, menjalankan `aws kms generate-data-key` sendiri), tetapi membuat Fungsi Web berhasil karena Lambda membuat panggilan untuk Anda. AWS KMS 

AWS KMS tidak membagikan kebijakan utama antara kunci Multi-wilayah terkait. Setiap kunci replika memiliki kebijakannya sendiri. Bila Anda menggunakan `kms:ViaService` kondisi dengan kunci Multi-region, gunakan nama layanan Regional yang cocok dengan Region masing-masing kunci (misalnya, `lambda.us-east-1.amazonaws.com` dalam kebijakan kunci us-east-1 dan `lambda.us-west-2.amazonaws.com` dalam kebijakan kunci replika us-west-2). Anda juga dapat mencantumkan beberapa nilai Regional dalam satu kondisi karena `StringEquals` menerima array nilai.

Contoh berikut menunjukkan pernyataan pembuat dengan `kms:ViaService` kondisi dan kondisi konteks enkripsi.

```
{
    "Sid": "Allow the revision creator to generate and validate data keys",
    "Effect": "Allow",
    "Principal": { "AWS": "arn:aws:iam::{{111122223333}}:role/{{MyWebFunctionDeployRole}}" },
    "Action": [
        "kms:GenerateDataKey",
        "kms:Decrypt"
    ],
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "kms:EncryptionContext:aws:lambda:WebFunctionRevisionArn": "arn:aws:lambda:{{us-east-1}}:{{111122223333}}:web-function/{{my-function}}/revision/*"
        },
        "StringEquals": {
            "kms:ViaService": "lambda.{{us-east-1}}.amazonaws.com"
        }
    }
}
```

#### Perlindungan wakil yang bingung
<a name="web-functions-encryption-scope-down-confused-deputy"></a>

Masalah wakil yang membingungkan terjadi ketika entitas tanpa izin untuk melakukan tindakan memaksa entitas yang lebih istimewa untuk melakukannya. Karena prinsipal layanan Lambda dapat menggunakan kunci yang dikelola pelanggan Anda, batasi akses ke revisi Fungsi Web yang Anda miliki. Untuk informasi selengkapnya, lihat [Masalah confused deputy](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) di *Panduan Pengguna IAM*.

Ketika Lambda memanggil AWS KMS dengan kredensi layanannya sendiri untuk meluncurkan lingkungan eksekusi, ia mengirimkan ARN revisi sebagai ARN sumber dan ID Anda sebagai akun sumber. Akun AWS Gunakan kunci SourceArn kondisi [aws:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) pada pernyataan utama layanan Lambda untuk membatasi kunci revisi Fungsi Web tertentu.

```
{
    "Sid": "Allow Lambda to decrypt the data key for Web Function revisions",
    "Effect": "Allow",
    "Principal": { "Service": "lambda.amazonaws.com" },
    "Action": "kms:Decrypt",
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "aws:SourceArn": "arn:aws:lambda:{{us-east-1}}:{{111122223333}}:web-function/{{my-function}}/revision/*"
        }
    }
}
```

Untuk membatasi kunci ke akun Anda alih-alih ke Fungsi Web tertentu, gunakan kunci SourceAccount kondisi [aws:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) dengan Akun AWS ID Anda.

Terapkan ketentuan ini pada pernyataan utama layanan Lambda. `kms:ViaService`Kondisi yang dijelaskan dalam [kms: kondisi ViaService](#web-functions-encryption-scope-down-viaservice) membatasi layanan mana yang dapat menggunakan kunci, tetapi tidak memberikan perlindungan wakil yang membingungkan.

### Perilaku kesalahan
<a name="web-functions-encryption-errors"></a>

Lambda memvalidasi AWS KMS kunci saat Anda membuat revisi. Kesalahan berikut dapat terjadi pada waktu pembuatan:
+ **Kesalahan validasi** — Kunci ARN tidak valid, kunci tidak ada, kunci dinonaktifkan, atau kuncinya bukan kunci enkripsi simetris.
+ **Kesalahan akses ditolak** — Prinsipal panggilan atau kepala layanan Lambda tidak memiliki AWS KMS izin yang diperlukan pada kunci.

**Jangan menonaktifkan atau mencabut akses ke kunci revisi aktif**  
Jika Anda menonaktifkan AWS KMS kunci atau mencabut akses kepala layanan Lambda setelah revisi`Active`, Lambda tidak dapat lagi mendekripsi kunci data. Ini mencegah Lambda meluncurkan lingkungan eksekusi baru untuk revisi itu, yang merusak pemanggilan. Juga jangan hapus kunci replika di Wilayah tempat revisi masih digunakan. Ini memiliki efek yang sama (Lambda tidak dapat meluncurkan lingkungan eksekusi baru di Wilayah itu). Untuk memulihkan layanan, buat revisi baru dengan kunci yang dapat diakses, atau aktifkan kembali kunci asli dan pulihkan kebijakan kunci.

### Enkripsi dengan MultiRegion dan titik PerRegion akhir
<a name="web-functions-encryption-multi-region"></a>

Untuk Fungsi Web dengan MultiRegion atau PerRegion titik akhir, Lambda memeriksa ketersediaan kunci di setiap Wilayah selama replikasi. Jika replika kunci Multi-wilayah hilang atau tidak dapat diakses di Wilayah target, replikasi hanya gagal untuk Wilayah tersebut. Daerah lain terus beroperasi secara normal.

Anda dapat melihat setiap status Wilayah dan memperbarui status dengan menelepon`GetWebFunctionEndpoint`. Setiap entri Wilayah `regionalEndpoints` berisi `state` dan `stateReason` (status penyebaran Wilayah) `updateStatus` dan dan `updateStatusReason` (hasil pembaruan terbaru). Perilaku berbeda tergantung pada apakah titik akhir sedang dibuat atau diperbarui:
+ **Selama pembuatan titik akhir** — Entri Wilayah `regionalEndpoints` menunjukkan a `state` `Failed` dengan a `stateReason` yang menjelaskan masalah utama. Titik akhir keseluruhan `state` juga ditampilkan`Failed`, dan `stateReason` mengarahkan Anda ke entri Regional.
+ **Selama pembaruan titik akhir** - Wilayah `updateStatus` menunjukkan `Failed` dengan `updateStatusReason` yang menjelaskan masalah utama. Titik akhir keseluruhan `updateStatus` juga ditampilkan`Failed`, dan `updateStatusReason` mengarahkan Anda ke entri Regional.

Untuk mengatasi Wilayah yang gagal, buat replika kunci di Wilayah tersebut atau pulihkan akses ke replika yang ada, lalu perbarui titik akhir untuk mencoba lagi replikasi.

## Memantau interaksi Fungsi Web dengan AWS KMS
<a name="web-functions-encryption-monitoring"></a>

Anda dapat menggunakan CloudTrail untuk melacak AWS KMS permintaan yang dibuat Lambda atas nama Anda saat Anda menggunakan kunci yang dikelola pelanggan dengan Fungsi Web. Untuk informasi tentang menemukan AWS KMS peristiwa di CloudTrail log Anda, lihat [Mencari CloudTrail log untuk panggilan AWS KMS API](https://docs.aws.amazon.com/kms/latest/developerguide/logging-using-cloudtrail.html#searching-kms-ct) di *Panduan AWS Key Management Service Pengembang*.

Tabel berikut mencantumkan AWS KMS peristiwa yang dihasilkan Web Functions dan nilai yang dapat Anda audit di setiap peristiwa.


| eventName | Ketika itu terjadi | Nilai untuk diaudit | 
| --- | --- | --- | 
| DescribeKey | Saat Anda membuat Fungsi Web atau revisi dengan kunci yang dikelola pelanggan. | userIdentityadalah prinsip IAM yang menciptakan revisi. Acara ini tidak memiliki konteks enkripsi, karena DescribeKey merupakan operasi metadata. | 
| GenerateDataKey | Saat Anda membuat Fungsi Web atau revisi. Lambda menghasilkan kunci data yang mengenkripsi artefak kode revisi dan variabel lingkungan. | userIdentityadalah prinsip IAM yang menciptakan revisi. encryptionContextberisiaws:lambda:WebFunctionRevisionArn. | 
| Decrypt | Saat Anda membuat Fungsi Web atau revisi, Lambda memvalidasi akses kunci. Lambda juga memanggil operasi ini ketika menyebarkan revisi ke Region replika, ketika meluncurkan lingkungan eksekusi baru, dan ketika pemanggil membaca variabel lingkungan revisi dengan. GetWebFunctionRevision | Untuk panggilan waktu pembuatan, userIdentity adalah prinsip IAM yang membuat revisi. Lambda juga melakukan Decrypt panggilan dry-run lambda.amazonaws.com untuk mengonfirmasi bahwa prinsipal layanan dapat menggunakan kunci tersebut. Untuk panggilan runtime, userIdentity adalah Lambda service principal lambda.amazonaws.com (). UntukGetWebFunctionRevision, Lambda memanggil Decrypt dengan kredensi penelepon. encryptionContextberisiaws:lambda:WebFunctionRevisionArn. | 

`Decrypt`Peristiwa `GenerateDataKey` dan termasuk konteks enkripsi `aws:lambda:WebFunctionRevisionArn` dengan ARN revisi. Gunakan nilai ini untuk mengidentifikasi AWS KMS permintaan untuk revisi Fungsi Web tertentu.