View a markdown version of this page

Memberikan kredensi sementara ke AWS SDK untuk Java - AWS SDK untuk Java 1.x

AWS SDK untuk Java 1.x mencapai akhir dukungan pada 31 Desember 2025. Kami menyarankan Anda bermigrasi ke AWS SDK for Java 2.xuntuk 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

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

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. DefaultAWSCredentialsProviderChain Rantai penyedia kredensyal default mencari kredensyal dalam urutan ini:

  1. Variabel lingkungan -AWS_ACCESS_KEY_ID, AWS_SECRET_KEY atauAWS_SECRET_ACCESS_KEY, danAWS_SESSION_TOKEN. AWS SDK untuk Java Menggunakan EnvironmentVariableCredentialsProviderkelas untuk memuat kredensyal ini.

  2. Properti sistem Java -aws.accessKeyId, aws.secretKey (tetapi tidakaws.secretAccessKey), danaws.sessionToken. AWS SDK untuk Java Kegunaan SystemPropertiesCredentialsProvideruntuk memuat kredensyal ini.

  3. Kredensyal Token Identitas Web dari lingkungan atau wadah.

  4. File profil kredensi default - biasanya terletak di ~/.aws/credentials (lokasi dapat bervariasi per platform), dan dibagikan oleh banyak AWS SDK dan oleh. AWS CLI AWS SDK untuk Java Kegunaan ProfileCredentialsProvideruntuk 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 kredensial, lihat Format File AWS Kredensial.

  5. Kredensyal kontainer Amazon ECS - dimuat dari Amazon ECS jika variabel lingkungan disetel. AWS_CONTAINER_CREDENTIALS_RELATIVE_URI AWS SDK untuk Java Kegunaan ContainerCredentialsProvideruntuk memuat kredensyal ini. Anda dapat menentukan alamat IP untuk nilai ini.

  6. Instance profile credentials - digunakan pada instans EC2, dan dikirimkan melalui layanan metadata. Amazon EC2 AWS SDK untuk Java Kegunaan InstanceProfileCredentialsProvideruntuk 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.

Tetapkan kredensyal sementara

Untuk dapat menggunakan kredensyal AWS sementara, mereka harus ditetapkan setidaknya di salah satu lokasi sebelumnya. Untuk informasi tentang menyetel kredensyal, lihat topik berikut:

Menetapkan profil kredensyal alternatif

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

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 kredenal untuk semua AWS SDK dan Alat yang didukung secara resmi (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

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

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

  • 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

Format file kredensyal

Dengan mengikuti petunjuk dalam pengaturan Dasar panduan ini, file kredensial 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, sepertimetadata_service_timeout, danmetadata_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 dalam Panduan AWS Command Line Interface Pengguna.

Memuat kredensyal

Setelah Anda menyetel kredenal sementara, SDK akan memuatnya dengan menggunakan rantai penyedia kredensi 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 kredensi atau rantai penyedia

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

Anda memberikan instance penyedia kredensial atau rantai penyedia ke pembuat klien yang mengambil AWSCredentialsProviderantarmuka sebagai masukan. 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. AWSCredentialsProvider

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

Secara eksplisit menentukan kredensyal sementara

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 BasicSessionCredentialskelas, dan berikan kunci AWS akses, kunci AWS rahasia, dan token AWS sesi yang akan digunakan SDK untuk koneksi.

  2. Buat AWSStaticCredentialsProviderdengan AWSCredentials objek.

  3. 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