

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

# Manajemen pengguna dengan otentikasi kuorum diaktifkan untuk menggunakan AWS CloudHSM CloudHSM CLI
<a name="quorum-auth-chsm-cli-admin"></a>

 AWS CloudHSM [Admin](understanding-users.md#admin) pada modul keamanan perangkat keras (HSM) dapat mengonfigurasi otentikasi kuorum untuk operasi berikut di cluster: AWS CloudHSM 
+ **[Buat AWS CloudHSM pengguna dengan CloudHSM CLI](cloudhsm_cli-user-create.md)**
+ **[Hapus AWS CloudHSM pengguna dengan CloudHSM CLI](cloudhsm_cli-user-delete.md)**
+ **[Ubah kata sandi pengguna dengan CloudHSM CLI](cloudhsm_cli-user-change-password.md)**
+ **[Kategori perubahan pengguna-mfa di CloudHSM CLI](cloudhsm_cli-user-change-mfa.md)**

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:

**Topics**
+ [Langkah 1. Dapatkan token kuorum](#quorum-admin-gen-token-chsm-cli)
+ [Langkah 2. Dapatkan tanda tangan dari admin yang menyetujui](#quorum-admin-get-approval-signatures-chsm-cli)
+ [Langkah 3. Menyetujui token pada AWS CloudHSM cluster dan menjalankan operasi manajemen pengguna](#quorum-admin-approve-token-chsm-cli)

## Langkah 1. Dapatkan token kuorum
<a name="quorum-admin-gen-token-chsm-cli"></a>

*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 ]

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" interactive
   ```

------

1. Menggunakan CloudHSM CLI, masuk sebagai admin.

   ```
   aws-cloudhsm > login --username <admin> --role admin
   Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "<admin>",
       "role": "admin"
     }
   }
   ```

1. Gunakan **quorum token-sign generate** perintah untuk menghasilkan token kuorum. Untuk informasi selengkapnya, lihat contoh berikut atau gunakan perintah **help quorum token-sign generate**.

**Example — 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 (`user`layanan).  

```
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 generate**Perintah menghasilkan token kuorum layanan pengguna di jalur file yang ditentukan. File token dapat diperiksa:  

```
$ cat </path/admin.token>
{
  "version": "2.0",
  "service": "user-management",
  "approval_data": "AAEAAwAAABgAAAAAAAAAAJ9eFkfcP3mNzJAlfK+OWbNhZG1pbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj5vbeAAAAAAAAAAAAAQADAAAAFQAAAAAAAAAAW/v5Euk83amq1fij0zyvD2FkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPm9t4AAAAAAAAAAAABAAMAAAAUAAAAAAAAAABDw2XDwfK4hB8a15Xh1E0nYWRtaW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+b23gAAAAAAAAAA",
  "token": "0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=",
  "signatures": []
}
```
File token terdiri dari yang berikut:  
+ **layanan**: Pengenal untuk layanan kuorum yang dikaitkan dengan token.
+ **approval \$1data: Token data** mentah yang dikodekan base64 yang dihasilkan oleh HSM.
+ **token: Token** base64 yang dikodekan dan SHA-256 yang di-hash dari approval \$1data
+ **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>",
        "role": "<APPROVER_ROLE>",
        "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-seconds`Waktu menunjukkan periode batas waktu dalam hitungan detik agar token yang dihasilkan disetujui sebelum kedaluwarsa.

## Langkah 2. Dapatkan tanda tangan dari admin yang menyetujui
<a name="quorum-admin-get-approval-signatures-chsm-cli"></a>

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](https://www.openssl.org/). Untuk menggunakan alat penandatanganan yang berbeda, pastikan alat tersebut menggunakan kunci pribadi admin (kunci penandatanganan) untuk menandatangani intisari token SHA-256.

**Example — 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
   ```

1. 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
   ```

1. Mengkodekan tanda tangan biner ke base64:

   ```
   $ base64 -w0 admin.sig.bin > admin.sig.b64
   ```

1. 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",
         "role": "admin",
         "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw=="
       },
       {
         "username": "admin3",
         "role": "admin",
         "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw=="
       }
     ]
   }
   ```

## Langkah 3. Menyetujui token pada AWS CloudHSM cluster dan menjalankan operasi manajemen pengguna
<a name="quorum-admin-approve-token-chsm-cli"></a>

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:
+ **[buat](cloudhsm_cli-user-create.md)**
+ **[hapus](cloudhsm_cli-user-delete.md)**
+ **[ubah-kata sandi](cloudhsm_cli-user-change-password.md)**
+ **[user change-mfa](cloudhsm_cli-user-change-mfa.md)**

Untuk informasi selengkapnya tentang menggunakan perintah ini, lihat [Manajemen pengguna dengan CloudHSM CLI](manage-hsm-users-chsm-cli.md).

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.

**Example 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 menyediakan token kuorum yang akan disetujui dan digunakan selama eksekusi operasi manajemen pengguna.  

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