

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

# Modifikasi header HTTP untuk Application Load Balancer
<a name="header-modification"></a>

Modifikasi header HTTP didukung oleh Application Load Balancers, untuk header permintaan dan respons. Tanpa harus memperbarui kode aplikasi Anda, modifikasi header memungkinkan Anda lebih banyak kontrol atas lalu lintas dan keamanan aplikasi Anda.

Untuk mengaktifkan modifikasi header, lihat[Aktifkan modifikasi header](enable-header-modification.md).

## Ganti nama header mTLS/TLS
<a name="rename-header"></a>

Kemampuan penggantian nama header memungkinkan Anda mengonfigurasi nama header mTLS dan TLS yang dihasilkan dan ditambahkan oleh Application Load Balancer ke permintaan.

Kemampuan untuk memodifikasi header HTTP ini memungkinkan Application Load Balancer Anda untuk dengan mudah mendukung aplikasi yang menggunakan header permintaan dan respons yang diformat secara khusus.


| Header | Deskripsi | 
| --- | --- | 
|  X-Amzn-Mtls-Clientcert-Serial-Number  |  Memastikan bahwa target dapat mengidentifikasi dan memverifikasi sertifikat spesifik yang disajikan oleh klien selama jabat tangan TLS.  | 
|  X-Amzn-Mtls-Clientcert-Issuer  |  Membantu target memvalidasi dan mengotentikasi sertifikat klien dengan mengidentifikasi otoritas sertifikat yang mengeluarkan sertifikat.  | 
|  X-Amzn-Mtls-Clientcert-Subject  |  Memberikan target informasi terperinci tentang entitas yang dikeluarkan sertifikat klien, yang membantu dalam identifikasi, otentikasi, otorisasi, dan pencatatan selama otentikasi mTLS.  | 
|  X-Amzn-Mtls-Clientcert-Validity  |  Memungkinkan target untuk memverifikasi bahwa sertifikat klien yang digunakan berada dalam periode validitas yang ditentukan, memastikan sertifikat tidak kedaluwarsa atau digunakan sebelum waktunya.  | 
|  X-Amzn-Mtls-Clientcert-Leaf  |  Menyediakan sertifikat klien yang digunakan dalam jabat tangan mTLS, memungkinkan server untuk mengotentikasi klien dan memvalidasi rantai sertifikat. Ini memastikan koneksi aman dan resmi.  | 
|  X-Amzn-Mtls-Clientcert  |  Membawa sertifikat klien lengkap. Memungkinkan target untuk memverifikasi keaslian sertifikat, memvalidasi rantai sertifikat, dan mengautentikasi klien selama proses jabat tangan mTLS.  | 
|  X-Amzn-TLS-Version  |  Menunjukkan versi protokol TLS yang digunakan untuk koneksi. Ini memfasilitasi menentukan tingkat keamanan komunikasi, memecahkan masalah koneksi dan memastikan kepatuhan.  | 
|  X-Amzn-TLS-Cipher-Suite  |  Menunjukkan kombinasi algoritma kriptografi yang digunakan untuk mengamankan koneksi di TLS. Ini memungkinkan server untuk menilai keamanan koneksi, membantu pemecahan masalah kompatibilitas, dan memastikan kepatuhan terhadap kebijakan keamanan.  | 

## Tambahkan header respons
<a name="insert-header"></a>

Dengan menggunakan header insert, Anda dapat mengonfigurasi Application Load Balancer untuk menambahkan header terkait keamanan ke respons. Dengan atribut ini, Anda dapat menyisipkan header termasuk HSTS, CORS, dan CSP.

Secara default, header ini kosong. Ketika ini terjadi, Application Load Balancer tidak mengubah header respons ini.

Saat Anda mengaktifkan header respons, Application Load Balancer menambahkan header dengan nilai yang dikonfigurasi ke semua respons. Jika respons dari target menyertakan header respons HTTP, penyeimbang beban memperbarui nilai header menjadi nilai yang dikonfigurasi. Jika tidak, penyeimbang beban menambahkan header respons HTTP ke respons dengan nilai yang dikonfigurasi.


| Header | Deskripsi | 
| --- | --- | 
|  Strict-Transport-Security  |  Menerapkan koneksi HTTPS-only oleh browser untuk durasi tertentu, membantu melindungi terhadap man-in-the-middle serangan, penurunan protokol, dan kesalahan pengguna. memastikan semua komunikasi antara klien dan target dienkripsi.  | 
|  Access-Control-Allow-Origin  |  Mengontrol apakah sumber daya pada target dapat diakses dari asal yang berbeda. Ini memungkinkan interaksi lintas asal yang aman sekaligus mencegah akses yang tidak sah.  | 
|  Access-Control-Allow-Methods  |  Menentukan metode HTTP yang diizinkan saat membuat permintaan lintas asal ke target. Ini memberikan kontrol atas tindakan mana yang dapat dilakukan dari asal yang berbeda.  | 
|  Access-Control-Allow-Headers  |  Menentukan header kustom atau non-sederhana yang dapat disertakan dalam permintaan lintas asal. Header ini memberikan target kontrol atas header mana yang dapat dikirim oleh klien dari asal yang berbeda.  | 
|  Access-Control-Allow-Credentials  |  Menentukan apakah klien harus menyertakan kredensyal seperti cookie, otentikasi HTTP atau sertifikat klien dalam permintaan lintas asal.  | 
|  Access-Control-Expose-Headers  |  Memungkinkan target untuk menentukan header respons tambahan mana yang dapat diakses oleh klien dalam permintaan lintas asal.  | 
|  Access-Control-Max-Age  |  Mendefinisikan berapa lama browser dapat men-cache hasil permintaan preflight, mengurangi kebutuhan untuk pemeriksaan preflight berulang. Ini membantu mengoptimalkan kinerja dengan mengurangi jumlah permintaan OPTIONS yang diperlukan untuk permintaan lintas asal tertentu.  | 
|  Content-Security-Policy  |  Fitur keamanan yang mencegah serangan injeksi kode seperti XSS dengan mengontrol sumber daya seperti skrip, gaya, gambar, dll. Dapat dimuat dan dieksekusi oleh situs web.  | 
|  X-Content-Type-Options  |  Dengan arahan no-sniff, meningkatkan keamanan web dengan mencegah browser menebak jenis sumber daya MIME. Ini memastikan bahwa browser hanya menafsirkan konten sesuai dengan Content-Type yang dideklarasikan  | 
|  X-Frame-Options  |  Mekanisme keamanan header yang membantu mencegah serangan click-jacking dengan mengontrol apakah halaman web dapat disematkan dalam bingkai. Nilai seperti DENY dan SAMEORIGIN dapat memastikan bahwa konten tidak disematkan di situs web berbahaya atau tidak tepercaya.  | 

## Nonaktifkan header
<a name="disable-header"></a>

Menggunakan header nonaktifkan, Anda dapat mengonfigurasi Application Load Balancer Anda untuk menonaktifkan header `server:awselb/2.0` dari tanggapan. Ini mengurangi paparan informasi spesifik server, sambil menambahkan lapisan perlindungan ekstra ke aplikasi Anda.

Nama atributnya adalah`routing.http.response.server.enabled`. Nilai yang tersedia adalah `true` atau`false`. Nilai default-nya adalah `true`.

## Batasan
<a name="header-modification-limits"></a>
+ Nilai header dapat berisi karakter berikut
  + Karakter alfanumerik:`a-z`,, dan `A-Z` `0-9`
  + Karakter khusus: `_ :;.,\/'?!(){}[]@<>=-+*#&`|~^%`
+ Nilai untuk atribut tidak dapat melebihi 1K byte dalam ukuran.
+ Elastic Load Balancing melakukan validasi input dasar untuk memverifikasi nilai header valid. Namun validasi tidak dapat mengkonfirmasi apakah nilai didukung untuk header tertentu.
+ Menyetel nilai kosong untuk atribut apa pun akan menyebabkan Application Load Balancer kembali ke perilaku default.

# Aktifkan modifikasi header HTTP untuk Application Load Balancer
<a name="enable-header-modification"></a>

Modifikasi header dimatikan secara default dan harus diaktifkan pada setiap pendengar. Untuk informasi selengkapnya, lihat [Modifikasi header HTTP](header-modification.md).

------
#### [ Console ]

**Untuk mengaktifkan modifikasi header**

1. Buka konsol Amazon EC2 di. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)

1. Pada panel navigasi, pilih **Load Balancers**.

1. Pilih Application Load Balancer.

1. Pada tab **Listeners and rules**, pilih protokol dan port untuk membuka halaman detail untuk listener Anda.

1. Pada tab **Atribut**, pilih **Edit**.

   Atribut pendengar diatur ke dalam kelompok. Anda akan memilih fitur mana yang akan diaktifkan.

1. [Pendengar HTTPS] Nama header yang dapat **dimodifikasi mTLS/TLS **

   1. Perluas **nama mTLS/TLS header yang dapat dimodifikasi**.

   1. Aktifkan header permintaan untuk memodifikasi dan memberikan nama untuk mereka. Untuk informasi selengkapnya, lihat [Ganti nama header mTLS/TLS](header-modification.md#rename-header).

1. **Tambahkan header respons**

   1. Perluas **Tambahkan header respons**.

   1. Aktifkan header respons untuk menambahkan dan memberikan nilai bagi mereka. Untuk informasi selengkapnya, lihat [Tambahkan header respons](header-modification.md#insert-header).

1. **Header respons server ALB**

   1. Aktifkan atau nonaktifkan **header Server**.

1. Pilih **Simpan perubahan**.

------
#### [ AWS CLI ]

**Untuk mengaktifkan modifikasi header**  
Gunakan perintah [modify-listener-attributes](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-listener-attributes.html). Untuk daftar atribut, lihat[Atribut modifikasi header](#header-modification-attributes).

```
aws elbv2 modify-listener-attributes \
    --listener-arn listener-arn \
    --attributes "Key=attribute-name,Value=attribute-value"
```

------
#### [ CloudFormation ]

**Untuk mengaktifkan modifikasi header**  
Perbarui [AWS::ElasticLoadBalancingV2::Listener](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listener.html)sumber daya untuk menyertakan atribut. Untuk daftar atribut, lihat[Atribut modifikasi header](#header-modification-attributes).

```
Resources:
  myHTTPlistener:
  Type: 'AWS::ElasticLoadBalancingV2::Listener'
  Properties:
    LoadBalancerArn: !Ref myLoadBalancer
    Protocol: HTTP
    Port: 80
    DefaultActions:
      - Type: "forward"
        TargetGroupArn: !Ref myTargetGroup
    ListenerAttributes:
      - Key: "attribute-name"
        Value: "attribute-value"
```

------

## Atribut modifikasi header
<a name="header-modification-attributes"></a>

Berikut ini adalah atribut modifikasi header yang didukung oleh Application Load Balancers.

`routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name`  
Ubah nama header **X-Amzn-Mtls-Clientcert-Serial-Number**.

`routing.http.request.x_amzn_mtls_clientcert_issuer.header_name`  
Ubah nama header **X-Amzn-Mtls-Clientcert-Issuer**.

`routing.http.request.x_amzn_mtls_clientcert_subject.header_name`  
Ubah nama header **X-Amzn-Mtls-Clientcert-Subject**.

`routing.http.request.x_amzn_mtls_clientcert_validity.header_name`  
Ubah nama header **X-Amzn-Mtls-Clientcert-Validity**.

`routing.http.request.x_amzn_mtls_clientcert_leaf.header_name`  
Ubah nama header **X-Amzn-Mtls-Clientcert-Leaf**.

`routing.http.request.x_amzn_mtls_clientcert.header_name`  
Ubah nama header **X-Amzn-Mtls-Clientcert**.

`routing.http.request.x_amzn_tls_version.header_name`  
Ubah nama header **X-Amzn-Tls-Version**.

`routing.http.request.x_amzn_tls_cipher_suite.header_name`  
Ubah nama header **X-Amzn-Tls-Cipher-Suite**.

`routing.http.response.server.enabled`  
Menunjukkan apakah akan mengizinkan atau menghapus header server respons HTTP.

`routing.http.response.strict_transport_security.header_value`  
Tambahkan header **Strict-Transport-Security** untuk menginformasikan browser bahwa situs hanya boleh diakses menggunakan HTTPS, dan bahwa setiap upaya future untuk mengaksesnya menggunakan HTTP harus secara otomatis dikonversi ke HTTPS.

`routing.http.response.access_control_allow_origin.header_value`  
Tambahkan header **Access-Control-Allow-Origin untuk menentukan asal** mana yang diizinkan untuk mengakses server.

`routing.http.response.access_control_allow_methods.header_value`  
Tambahkan header **Access-Control-Allow-Methods untuk menentukan metode** HTTP mana yang diizinkan saat mengakses server dari asal yang berbeda.

`routing.http.response.access_control_allow_headers.header_value`  
Tambahkan header **Access-Control-Allow-Headers** untuk menentukan header mana yang diizinkan selama permintaan lintas asal.

`routing.http.response.access_control_allow_credentials.header_value`  
Tambahkan header **Access-Control-Allow-Credentials untuk menunjukkan apakah browser harus menyertakan kredensyal** seperti cookie atau otentikasi dalam permintaan lintas asal.

`routing.http.response.access_control_expose_headers.header_value`  
Tambahkan header **Access-Control-Expose-Headers** untuk menunjukkan header mana yang dapat diekspos browser ke klien yang meminta.

`routing.http.response.access_control_max_age.header_value`  
Tambahkan header **Access-Control-Max-Age** untuk menentukan berapa lama hasil permintaan preflight dapat di-cache, dalam hitungan detik.

`routing.http.response.content_security_policy.header_value`  
Tambahkan header **Content-Security-Policy** untuk menentukan pembatasan yang diberlakukan oleh browser untuk membantu meminimalkan risiko jenis ancaman keamanan tertentu.

`routing.http.response.x_content_type_options.header_value`  
Tambahkan header **X-Content-Type-Options** untuk menunjukkan apakah tipe MIME yang diiklankan di header **Content-Type** harus diikuti dan tidak diubah.

`routing.http.response.x_frame_options.header_value`  
**Tambahkan header **X-Frame-Options** untuk menunjukkan apakah browser diizinkan untuk merender halaman dalam **bingkai, **iframe****, **embed**, atau objek.**