Menggunakan otentikasi kuorum untuk admin - AWS CloudHSM

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

Menggunakan otentikasi kuorum untuk admin

Admin di HSM dapat mengonfigurasi otentikasi kuorum untuk operasi berikut di cluster: AWS CloudHSM

Setelah AWS CloudHSM cluster dikonfigurasi untuk otentikasi kuorum, admin tidak dapat melakukan operasi manajemen pengguna HSM sendiri. Contoh berikut menunjukkan output ketika admin mencoba untuk membuat pengguna baru di HSM. Perintah gagal dengan kesalahan, yang menyatakan bahwa otentikasi kuorum diperlukan.

aws-cloudhsm > user create --username user1 --role crypto-user Enter password: Confirm password: { "error_code": 1, "data": "Quorum approval is required for this operation" }

Untuk melakukan operasi manajemen pengguna HSM, admin harus menyelesaikan tugas-tugas berikut:

Dapatkan token kuorum

Pertama, admin harus menggunakan CloudHSM CLI untuk meminta token kuorum.

Dapatkan token kuorum.
  1. Gunakan perintah berikut untuk memulai CloudHSM CLI.

    Linux
    $ /opt/cloudhsm/bin/cloudhsm-cli interactive
    Windows
    C:\Program Files\Amazon\CloudHSM\bin\> .\cloudhsm-cli.exe interactive
  2. Gunakan login perintah dan masuk ke cluster sebagai admin.

    aws-cloudhsm>login --username admin --role admin
  3. Gunakan quorum token-sign generate perintah untuk menghasilkan token kuorum. Untuk informasi selengkapnya, lihat contoh berikut atau gunakan perintah help quorum token-sign generate.

contoh — Hasilkan token kuorum

Contoh ini mendapatkan token kuorum untuk admin dengan nama pengguna admin dan menyimpan token ke file bernama. admin.token Untuk menggunakan perintah contoh berikut, ganti nilai ini dengan nilai Anda sendiri:

  • <admin>— Nama admin yang mendapatkan token. Ini harus admin yang sama yang masuk ke HSM dan menjalankan perintah ini.

  • <admin.token>— Nama file yang akan digunakan untuk menyimpan token kuorum.

Dalam perintah berikut, user identifikasi nama layanan yang dapat Anda gunakan token yang Anda hasilkan. Dalam hal ini, token adalah untuk operasi manajemen pengguna HSM (userlayanan).

aws-cloudhsm > login --username <ADMIN> --role <ADMIN> --password <PASSWORD> { "error_code": 0, "data": { "username": "admin", "role": "admin" } } aws-cloudhsm > quorum token-sign generate --service user --token </path/admin.token> { "error_code": 0, "data": { "path": "/home/tfile" } }

quorum token-sign generatePerintah menghasilkan token kuorum layanan pengguna di jalur file yang ditentukan. File token dapat diperiksa:

$cat </path/admin.token> { "version": "2.0", "approval_data": "AAEAAwAAABgAAAAAAAAAAJ9eFkfcP3mNzJAlfK+OWbNhZG1pbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj5vbeAAAAAAAAAAAAAQADAAAAFQAAAAAAAAAAW/v5Euk83amq1fij0zyvD2FkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPm9t4AAAAAAAAAAAABAAMAAAAUAAAAAAAAAABDw2XDwfK4hB8a15Xh1E0nYWRtaW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+b23gAAAAAAAAAA", "token": "0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=", "signatures": [] }

File token terdiri dari yang berikut:

  • approval _data: Token data mentah yang dikodekan base64 yang dihasilkan oleh HSM.

  • token: Token base64 yang dikodekan dan SHA-256 yang di-hash dari approval _data

  • tanda tangan: Array token bertanda tangan yang disandikan base64 (tanda tangan) dari token yang tidak ditandatangani, di mana setiap tanda tangan pemberi persetujuan dalam bentuk objek JSON literal:

    { "username": "<APPROVER_USERNAME>", "signature": "<APPROVER_RSA2048_BIT_SIGNATURE>" }

    Setiap tanda tangan dibuat dari hasil pemberi persetujuan menggunakan kunci pribadi RSA 2048-bit yang sesuai yang kunci publiknya terdaftar di HSM..

Token kuorum layanan pengguna yang dihasilkan dapat dikonfirmasi ada di klaster CloudHSM dengan menjalankan perintah: quorum token-sign list

aws-cloudhsm > quorum token-sign list { "error_code": 0, "data": { "tokens": [ { "username": "admin", "service": "user", "approvals-required": { "value": 2 }, "number-of-approvals": { "value": 0 }, "token-timeout-seconds": { "value": 597 }, "cluster-coverage": "full" } ] } }

token-timeout-secondsWaktu menunjukkan periode batas waktu dalam hitungan detik agar token yang dihasilkan disetujui sebelum kedaluwarsa.

Dapatkan tanda tangan dari admin yang menyetujui

Admin yang memiliki token kuorum harus mendapatkan token yang disetujui oleh admin lain. Untuk memberikan persetujuan mereka, admin lain menggunakan kunci penandatanganan mereka untuk menandatangani token secara kriptografis. Mereka melakukan ini di luar HSM.

Ada banyak cara yang berbeda untuk menandatangani token. Contoh berikut menunjukkan cara melakukannya dengan OpenSSL. Untuk menggunakan alat penandatanganan yang berbeda, pastikan alat tersebut menggunakan kunci pribadi admin (kunci penandatanganan) untuk menandatangani intisari token SHA-256.

contoh — Dapatkan tanda tangan dari admin yang menyetujui

Dalam contoh ini, admin yang memiliki token (admin) membutuhkan setidaknya dua (2) persetujuan. Contoh perintah berikut menunjukkan bagaimana dua (2) admin dapat menggunakan OpenSSL untuk menandatangani token secara kriptografis.

  1. Dekode token unsigned base64 yang dikodekan dan letakkan ke dalam file biner:

    $echo -n '0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=' | base64 -d > admin.bin
  2. Gunakan OpenSSL dan kunci pribadi masing-masing dari (admin3) pemberi persetujuan untuk menandatangani token kuorum biner yang sekarang tidak ditandatangani untuk layanan pengguna dan membuat file tanda tangan biner:

    $openssl pkeyutl -sign \ -inkey admin3.key \ -pkeyopt digest:sha256 \ -keyform PEM \ -in admin.bin \ -out admin.sig.bin
  3. Mengkodekan tanda tangan biner ke base64:

    $base64 -w0 admin.sig.bin > admin.sig.b64
  4. Terakhir, salin dan tempel tanda tangan yang dikodekan base64 ke dalam file token, mengikuti format literal objek JSON yang ditentukan sebelumnya untuk tanda tangan pemberi persetujuan:

    { "version": "2.0", "approval_data": "AAEAAwAAABgAAAAAAAAAAJ9eFkfcP3mNzJAlfK+OWbNhZG1pbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj5vbeAAAAAAAAAAAAAQADAAAAFQAAAAAAAAAAW/v5Euk83amq1fij0zyvD2FkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPm9t4AAAAAAAAAAAABAAMAAAAUAAAAAAAAAABDw2XDwfK4hB8a15Xh1E0nYWRtaW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+b23gAAAAAAAAAA", "token": "0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=", "signatures": [ { "username": "admin2", "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw==" }, { "username": "admin3", "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw==" } ] }

Menyetujui token pada AWS CloudHSM cluster dan menjalankan operasi manajemen pengguna

Setelah admin memiliki persetujuan/tanda tangan yang diperlukan, seperti yang dijelaskan di bagian sebelumnya, admin dapat menyediakan token tersebut ke AWS CloudHSM cluster bersama dengan salah satu operasi manajemen pengguna berikut:

Untuk informasi selengkapnya tentang menggunakan perintah ini, lihat Menggunakan CloudHSM CLI.

Selama transaksi, token akan disetujui dalam AWS CloudHSM cluster dan menjalankan operasi manajemen pengguna yang diminta. Keberhasilan operasi manajemen pengguna bergantung pada token kuorum yang disetujui yang valid dan operasi manajemen pengguna yang valid.

Admin dapat menggunakan token hanya untuk satu operasi. Ketika operasi itu berhasil, token tidak lagi berlaku. Untuk melakukan operasi manajemen pengguna HSM lainnya, admin harus mengulangi proses yang diuraikan di atas. Artinya, admin harus membuat token kuorum baru, mendapatkan tanda tangan baru dari pemberi persetujuan, dan kemudian menyetujui dan menggunakan token baru di HSM dengan operasi manajemen pengguna yang diminta.

catatan

Token kuorum hanya berlaku selama sesi login Anda saat ini terbuka. Jika Anda keluar dari CloudHSM CLI atau jika jaringan terputus, token tidak lagi valid. Demikian pula, token resmi hanya dapat digunakan dalam CloudHSM CLI. Itu tidak dapat digunakan untuk mengautentikasi dalam aplikasi yang berbeda.

contoh Membuat pengguna baru sebagai admin

Dalam contoh berikut, admin yang masuk membuat pengguna baru di HSM:

aws-cloudhsm > user create --username user1 --role crypto-user --approval /path/admin.token Enter password: Confirm password: { "error_code": 0, "data": { "username": "user1", "role": "crypto-user" } }

Admin kemudian memasukkan user list perintah untuk mengonfirmasi pembuatan pengguna baru:

aws-cloudhsm > user list{ "error_code": 0, "data": { "users": [ { "username": "admin", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin2", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin3", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "admin4", "role": "admin", "locked": "false", "mfa": [], "quorum": [ { "strategy": "token-sign", "status": "enabled" } ], "cluster-coverage": "full" }, { "username": "user1", "role": "crypto-user", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" }, { "username": "app_user", "role": "internal(APPLIANCE_USER)", "locked": "false", "mfa": [], "quorum": [], "cluster-coverage": "full" } ] } }

Jika admin mencoba melakukan operasi manajemen pengguna HSM lain, itu gagal dengan kesalahan otentikasi kuorum:

aws-cloudhsm > user delete --username user1 --role crypto-user { "error_code": 1, "data": "Quorum approval is required for this operation" }

Seperti yang ditunjukkan di bawah ini, quorum token-sign list perintah menunjukkan bahwa admin tidak memiliki token yang disetujui. Untuk melakukan operasi manajemen pengguna HSM lainnya, admin harus membuat token kuorum baru, mendapatkan tanda tangan baru dari pemberi persetujuan, dan menjalankan operasi manajemen pengguna yang diinginkan dengan argumen --approval untuk memasok token kuorum yang akan disetujui dan digunakan selama eksekusi operasi manajemen pengguna.

aws-cloudhsm > quorum token-sign list { "error_code": 0, "data": { "tokens": [] } }