

 AWS SDK untuk Java 1.x mencapai end-of-support pada 31 Desember 2025. Kami menyarankan Anda bermigrasi ke [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html)untuk terus menerima fitur baru, peningkatan ketersediaan, dan pembaruan keamanan.

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

# Memberikan kredensi sementara ke AWS SDK untuk Java
<a name="credentials"></a>

Untuk membuat permintaan Amazon Web Services, Anda harus memberikan kredensi AWS sementara AWS SDK untuk Java untuk digunakan saat memanggil layanan. Anda dapat melakukan ini dengan cara berikut:
+ Gunakan rantai penyedia kredensyal default *(disarankan)*.
+ Gunakan penyedia kredensyal atau rantai penyedia tertentu (atau buat sendiri).
+ Berikan sendiri kredensi sementara dalam kode.

## Menggunakan Rantai Penyedia Kredensyal Default
<a name="credentials-default"></a>

[Saat Anda menginisialisasi klien layanan baru tanpa memberikan argumen apa pun, AWS SDK untuk Java upaya untuk menemukan kredensyal sementara dengan menggunakan *rantai penyedia kredensyal default yang diimplementasikan oleh kelas* Default. AWSCredentials ProviderChain](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html) Rantai penyedia kredensyal default mencari kredensyal dalam urutan ini:

1.  **Variabel lingkungan** -`AWS_ACCESS_KEY_ID`, `AWS_SECRET_KEY` atau`AWS_SECRET_ACCESS_KEY`, dan`AWS_SESSION_TOKEN`. AWS SDK untuk Java Menggunakan [EnvironmentVariableCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/EnvironmentVariableCredentialsProvider.html)kelas untuk memuat kredensyal ini.

1.  **Properti sistem Java** -`aws.accessKeyId`, `aws.secretKey` (tetapi tidak`aws.secretAccessKey`), dan`aws.sessionToken`. AWS SDK untuk Java Penggunaan [SystemPropertiesCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/SystemPropertiesCredentialsProvider.html)untuk memuat kredensyal ini.

1.  **Kredensyal Token Identitas Web** dari lingkungan atau wadah.

1.  **File profil kredensi default** - biasanya terletak di `~/.aws/credentials` (lokasi dapat bervariasi per platform), dan dibagikan oleh banyak AWS SDKs dan oleh. AWS CLI AWS SDK untuk Java Penggunaan [ProfileCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/profile/ProfileCredentialsProvider.html)untuk memuat kredensyal ini.

   Anda dapat membuat file kredensional dengan menggunakan `aws configure` perintah yang disediakan oleh AWS CLI, atau Anda dapat membuatnya dengan mengedit file dengan editor teks. Untuk informasi tentang format file kredensyal, lihat Format File [AWS Kredensial](#credentials-file-format).

1.  **Kredensyal kontainer Amazon ECS** - dimuat dari Amazon ECS jika variabel lingkungan disetel. `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` AWS SDK untuk Java Penggunaan [ContainerCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/ContainerCredentialsProvider.html)untuk memuat kredensyal ini. Anda dapat menentukan alamat IP untuk nilai ini.

1.  **Instance profile credentials** - digunakan pada instans EC2, dan dikirimkan melalui layanan metadata. Amazon EC2 AWS SDK untuk Java Penggunaan [InstanceProfileCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/InstanceProfileCredentialsProvider.html)untuk memuat kredensyal ini. Anda dapat menentukan alamat IP untuk nilai ini.
**catatan**  
Kredensyal profil instance hanya digunakan jika tidak `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` disetel. Untuk informasi selengkapnya, lihat [EC2ContainerCredentialsProviderWrapper](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/EC2ContainerCredentialsProviderWrapper.html).

### Tetapkan kredensyal sementara
<a name="setting-credentials"></a>

Untuk dapat menggunakan kredensyal AWS sementara, mereka harus ditetapkan *setidaknya di salah satu* lokasi sebelumnya. Untuk informasi tentang menyetel kredensyal, lihat topik berikut:
+ Untuk menentukan kredensyal di *lingkungan* atau dalam *file profil kredensyal* default, lihat. [Konfigurasikan kredensyal sementara](setup-credentials.md#setup-credentials-setting)
+ Untuk mengatur *properti sistem* Java, lihat tutorial [System Properties](http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html) di situs web resmi *Java Tutorial*.
+ Untuk menyiapkan dan menggunakan *kredensil profil instans* dengan instans EC2 Anda, lihat [Menggunakan Peran IAM untuk Memberikan Akses ke Sumber Daya pada](java-dg-roles.md). AWS Amazon EC2

### Menetapkan profil kredensyal alternatif
<a name="setting-an-alternate-credentials-profile"></a>

 AWS SDK untuk Java Menggunakan profil *default secara default*, tetapi ada cara untuk menyesuaikan profil mana yang bersumber dari file kredensyal.

Anda dapat menggunakan variabel lingkungan AWS Profil untuk mengubah profil yang dimuat oleh SDK.

*Misalnya, di Linux, macOS, atau Unix Anda akan menjalankan perintah berikut untuk mengubah profil ke MyProfile.*

```
export AWS_PROFILE="myProfile"
```

Di Windows Anda akan menggunakan yang berikut ini.

```
set AWS_PROFILE="myProfile"
```

Menyetel variabel `AWS_PROFILE` lingkungan memengaruhi pemuatan kredensi untuk semua yang didukung secara resmi AWS SDKs dan Alat (termasuk AWS CLI dan AWS Tools for Windows PowerShell). Untuk mengubah hanya profil untuk aplikasi Java, Anda dapat menggunakan properti sistem `aws.profile` sebagai gantinya.

**catatan**  
Variabel lingkungan lebih diutamakan daripada properti sistem.

### Menetapkan lokasi file kredensyal alternatif
<a name="setting-an-alternate-credentials-file-location"></a>

 AWS SDK untuk Java Memuat kredensyal AWS sementara secara otomatis dari lokasi file kredensyal default. Namun, Anda juga dapat menentukan lokasi dengan menyetel variabel `AWS_CREDENTIAL_PROFILES_FILE` lingkungan dengan jalur lengkap ke file kredensyal.

Anda dapat menggunakan fitur ini untuk sementara mengubah lokasi di mana AWS SDK untuk Java mencari file kredensional Anda (misalnya, dengan mengatur variabel ini dengan baris perintah). Atau Anda dapat mengatur variabel lingkungan di lingkungan pengguna atau sistem Anda untuk mengubahnya untuk pengguna atau seluruh sistem.

#### Untuk mengganti lokasi berkas kredensial default
<a name="w3aab9c15b9c11b7b1"></a>
+ Atur variabel `AWS_CREDENTIAL_PROFILES_FILE` lingkungan ke lokasi file AWS kredensyal Anda.
  + Di Linux, macOS, atau Unix, gunakan:

    ```
    export AWS_CREDENTIAL_PROFILES_FILE=path/to/credentials_file
    ```
  + Di Windows, gunakan:

    ```
    set AWS_CREDENTIAL_PROFILES_FILE=path/to/credentials_file
    ```

### `Credentials`format berkas
<a name="credentials-file-format"></a>

Dengan mengikuti [petunjuk dalam pengaturan Dasar](signup-create-iam-user.md#setup-temp-creds) panduan ini, file kredensyal Anda harus memiliki format dasar berikut.

```
[default]
aws_access_key_id=<value from AWS access portal>
aws_secret_access_key=<value from AWS access portal>
aws_session_token=<value from AWS access portal>

[profile2]
aws_access_key_id=<value from AWS access portal>
aws_secret_access_key=<value from AWS access portal>
aws_session_token=<value from AWS access portal>
```

Nama profil ditentukan dalam tanda kurung siku (misalnya,`[default]`), diikuti oleh bidang yang dapat dikonfigurasi di profil itu sebagai pasangan nilai kunci. Anda dapat memiliki beberapa profil di `credentials` file Anda, yang dapat ditambahkan atau diedit menggunakan `aws configure --profile PROFILE_NAME ` untuk memilih profil yang akan dikonfigurasi.

Anda dapat menentukan bidang tambahan, seperti`metadata_service_timeout`, dan`metadata_service_num_attempts`. Ini tidak dapat dikonfigurasi dengan CLI—Anda harus mengedit file dengan tangan jika Anda ingin menggunakannya. Untuk informasi selengkapnya tentang file konfigurasi dan bidangnya yang tersedia, lihat [Mengonfigurasi AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) dalam Panduan AWS Command Line Interface Pengguna.

### Memuat kredensyal
<a name="loading-credentials"></a>

Setelah Anda menyetel kredensyal sementara, SDK akan memuatnya dengan menggunakan rantai penyedia kredensyal default.

Untuk melakukan ini, Anda membuat instance Layanan AWS klien tanpa secara eksplisit memberikan kredensyal kepada pembangun, sebagai berikut.

```
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                       .withRegion(Regions.US_WEST_2)
                       .build();
```

## Tentukan penyedia kredensyal atau rantai penyedia
<a name="credentials-specify-provider"></a>

Anda dapat menentukan penyedia kredensyal yang berbeda dari rantai penyedia kredensyal *default* dengan menggunakan pembuat klien.

Anda memberikan instance penyedia kredensial atau rantai penyedia ke pembuat klien yang menggunakan antarmuka [AWSCredentialsPenyedia sebagai masukan](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProvider.html). Contoh berikut menunjukkan cara menggunakan kredensyal *lingkungan* secara khusus.

```
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                       .withCredentials(new EnvironmentVariableCredentialsProvider())
                       .build();
```

[Untuk daftar lengkap penyedia kredensi AWS SDK untuk Java yang disediakan dan rantai penyedia, lihat **Semua Kelas Penerapan yang Dikenal** di AWSCredentials Penyedia.](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProvider.html)

**catatan**  
Anda dapat menggunakan teknik ini untuk menyediakan penyedia kredensi atau rantai penyedia yang Anda buat dengan menggunakan penyedia kredensyal Anda sendiri yang mengimplementasikan `AWSCredentialsProvider` antarmuka, atau dengan mensubklasifikasikan kelas. [AWSCredentialsProviderChain](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSCredentialsProviderChain.html)

## Secara eksplisit menentukan kredensyal sementara
<a name="credentials-explicit"></a>

Jika rantai kredensi default atau penyedia atau rantai penyedia khusus atau khusus tidak berfungsi untuk kode Anda, Anda dapat menyetel kredensional yang Anda berikan secara eksplisit. Jika Anda telah mengambil kredensyal sementara menggunakan AWS STS, gunakan metode ini untuk menentukan kredensyal untuk akses. AWS 

1. Buat instance [BasicSessionCredentials](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/BasicSessionCredentials.html)kelas, dan berikan kunci AWS akses, kunci AWS rahasia, dan token AWS sesi yang akan digunakan SDK untuk koneksi.

1. Buat [AWSStaticCredentialsProvider](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/auth/AWSStaticCredentialsProvider.html)dengan `AWSCredentials` objek.

1. Konfigurasikan pembuat klien dengan `AWSStaticCredentialsProvider` dan bangun klien.

Berikut adalah contohnya.

```
BasicSessionCredentials awsCreds = new BasicSessionCredentials("access_key_id", "secret_key_id", "session_token");
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
                        .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
                        .build();
```

## Info Selengkapnya
<a name="more-info"></a>
+  [Mendaftar AWS dan Membuat Pengguna IAM](signup-create-iam-user.md) 
+  [Menyiapkan AWS Kredensyal dan Wilayah untuk Pembangunan](setup-credentials.md) 
+  [Menggunakan Peran IAM untuk Memberikan Akses ke AWS Sumber Daya Amazon EC2](java-dg-roles.md) 