View a markdown version of this page

AWS CloudHSM praktik terbaik integrasi aplikasi - AWS CloudHSM

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

Ikuti praktik terbaik di bagian ini untuk mengoptimalkan bagaimana aplikasi Anda terintegrasi dengan AWS CloudHSM cluster Anda.

Bootstrap SDK Klien Anda

Sebelum SDK klien Anda dapat terhubung ke cluster Anda, itu harus di-bootstrap. Saat melakukan bootstrap alamat IP ke cluster Anda, sebaiknya gunakan --cluster-id parameter bila memungkinkan. Metode ini mengisi konfigurasi Anda dengan semua alamat IP HSM di cluster Anda tanpa perlu melacak setiap alamat individu. 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.

Otentikasi untuk melakukan operasi

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

Otentikasi dengan CloudHSM CLI: Anda dapat mengotentikasi dengan CloudHSM CLI menggunakan mode perintah tunggal atau mode interaktif. Mode Perintah Tunggal Mode interaktif Gunakan Masuk ke HSM menggunakan CloudHSM CLI perintah untuk mengotentikasi dalam mode interaktif. Untuk mengotentikasi dalam mode perintah tunggal, Anda harus mengatur variabel lingkungan CLOUDHSM_ROLE danCLOUDHSM_PIN. Untuk detail tentang melakukan ini, lihatMode Perintah Tunggal. AWS CloudHSM merekomendasikan penyimpanan kredensional HSM Anda dengan aman saat tidak digunakan oleh aplikasi Anda.

Otentikasi dengan PKCS #11: Di PKCS #11, Anda login menggunakan C_Login API setelah membuka sesi menggunakan C_. OpenSession Anda hanya perlu melakukan satu C_Login per slot (cluster). Setelah Anda berhasil masuk, Anda dapat membuka sesi tambahan menggunakan C_ OpenSession tanpa perlu melakukan operasi login tambahan. Untuk contoh tentang otentikasi ke PKCS #11, lihat. Contoh kode untuk pustaka PKCS #11 untuk AWS CloudHSM SDK Klien 5

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 Login Implisit 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 kredenSIAL ke aplikasi Anda saat menggunakan integrasi yang tidak memungkinkan Anda untuk memiliki kontrol atas kode aplikasi Anda. Untuk lebih lanjut tentang metode login, lihatLangkah 2: Berikan kredensibilitas ke penyedia JCE.

Otentikasi dengan OpenSSL: Dengan OpenSSL Dynamic Engine, Anda memberikan kredenSIAL melalui variabel lingkungan. AWS CloudHSM merekomendasikan penyimpanan kredensional HSM Anda dengan aman saat tidak digunakan oleh aplikasi Anda. Jika memungkinkan, Anda harus mengonfigurasi lingkungan Anda untuk secara sistematis mengambil dan mengatur variabel lingkungan ini tanpa entri manual. Untuk detail tentang otentikasi dengan OpenSSL, lihat. Instal OpenSSL Dynamic Engine untuk AWS CloudHSM SDK Klien 5

Mengautentikasi dengan KSP: Anda dapat mengotentikasi dengan Key Storage Provider (KSP) menggunakan manajer kredensi Windows atau variabel lingkungan, lihat. Instal penyedia penyimpanan kunci (KSP) untuk AWS CloudHSM Client SDK 5

Kelola kunci secara efektif dalam aplikasi Anda

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 membungkus kunci dari HSM. Untuk informasi selengkapnya, lihat halaman atribut kami untuk SDK Klien berikut:

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 #11, Anda menemukan kunci menggunakan API. C_FindObjects

  • Dengan JCE, Anda menemukan kunci menggunakan. KeyStore

Untuk kinerja yang optimal AWS , sarankan Anda menggunakan perintah pencarian kunci (seperti Cari AWS CloudHSM kunci berdasarkan atribut menggunakan KMU danDaftar kunci untuk pengguna dengan CloudHSM CLI) hanya sekali selama aplikasi dimulai 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 menambah overhead kinerja yang signifikan.

Baca atribut objek dalam panggilan sesedikit mungkin

Atribut membaca mengirimkan permintaan ke cluster Anda, dan jumlah permintaan tergantung pada SDK yang Anda gunakan:

  • Dengan pustaka PKCS #11, setiap C_GetAttributeValue panggilan mengirimkan satu permintaan, tidak peduli berapa banyak atribut yang terkandung dalam template. Minta setiap atribut yang Anda butuhkan dalam satu template. Untuk informasi selengkapnya, lihat Ambil atribut dengan pustaka PKCS #11 untuk AWS CloudHSM SDK Klien 5.

  • Dengan JCE, setiap atribut yang Anda minta dikenakan biaya satu permintaan. Minta hanya atribut yang dibutuhkan aplikasi Anda.

Dalam kedua kasus, simpan nilai-nilai dalam aplikasi Anda dan gunakan kembali sampai sesuatu mengubah objek.

Gunakan multi-threading

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

Dengan PKCS #11, Anda harus menginisialisasi pustaka PKCS #11 (panggilan) hanya sekali. C_Initialize Setiap thread harus diberi sesinya sendiri (C_OpenSession). Menggunakan sesi yang sama di beberapa utas tidak disarankan.

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

Tangani kesalahan pelambatan

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 +1 selama acara pemeliharaan.

  • Pemadaman Zona Ketersediaan mengakibatkan berkurangnya jumlah HSM yang tersedia di cluster Anda.

Lihat Pelambatan HSM untuk informasi tentang cara terbaik menangani skenario ini.

Untuk memastikan cluster Anda berukuran cukup dan tidak akan dibatasi, sarankan Anda AWS melakukan uji beban di lingkungan Anda dengan lalu lintas puncak yang diharapkan.

Mengintegrasikan percobaan ulang pada operasi cluster

AWS dapat mengganti HSM Anda untuk alasan operasional atau pemeliharaan. Untuk membuat aplikasi Anda tahan terhadap situasi seperti itu, sarankan AWS Anda menerapkan logika coba ulang sisi klien pada semua operasi yang dialihkan ke cluster Anda. Percobaan ulang berikutnya pada operasi yang gagal karena penggantian diharapkan berhasil.

Menerapkan strategi pemulihan bencana

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 cluster Anda dari akun atau wilayah lain: Anda dapat menggunakan peering VPC untuk mengakses AWS CloudHSM cluster Anda dari akun atau wilayah lain. Untuk informasi tentang cara mengaturnya, lihat Apa itu peering VPC? dalam Panduan Peering VPC. Setelah Anda membuat koneksi peering dan mengkonfigurasi grup keamanan Anda dengan tepat, Anda dapat berkomunikasi dengan alamat IP HSM dengan cara yang sama seperti biasanya.

Sambungkan ke beberapa cluster dari aplikasi yang sama: Penyedia JCE, pustaka PKCS #11, 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 menyeimbangkan 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 terjadi pemadaman regional, alihkan lalu lintas Anda ke cluster lain untuk meminimalkan downtime. Lihat halaman masing-masing untuk detailnya:

Memulihkan cluster dari cadangan: Anda dapat membuat Cluster baru dari cadangan Cluster yang ada. Untuk informasi selengkapnya, lihat Cadangan cluster di AWS CloudHSM.

Menyimpangkan penerapan aplikasi Anda

Ikuti strategi penerapan 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 sekaligus memastikan ada kapasitas yang cukup untuk melayani lalu lintas produksi selama penerapan.