

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

# Menghubungkan ke beberapa AWS CloudHSM cluster dengan penyedia JCE
<a name="java-lib-configs-multi"></a>

Konfigurasi ini memungkinkan instance klien tunggal untuk berkomunikasi ke beberapa AWS CloudHSM cluster. Dibandingkan dengan memiliki satu instance yang hanya berkomunikasi dengan satu cluster, ini bisa menjadi fitur penghematan biaya untuk beberapa kasus penggunaan. `CloudHsmProvider`Kelas ini adalah AWS CloudHSM implementasi dari [kelas Provider Java Security](https://docs.oracle.com/javase/8/docs/api/java/security/Provider.html). Setiap instance dari kelas ini mewakili koneksi ke seluruh AWS CloudHSM cluster Anda. Anda membuat instance kelas ini dan menambahkannya ke daftar penyedia Java Security sehingga Anda dapat berinteraksi dengannya menggunakan kelas JCE standar.

Contoh berikut membuat instance class ini dan menambahkannya ke daftar penyedia Java Security:

```
if (Security.getProvider(CloudHsmProvider.PROVIDER_NAME) == null) {
    Security.addProvider(new CloudHsmProvider());
}
```

`CloudHsmProvider`dapat dikonfigurasi dengan dua cara:

1. Konfigurasikan dengan file (konfigurasi default)

1. Konfigurasikan menggunakan kode

Topik berikut menjelaskan konfigurasi ini, dan cara menghubungkan ke beberapa cluster.

**Topics**
+ [Konfigurasikan AWS CloudHSM `CloudHsmProvider` kelas dengan file (Konfigurasi default)](java-lib-configs-default.md)
+ [Konfigurasikan AWS CloudHSM `CloudHsmProvider` kelas menggunakan kode](java-lib-configs-using-code.md)
+ [Connect ke beberapa AWS CloudHSM cluster](java-lib-connecting-to-multiclusters.md)

# Konfigurasikan AWS CloudHSM `CloudHsmProvider` kelas dengan file (Konfigurasi default)
<a name="java-lib-configs-default"></a>

Cara default untuk mengkonfigurasi AWS CloudHSM `CloudHsmProvider` kelas adalah dengan file.

Ketika Anda membuat instance `CloudHsmProvider` menggunakan konstruktor default, secara default akan mencari file konfigurasi di `/opt/cloudhsm/etc/cloudhsm-jce.cfg` jalur di Linux. File konfigurasi ini dapat dikonfigurasi menggunakan file`configure-jce`. 

Objek yang dibuat menggunakan konstruktor default akan menggunakan nama penyedia CloudHSM default. `CloudHSM` Nama penyedia berguna untuk berinteraksi dengan JCE untuk memberi tahu penyedia mana yang akan digunakan untuk berbagai operasi. Contoh untuk menggunakan nama penyedia CloudHSM untuk operasi Cipher adalah sebagai berikut:

```
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding", "CloudHSM");
```

# Konfigurasikan AWS CloudHSM `CloudHsmProvider` kelas menggunakan kode
<a name="java-lib-configs-using-code"></a>

Pada Client SDK versi 5.8.0, Anda juga dapat mengkonfigurasi AWS CloudHSM `CloudHsmProvider` kelas menggunakan kode Java. Cara untuk melakukan ini adalah dengan menggunakan objek `CloudHsmProviderConfig` kelas. Anda dapat membangun objek ini menggunakan`CloudHsmProviderConfigBuilder`. 

`CloudHsmProvider`memiliki konstruktor lain yang mengambil `CloudHsmProviderConfig` objek, seperti contoh berikut menunjukkan.

**Example**  

```
CloudHsmProviderConfig config = CloudHsmProviderConfig.builder()  
                                    .withCluster(  
                                        CloudHsmCluster.builder()  
                                            .withHsmCAFilePath(hsmCAFilePath)
                                            .withClusterUniqueIdentifier("CloudHsmCluster1")
        .withServer(CloudHsmServer.builder().withHostIP(hostName).build())  
                        .build())  
        .build();
CloudHsmProvider provider = new CloudHsmProvider(config);
```

Dalam contoh ini, nama penyedia JCE adalah`CloudHsmCluster1`. Ini adalah nama yang kemudian dapat digunakan aplikasi untuk berinteraksi dengan JCE:

**Example**  

```
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding", "CloudHsmCluster1");
```

Atau, aplikasi juga dapat menggunakan objek penyedia yang dibuat di atas untuk memberi tahu JCE untuk menggunakan penyedia itu untuk operasi:

```
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding", provider);
```

Jika pengidentifikasi unik tidak ditentukan dengan `withClusterUniqueIdentifier` metode, nama penyedia yang dibuat secara acak dibuat untuk Anda. Untuk mendapatkan pengenal yang dihasilkan secara acak ini, aplikasi dapat memanggil `provider.getName()` untuk mendapatkan pengenal.

# Connect ke beberapa AWS CloudHSM cluster
<a name="java-lib-connecting-to-multiclusters"></a>

Masing-masing `CloudHsmProvider` mewakili koneksi ke AWS CloudHSM Cluster Anda. Jika Anda ingin berbicara dengan cluster lain dari aplikasi yang sama, Anda dapat membuat objek lain `CloudHsmProvider` dengan konfigurasi untuk cluster Anda yang lain dan Anda dapat berinteraksi dengan cluster lain ini baik menggunakan objek penyedia atau menggunakan nama penyedia, seperti yang ditunjukkan pada contoh berikut.

**Example**  

```
CloudHsmProviderConfig config = CloudHsmProviderConfig.builder()  
                                    .withCluster(  
                                        CloudHsmCluster.builder()  
                                            .withHsmCAFilePath(hsmCAFilePath)
                                            .withClusterUniqueIdentifier("CloudHsmCluster1")
        .withServer(CloudHsmServer.builder().withHostIP(hostName).build())  
                        .build())  
        .build();
CloudHsmProvider provider1 = new CloudHsmProvider(config);

if (Security.getProvider(provider1.getName()) == null) {
    Security.addProvider(provider1);
}

CloudHsmProviderConfig config2 = CloudHsmProviderConfig.builder()  
                                    .withCluster(  
                                        CloudHsmCluster.builder()  
                                            .withHsmCAFilePath(hsmCAFilePath2)
                                            .withClusterUniqueIdentifier("CloudHsmCluster2")
        .withServer(CloudHsmServer.builder().withHostIP(hostName2).build())  
                        .build())  
        .build();
CloudHsmProvider provider2 = new CloudHsmProvider(config2);

if (Security.getProvider(provider2.getName()) == null) {
    Security.addProvider(provider2);
}
```

Setelah Anda mengonfigurasi kedua penyedia (kedua cluster) di atas, Anda dapat berinteraksi dengan mereka baik menggunakan objek penyedia atau menggunakan nama penyedia. 

Memperluas contoh ini yang menunjukkan cara berbicara`cluster1`, Anda dapat menggunakan sampel berikut untuk AES/GCM/NoPadding operasi:

```
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding", provider1);
```

Dan dalam aplikasi yang sama untuk melakukan “AES” Pembuatan kunci pada cluster kedua menggunakan nama penyedia, Anda juga dapat menggunakan contoh berikut:

```
Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding", provider2.getName());
```