

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

# AWS CloudHSM praktik terbaik integrasi aplikasi
<a name="bp-application-integration"></a>

Ikuti praktik terbaik di bagian ini untuk mengoptimalkan cara aplikasi Anda terintegrasi dengan AWS CloudHSM klaster Anda.

## Bootstrap SDK Klien Anda
<a name="bp-integration-bootstrapping"></a>

Sebelum SDK klien Anda dapat terhubung ke cluster Anda, itu harus di-bootstrap. Saat mem-bootstrapping alamat IP ke cluster Anda, sebaiknya gunakan `--cluster-id` parameter jika memungkinkan. Metode ini mengisi konfigurasi Anda dengan semua alamat IP HSM di cluster Anda tanpa perlu melacak setiap alamat individual. Melakukan hal ini menambah ketahanan ekstra pada inisialisasi aplikasi Anda jika HSM sedang menjalani pemeliharaan atau selama pemadaman Zona Ketersediaan. Untuk detail selengkapnya, lihat [Bootstrap Klien SDK](cluster-connect.md#connect-how-to).

## Otentikasi untuk melakukan operasi
<a name="w2aab9c13b7"></a>

Di AWS CloudHSM, Anda harus mengautentikasi ke cluster Anda sebelum Anda dapat melakukan sebagian besar operasi seperti operasi kriptografi.

**Otentikasi dengan CloudHSM CLI** [[: Anda dapat mengautentikasi dengan CloudHSM CLI menggunakan mode perintah tunggal atau mode interaktif.](cloudhsm_cli-modes.md#cloudhsm_cli-mode-interactive)](cloudhsm_cli-modes.md#cloudhsm_cli-mode-single-command) Gunakan [Masuk ke HSM menggunakan CloudHSM CLI](cloudhsm_cli-login.md) perintah untuk mengautentikasi dalam mode interaktif. Untuk mengautentikasi dalam mode perintah tunggal, Anda harus mengatur variabel lingkungan `CLOUDHSM_ROLE` dan`CLOUDHSM_PIN`. Untuk detail tentang melakukan ini, lihat[Mode Perintah Tunggal](cloudhsm_cli-modes.md#cloudhsm_cli-mode-single-command). AWS CloudHSM merekomendasikan untuk menyimpan kredensyal HSM Anda dengan aman saat tidak digunakan oleh aplikasi Anda.

**Otentikasi dengan PKCS \$111**: Di PKCS \$111, Anda masuk menggunakan C\$1Login API setelah membuka sesi menggunakan C\$1. OpenSession Anda hanya perlu melakukan satu C\$1Login per slot (cluster). Setelah Anda berhasil masuk, Anda dapat membuka sesi tambahan menggunakan C\$1 OpenSession tanpa perlu melakukan operasi login tambahan. Untuk contoh tentang autentikasi ke PKCS \$111, lihat. [Contoh kode untuk pustaka PKCS \$111 untuk SDK AWS CloudHSM Klien 5](pkcs11-samples.md)

**Otentikasi dengan JCE**: Penyedia AWS CloudHSM JCE mendukung login implisit dan eksplisit. Metode yang bekerja untuk Anda tergantung pada kasus penggunaan Anda. Jika memungkinkan, sebaiknya gunakan Implicit Login karena SDK akan secara otomatis menangani otentikasi jika aplikasi Anda terputus dari cluster Anda dan perlu diautentikasi ulang. Menggunakan login implisit juga memungkinkan Anda untuk memberikan kredensyal untuk aplikasi Anda ketika menggunakan integrasi yang tidak memungkinkan Anda untuk memiliki kontrol atas kode aplikasi Anda. Untuk selengkapnya tentang metode login, lihat[Langkah 2: Berikan kredensil ke penyedia JCE](java-library-install_5.md#java-library-credentials_5).

**Otentikasi dengan OpenSSL**: Dengan OpenSSL Dynamic Engine, Anda memberikan kredensyal melalui variabel lingkungan. AWS CloudHSM merekomendasikan untuk menyimpan kredensyal HSM Anda dengan aman saat tidak digunakan oleh aplikasi Anda. Jika memungkinkan, Anda harus mengonfigurasi lingkungan Anda untuk mengambil dan mengatur variabel lingkungan ini secara sistematis tanpa entri manual. Untuk detail tentang otentikasi dengan OpenSSL, lihat. [Instal OpenSSL Dynamic Engine AWS CloudHSM untuk Client SDK 5](openssl5-install.md)

**Otentikasi dengan KSP**: Anda dapat mengautentikasi dengan Penyedia Penyimpanan Kunci (KSP) menggunakan pengelola kredensyal Windows atau variabel lingkungan, lihat. [Instal penyedia penyimpanan kunci (KSP) untuk AWS CloudHSM Client SDK 5](ksp-library-install.md)

## Mengelola kunci secara efektif dalam aplikasi Anda
<a name="bp-manage-application"></a>

**Gunakan atribut kunci untuk mengontrol apa yang dapat dilakukan** kunci: Saat membuat kunci, gunakan atribut kunci untuk menentukan serangkaian izin yang akan mengizinkan atau menolak jenis operasi tertentu untuk kunci tersebut. Kami menyarankan agar kunci dibuat dengan jumlah atribut paling sedikit yang diperlukan untuk menyelesaikan tugasnya. Misalnya, kunci AES yang digunakan untuk enkripsi juga tidak boleh diizinkan untuk membungkus kunci dari HSM. Untuk informasi selengkapnya, lihat halaman atribut kami untuk Klien berikut SDKs:
+ [Atribut kunci PKCS \$111](pkcs11-attributes.md)
+ [Atribut kunci JCE](java-lib-attributes_5.md)

**Jika memungkinkan, cache objek kunci untuk meminimalkan latensi**: Operasi pencarian kunci akan menanyakan setiap HSM di cluster Anda. Operasi ini mahal dan tidak berskala dengan jumlah HSM di cluster Anda.
+ Dengan PKCS \$111, Anda menemukan kunci menggunakan API. `C_FindObjects`
+ Dengan JCE, Anda menemukan kunci menggunakan. KeyStore

Untuk kinerja yang optimal, AWS merekomendasikan agar Anda menggunakan perintah pencarian kunci (seperti [Cari AWS CloudHSM kunci berdasarkan atribut menggunakan KMU](key_mgmt_util-findKey.md) dan[Daftar kunci untuk pengguna dengan CloudHSM CLI](cloudhsm_cli-key-list.md)) hanya sekali selama aplikasi Anda start-up dan cache objek kunci yang dikembalikan dalam memori aplikasi. Jika Anda memerlukan objek kunci ini nanti, Anda harus mengambil objek dari cache Anda alih-alih menanyakan objek ini untuk setiap operasi yang akan menambahkan overhead kinerja yang signifikan.

## Gunakan multi-threading
<a name="w2aab9c13c11"></a>

AWS CloudHSM mendukung aplikasi multi-threaded, tetapi ada hal-hal tertentu yang perlu diingat dengan aplikasi multi-threaded.

**Dengan PKCS \$111**, Anda harus menginisialisasi pustaka PKCS \$111 (memanggil) hanya sekali. `C_Initialize` Setiap thread harus diberi session sendiri (`C_OpenSession`). Menggunakan sesi yang sama di beberapa utas tidak disarankan.

**Dengan JCE**, AWS CloudHSM penyedia harus diinisialisasi hanya sekali. Jangan berbagi contoh objek SPI di seluruh utas. Misalnya, Cipher, Signature, Digest, Mac, KeyFactory atau KeyGenerator objek hanya boleh digunakan dalam konteks thread mereka sendiri.

## Menangani kesalahan pelambatan
<a name="w2aab9c13c13"></a>

Anda mungkin mengalami kesalahan pelambatan HSM dalam keadaan berikut:
+ Cluster Anda tidak diskalakan dengan benar untuk mengelola lalu lintas puncak.
+ Cluster Anda tidak berukuran dengan redundansi \$11 selama acara pemeliharaan.
+ Pemadaman Zona Ketersediaan mengakibatkan berkurangnya jumlah yang tersedia HSMs di klaster Anda.

Lihat [Pelambatan HSM](troubleshoot-hsm-throttling.md) untuk informasi tentang cara terbaik menangani skenario ini.

Untuk memastikan cluster Anda berukuran cukup dan tidak akan dibatasi, AWS sarankan Anda memuat tes di lingkungan Anda dengan lalu lintas puncak yang Anda harapkan.

## Integrasikan percobaan ulang pada operasi cluster
<a name="w2aab9c13c15"></a>

AWS dapat menggantikan HSM Anda untuk alasan operasional atau pemeliharaan. Agar aplikasi Anda tahan terhadap situasi seperti itu, AWS rekomendasikan agar Anda menerapkan logika coba lagi sisi klien pada semua operasi yang dirutekan ke klaster Anda. Percobaan ulang berikutnya pada operasi yang gagal karena penggantian diharapkan berhasil.

## Menerapkan strategi pemulihan bencana
<a name="w2aab9c13c17"></a>

Menanggapi suatu peristiwa, mungkin perlu mengalihkan lalu lintas Anda dari seluruh cluster atau wilayah. Bagian berikut menjelaskan beberapa strategi untuk melakukan ini.

**Gunakan peering VPC untuk mengakses klaster Anda dari akun atau wilayah lain**: Anda dapat memanfaatkan peering VPC untuk mengakses klaster Anda AWS CloudHSM dari akun atau wilayah lain. Untuk informasi tentang cara mengaturnya, lihat [Apa itu VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) peering? dalam Panduan *Peering VPC*. Setelah Anda membuat koneksi peering dan mengonfigurasi grup keamanan Anda dengan tepat, Anda dapat berkomunikasi dengan alamat IP HSM dengan cara yang sama seperti biasanya.

**Connect ke beberapa cluster dari aplikasi yang sama**: Penyedia JCE, pustaka PKCS \$111, dan CloudHSM CLI di Client SDK 5 mendukung koneksi ke beberapa cluster dari aplikasi yang sama. Misalnya, Anda dapat memiliki dua cluster aktif, masing-masing di wilayah yang berbeda, dan aplikasi Anda dapat terhubung ke keduanya sekaligus dan keseimbangan beban antara keduanya sebagai bagian dari operasi normal. Jika aplikasi Anda tidak menggunakan Client SDK 5 (SDK terbaru), maka Anda tidak dapat terhubung ke beberapa cluster dari aplikasi yang sama. Atau, Anda dapat menjaga cluster lain tetap aktif dan berjalan dan, jika ada pemadaman regional, alihkan lalu lintas Anda ke cluster lain untuk meminimalkan waktu henti. Lihat halaman masing-masing untuk detailnya:
+ [Beberapa konfigurasi slot dengan pustaka PKCS \$111 untuk AWS CloudHSM](pkcs11-library-configs-multi-slot.md)
+ [Menghubungkan ke beberapa AWS CloudHSM cluster dengan penyedia JCE](java-lib-configs-multi.md)
+ [Menghubungkan ke beberapa cluster dengan CloudHSM CLI](cloudhsm_cli-configs-multi-cluster.md)

**Memulihkan klaster dari cadangan**: Anda dapat membuat Cluster baru dari cadangan Cluster yang ada. Untuk informasi selengkapnya, lihat [Cadangan cluster di AWS CloudHSM](manage-backups.md).

## Terhuyung-huyung penerapan aplikasi Anda
<a name="bp-stagger-deployment"></a>

Ikuti strategi penerapan yang terhuyung-huyung seperti penerapan berbasis gelombang progresif, penerapan satu kotak, dan penerapan bergulir untuk penerapan dan restart aplikasi klien Anda. Pendekatan ini meminimalkan dampak potensial dari perubahan sementara juga memastikan ada kapasitas yang cukup untuk melayani lalu lintas produksi selama penyebaran.