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 cara aplikasi Anda terintegrasi dengan AWS CloudHSM klaster Anda.

Bootstrap Klien Anda SDK

Sebelum klien Anda SDK 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 HSM IP di cluster Anda tanpa perlu melacak setiap alamat individual. Melakukan hal ini menambah ketahanan ekstra pada inisialisasi aplikasi Anda jika sedang menjalani pemeliharaan atau selama HSM pemadaman Zona Ketersediaan. Untuk detail selengkapnya, lihat Bootstrap Klien SDK.

Otentikasi untuk melakukan operasi

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

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

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

Otentikasi dengan JCE: AWS CloudHSM JCE Penyedia 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, lihatLangkah 2: Berikan kredensil kepada penyedia JCE.

Otentikasi dengan Open SSL: Dengan Open SSL Dynamic Engine, Anda memberikan kredensyal melalui variabel lingkungan. AWS CloudHSM merekomendasikan menyimpan HSM kredensil 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 autentikasi dengan OpenSSL, lihatInstal Open SSL Dynamic Engine untuk AWS CloudHSM Klien SDK 5.

Mengautentikasi dengan KSP: Anda dapat mengautentikasi dengan Penyedia Penyimpanan Kunci (KSP) menggunakan pengelola kredensyal Windows atau variabel evnironment, lihat. Instal penyedia penyimpanan Kunci (KSP) untuk AWS CloudHSM Klien SDK 5

Mengelola 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, AES kunci yang digunakan untuk enkripsi juga tidak boleh diizinkan untuk membungkus kunci dari fileHSM. Untuk informasi selengkapnya, lihat halaman atribut kami untuk Klien berikutSDKs:

Jika memungkinkan, cache objek kunci untuk meminimalkan latensi: Operasi pencarian kunci akan melakukan kueri setiap HSM di cluster Anda. Operasi ini mahal dan tidak berskala dengan HSM hitungan di cluster Anda.

  • Dengan PKCS #11, Anda menemukan kunci menggunakan file C_FindObjectsAPI.

  • DenganJCE, 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 danDaftar kunci untuk pengguna dengan Cloud HSM CLI) 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

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

Dengan PKCS #11, Anda harus menginisialisasi perpustakaan PKCS #11 (memanggilC_Initialize) hanya sekali. 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 SPI objek di seluruh utas. Misalnya, Cipher, Signature, Digest, Mac, KeyFactory atau KeyGenerator objek hanya boleh digunakan dalam konteks thread mereka sendiri.

Menangani kesalahan pelambatan

Anda mungkin mengalami HSM kesalahan pelambatan 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 yang tersedia HSMs di klaster Anda.

Lihat HSMpelambatan 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

AWS dapat menggantikan Anda HSM 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

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

Gunakan VPC peering untuk mengakses klaster Anda dari akun atau wilayah lain: Anda dapat memanfaatkan VPC peering untuk mengakses AWS CloudHSM klaster Anda dari akun atau wilayah lain. Untuk informasi tentang cara mengaturnya, lihat Apa itu VPC mengintip? dalam Panduan VPC Peering. Setelah Anda membuat koneksi peering dan mengonfigurasi grup keamanan Anda dengan tepat, Anda dapat berkomunikasi dengan alamat HSM IP dengan cara yang sama seperti biasanya.

Connect ke beberapa cluster dari aplikasi yang sama: JCE Provider, library PKCS #11, dan Cloud HSM CLI in 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 Klien SDK 5 (terbaruSDK), 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:

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