View a markdown version of this page

Berikan kredensi sementara untuk 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.x 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.

Berikan kredensi sementara untuk AWS SDK untuk Java

Untuk membuat permintaan Amazon Web Services, Anda harus memberikan kredenSIAL AWS sementara AWS SDK untuk Java untuk digunakan saat memanggil layanan. Anda dapat melakukan ini dengan cara berikut:

  • Gunakan rantai penyedia kredensia default (disarankan).

  • Gunakan penyedia kredensia atau rantai penyedia tertentu (atau buat sendiri).

  • Berikan kredenSIAL sementara sendiri dalam kode.

Menggunakan Rantaian Penyedia Kredensia Default

Saat Anda menginisialisasi klien layanan baru tanpa memberikan argumen apa pun, AWS SDK untuk Java upaya untuk menemukan kredenSIAL sementara dengan menggunakan rantai penyedia kredensia default yang di implementasikan DefaultAWSCredentialsProviderChain oleh kelas. RanTAI penyedia kredenSIAL default mencari kredenSIAL dalam urutan ini:

  1. Variabel lingkungan -AWS_ACCESS_KEY_ID, AWS_SECRET_KEY atauAWS_SECRET_ACCESS_KEY, danAWS_SESSION_TOKEN. Menggunakan AWS SDK untuk Java EnvironmentVariableCredentialsProvider kelas untuk memuat kredenSIAL ini.

  2. Properti sistem Java -aws.accessKeyId, aws.secretKey (tapi tidakaws.secretAccessKey), danaws.sessionToken. Menggunakan AWS SDK untuk Java SystemPropertiesCredentialsProvider untuk memuat kredenSIAL ini.

  3. KredenSIAL 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 Menggunakan AWS SDK untuk Java ProfileCredentialsProvider untuk memuat kredenSIAL ini.

    Anda dapat membuat file kredenSIAL 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 kredensional, lihat Format AWS File Kredensi.

  5. KredenSIAL kontainer Amazon ECS - dimuat dari Amazon ECS jika variabel lingkungan AWS_CONTAINER_CREDENTIALS_RELATIVE_URI disetel. Menggunakan AWS SDK untuk Java ContainerCredentialsProvider untuk memuat kredenSIAL ini. Anda dapat menentukan alamat IP untuk nilai ini.

  6. Kredentif profil instans - digunakan pada instans EC2, dan dikirimkan melalui layanan Amazon EC2 metadata. Menggunakan AWS SDK untuk Java InstanceProfileCredentialsProvider untuk memuat kredenSIAL ini. Anda dapat menentukan alamat IP untuk nilai ini.

    catatan

    Kredentif profil instans hanya digunakan jika AWS_CONTAINER_CREDENTIALS_RELATIVE_URI tidak disetel. Untuk informasi selengkapnya, lihat EC2ContainerCredentialsProviderWrapper.

Tetapkan kredenSIAL sementara

Untuk dapat menggunakan kreden AWS SIAL sementara, kredenSIAL tersebut harus diatur setidaknya di salah satu lokasi sebelumnya. Untuk informasi tentang menyetel kredenSIAL, lihat topik berikut:

Mengatur profil kredenSIAL alternatif

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

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 menjadi My Profile.

export AWS_PROFILE="myProfile"

Pada Windows Anda akan menggunakan yang berikut ini.

set AWS_PROFILE="myProfile"

Menyet AWS_PROFILE el variabel lingkungan memengaruhi pemuatan kredensia 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 sebagai aws.profile gantinya.

catatan

Variabel lingkungan lebih diutamakan daripada properti sistem.

Menetapkan lokasi file kredenSIAL alternatif

Memu AWS SDK untuk Java at kredenSIAL AWS sementara secara otomatis dari lokasi file kredenSIAL default. Namun, Anda juga dapat menentukan lokasi dengan menyetel variabel AWS_CREDENTIAL_PROFILES_FILE lingkungan dengan path lengkap ke file kredenSIAL.

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

Untuk mengganti lokasi file kredensional default

  • Atur variabel AWS_CREDENTIAL_PROFILES_FILE lingkungan ke lokasi file AWS kredenSIAL 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 kredensional

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 persegi (misalnya,[default]), diikuti oleh bidang yang dapat dikonfigurasi dalam profil itu sebagai pasangan kunci-nilai. Anda dapat memiliki beberapa profil dalam 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 bidang yang tersedia, lihat Mengonfigurasi AWS Command Line Interface di Panduan AWS Command Line Interface Pengguna.

Muat kredenSIAL

Setelah Anda menetapkan kredenSIAL sementara, SDK memuatnya dengan menggunakan rantai penyedia kredensia default.

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

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

Tentukan penyedia kredensi atau rantai penyedia

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

Anda memberikan contoh penyedia kredenSIAL atau rantai penyedia ke pembuat klien yang mengambil AWSCredentialsProvider antarmuka sebagai input. Contoh berikut menunjukkan cara menggunakan kredenSIAL lingkungan secara khusus.

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

Untuk daftar lengkap penyedia kredensia AWS SDK untuk Java dan rantai penyedia yang disediakan, lihat Semua Kel as Pelaksanaan yang Dikenal di. AWSCredentialsProvider

catatan

Anda dapat menggunakan teknik ini untuk menyediakan penyedia kredensia atau rantai penyedia yang Anda buat dengan menggunakan penyedia kredensia Anda sendiri yang mengimplementasikan AWSCredentialsProvider antarmuka, atau dengan mensubklasifikasi kelas. AWSCredentialsProviderChain

Secara eksplisit menentukan kredenSIAL sementara

Jika rantai kredensi default atau penyedia atau rantai penyedia tertentu atau kustom tidak berfungsi untuk kode Anda, Anda dapat menetapkan kredenSIAL yang Anda berikan secara eksplisit. Jika Anda telah mengambil kredenSIAL sementara menggunakan AWS STS, gunakan metode ini untuk menentukan kredenSIAL untuk AWS akses.

  1. Buat instance BasicSessionCredentials kelas, dan berikan kunci AWS akses, kunci AWS rahasia, dan token AWS sesi yang akan digunakan SDK untuk koneksi.

  2. Buat AWSStaticCredentialsProvider dengan AWSCredentials objek.

  3. Konfigurasikan pembangun klien dengan AWSStaticCredentialsProvider dan membangun 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