

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

# Instal penyedia JCE untuk AWS CloudHSM Client SDK 3
<a name="java-library-install"></a>

Sebelum Anda dapat menggunakan penyedia JCE, Anda memerlukan AWS CloudHSM klien. 

Klien adalah daemon yang membangun komunikasi end-to-end terenkripsi dengan di cluster Anda. HSMs Penyedia JCE berkomunikasi secara lokal dengan klien. Jika Anda belum menginstal dan mengkonfigurasi paket AWS CloudHSM klien, lakukan itu sekarang dengan mengikuti langkah-langkah di[Instal klien (Linux)](cmu-install-and-configure-client-linux.md). Setelah Anda menginstal dan mengatur konfigurasi klien, gunakan perintah berikut untuk memulainya. 

Perhatikan bahwa penyedia JCE hanya didukung pada Linux dan sistem operasi yang kompatibel. 

------
#### [ Amazon Linux ]

```
$ sudo start cloudhsm-client
```

------
#### [ Amazon Linux 2 ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ CentOS 7 ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ CentOS 8 ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ RHEL 7 ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ RHEL 8 ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ Ubuntu 16.04 LTS ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ Ubuntu 18.04 LTS ]

```
$ sudo systemctl start cloudhsm-client
```

------
#### [ Ubuntu 20.04 LTS ]

```
$ sudo systemctl start cloudhsm-client
```

------

Gunakan bagian berikut untuk menginstal, memvalidasi, dan memberikan kredensi kepada penyedia.

**Topics**
+ [Langkah 1: Instal penyedia JCE](#install-java-library)
+ [Langkah 2: Validasi instalasi](#validate-install)
+ [Langkah 3: Berikan kredensil ke penyedia JCE](#java-library-credentials)

## Langkah 1: Instal penyedia JCE
<a name="install-java-library"></a>

Gunakan perintah berikut untuk mengunduh dan menginstal penyedia JCE. Penyedia ini didukung hanya di Linux dan sistem operasi yang kompatibel. 

**catatan**  
Untuk meningkatkan, lihat [Tingkatkan SDK Klien 3](client-upgrade.md).

------
#### [ Amazon Linux ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-client-jce-latest.el6.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el6.x86_64.rpm
```

------
#### [ Amazon Linux 2 ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
```

------
#### [ CentOS 7 ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
```

------
#### [ CentOS 8 ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-jce-latest.el8.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el8.x86_64.rpm
```

------
#### [ RHEL 7 ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-client-jce-latest.el7.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el7.x86_64.rpm
```

------
#### [ RHEL 8 ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-client-jce-latest.el8.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-client-jce-latest.el8.x86_64.rpm
```

------
#### [ Ubuntu 16.04 LTS ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-client-jce_latest_amd64.deb
```

```
$ sudo apt install ./cloudhsm-client-jce_latest_amd64.deb
```

------
#### [ Ubuntu 18.04 LTS ]

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Bionic/cloudhsm-client-jce_latest_u18.04_amd64.deb
```

```
$ sudo apt install ./cloudhsm-client-jce_latest_u18.04_amd64.deb
```

------

Setelah Anda menjalankan perintah sebelumnya, Anda dapat menemukan file penyedia JCE berikut:
+ `/opt/cloudhsm/java/cloudhsm-<version>.jar`
+ `/opt/cloudhsm/java/cloudhsm-test-<version>.jar`
+ `/opt/cloudhsm/java/hamcrest-all-1.3.jar`
+ `/opt/cloudhsm/java/junit.jar`
+ `/opt/cloudhsm/java/log4j-api-2.17.1.jar`
+ `/opt/cloudhsm/java/log4j-core-2.17.1.jar`
+ `/opt/cloudhsm/lib/libcaviumjca.so`

## Langkah 2: Validasi instalasi
<a name="validate-install"></a>

Melakukan operasi dasar pada HSM untuk memvalidasi instalasi.

**Untuk memvalidasi instalasi penyedia JCE**

1. (Opsional) Jika Anda belum memiliki Java diinstal di lingkungan Anda, gunakan perintah berikut untuk menginstalnya. 

------
#### [ Linux (and compatible libraries) ]

   ```
   $ sudo yum install java-1.8.0-openjdk
   ```

------
#### [ Ubuntu ]

   ```
   $ sudo apt-get install openjdk-8-jre
   ```

------

1. Gunakan perintah berikut untuk mengatur variabel lingkungan yang diperlukan. Ganti *<HSM user name>* dan *<password>* dengan kredensil pengguna kripto (CU).

   ```
   $ export LD_LIBRARY_PATH=/opt/cloudhsm/lib
   ```

   ```
   $ export HSM_PARTITION=PARTITION_1
   ```

   ```
   $ export HSM_USER=<HSM user name>
   ```

   ```
   $ export HSM_PASSWORD=<password>
   ```

1. Gunakan perintah berikut untuk menjalankan tes fungsionalitas dasar. Jika berhasil, output perintah harus serupa dengan berikut.

   ```
   $ java8 -classpath "/opt/cloudhsm/java/*" org.junit.runner.JUnitCore TestBasicFunctionality
   
   JUnit version 4.11
   .2018-08-20 17:53:48,514 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:33) - Adding provider.
   2018-08-20 17:53:48,612 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:42) - Logging in.
   2018-08-20 17:53:48,612 INFO [main] cfm2.LoginManager (LoginManager.java:104) - Looking for credentials in HsmCredentials.properties
   2018-08-20 17:53:48,612 INFO [main] cfm2.LoginManager (LoginManager.java:122) - Looking for credentials in System.properties
   2018-08-20 17:53:48,613 INFO [main] cfm2.LoginManager (LoginManager.java:130) - Looking for credentials in System.env
    SDK Version: 2.03
   2018-08-20 17:53:48,655 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:54) - Generating AES Key with key size 256.
   2018-08-20 17:53:48,698 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:63) - Encrypting with AES Key.
   2018-08-20 17:53:48,705 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:84) - Deleting AES Key.
   2018-08-20 17:53:48,707 DEBUG [main] TestBasicFunctionality (TestBasicFunctionality.java:92) - Logging out.
   
   Time: 0.205
   
   OK (1 test)
   ```

## Langkah 3: Berikan kredensil ke penyedia JCE
<a name="java-library-credentials"></a>

HSMs perlu mengotentikasi aplikasi Java Anda sebelum aplikasi dapat menggunakannya. Setiap aplikasi dapat menggunakan satu sesi. HSMs mengautentikasi sesi dengan menggunakan login eksplisit atau metode login implisit.

**Login eksplisit** — Metode ini memungkinkan Anda memberikan kredensial CloudHSM langsung dalam aplikasi. Menggunakan metode `LoginManager.login()`, yaitu Anda melewati nama pengguna CU, kata sandi, dan ID partisi HSM. Untuk informasi lebih lanjut menggunakan metode login eksplisit, lihat sampel kode [Login ke HSM](https://github.com/aws-samples/aws-cloudhsm-jce-examples/blob/master/src/main/java/com/amazonaws/cloudhsm/examples/LoginRunner.java). 

**Login implisit** — Metode ini memungkinkan Anda mengatur kredensial CloudHSM baik dalam file properti baru, properti sistem, atau sebagai variabel lingkungan.
+ **Properti baru file** — Membuat file baru dengan nama `HsmCredentials.properties` dan menambahkannya ke `CLASSPATH` aplikasi. File tersebut harus berisi hal berikut:

  ```
  HSM_PARTITION = PARTITION_1
  HSM_USER = <HSM user name>
  HSM_PASSWORD = <password>
  ```
+ **Properti sistem** — Set kredensial melalui properti sistem saat menjalankan aplikasi Anda. Contoh berikut menunjukkan dua cara berbeda yang dapat dilakukan:

  ```
  $ java -DHSM_PARTITION=PARTITION_1 -DHSM_USER=<HSM user name> -DHSM_PASSWORD=<password>
  ```

  ```
  System.setProperty("HSM_PARTITION","PARTITION_1");
  System.setProperty("HSM_USER","<HSM user name>");
  System.setProperty("HSM_PASSWORD","<password>");
  ```
+ **Variabel lingkungan** — Set kredensial sebagai variabel lingkungan.

  ```
  $ export HSM_PARTITION=PARTITION_1
  $ export HSM_USER=<HSM user name>
  $ export HSM_PASSWORD=<password>
  ```

Kredensial mungkin tidak tersedia jika aplikasi tidak menyediakannya atau jika Anda mencoba operasi sebelum HSM mengautentikasi sesi. Dalam kasus tersebut, pustaka perangkat lunak CloudHSM untuk Java mencari kredensialnya dengan urutan sebagai berikut:

1. `HsmCredentials.properties`

1. Properti sistem

1. Variabel lingkungan

**Penanganan kesalahan**  
Penanganan kesalahan lebih mudah dengan login eksplisit dari metode login implisit. Saat Anda menggunakan kelas `LoginManager`, Anda memiliki kontrol lebih atas bagaimana aplikasi Anda menangani kegagalan. Metode login implisit membuat penanganan kesalahan sulit dipahami ketika kredensialnya tidak valid atau mengalami masalah dalam mengautentikasi HSMs sesi.