Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Baca kredensi peran IAM di Amazon EC2
Anda dapat menggunakan peran IAM untuk mengelola kredensional sementara untuk aplikasi yang berjalan pada instans EC2 dan membuat AWS CLI atau permintaan API. AWS Cara ini lebih dianjurkan daripada menyimpan kunci akses dalam instans EC2. Untuk menetapkan AWS peran ke instans EC2 dan membuatnya tersedia untuk semua aplikasinya, Anda membuat profil instance yang dilampirkan ke instance. Profil instans berisi peran dan memungkinkan program yang berjalan di instans EC2 mendapatkan kredensial sementara. Untuk informasi selengkapnya, lihat Menggunakan peran IAM untuk memberikan izin ke aplikasi yang berjalan di instans Amazon EC2 dalam Panduan Pengguna IAM.
Topik ini memberikan informasi tentang cara mengatur aplikasi Java Anda agar berjalan pada instans EC2 dan mengaktifkan SDK for Java untuk IAM memperoleh kredensi peran.
Memperoleh kredensi peran IAM dari lingkungan
Jika aplikasi Anda membuat klien AWS layanan menggunakan metode (atau create
builder().build()
metode), SDK for Java menggunakan rantai penyedia kredensial default. Rantai penyedia kredensial default mencari lingkungan eksekusi untuk elemen konfigurasi yang dapat diperdagangkan SDK untuk kredenal sementara. Rantai penyedia kredensi defaultBagian ini menjelaskan proses pencarian lengkap.
Langkah terakhir dalam rantai penyedia default hanya tersedia ketika aplikasi Anda berjalan pada sebuah Amazon EC2 instance. Pada langkah ini, SDK menggunakan InstanceProfileCredentialsProvider
untuk membaca peran IAM yang ditentukan dalam profil instans EC2. SDK kemudian memperoleh kredensi sementara untuk peran IAM tersebut.
Meskipun kredensi ini bersifat sementara dan pada akhirnya akan kedaluwarsa, InstanceProfileCredentialsProvider
secara berkala menyegarkannya untuk Anda sehingga mereka terus mengizinkan akses ke. AWS
Memperoleh kredensi peran IAM secara terprogram
Sebagai alternatif dari rantai penyedia kredensial default yang pada akhirnya menggunakan InstanceProfileCredentialsProvider
on EC2, Anda dapat mengonfigurasi klien layanan secara eksplisit dengan file. InstanceProfileCredentialsProvider
Pendekatan ini ditunjukkan dalam cuplikan berikut.
S3Client s3 = S3Client.builder() .credentialsProvider(InstanceProfileCredentialsProvider.create()) .build();
Dapatkan kredensi peran IAM dengan aman
Secara default, instans EC2 menjalankan IMDS (Layanan Metadata Instans) yang memungkinkan SDK mengakses informasi seperti InstanceProfileCredentialsProvider
peran IAM yang telah dikonfigurasi. Instans EC2 menjalankan dua versi IMDS secara default:
-
Layanan Metadata Instans Versi 1 (IMDSv1) – metode permintaan/tanggapan
-
Layanan Metadata Instans Versi 2 (IMDSv2) - metode berorientasi sesi
IMDSv2 adalah pendekatan yang lebih aman daripada
Secara default, Java SDK pertama kali mencoba IMDSv2 untuk mendapatkan peran IAM, tetapi jika gagal, ia mencoba IMDSv1. Namun, karena IMDSv1 kurang aman, AWS merekomendasikan penggunaan IMDSv2 saja dan untuk menonaktifkan SDK dari mencoba IMDSv1.
Untuk menggunakan pendekatan yang lebih aman, nonaktifkan SDK dari penggunaan IMDSv1 dengan memberikan salah satu pengaturan berikut dengan nilai. true
-
Variabel lingkungan:
AWS_EC2_METADATA_V1_DISABLED
-
Properti sistem JVM: aws.
disableEc2MetadataV1
-
Pengaturan file konfigurasi bersama:
ec2_metadata_v1_disabled
Dengan salah satu pengaturan ini disetel ketrue
, SDK tidak memuat kredensi peran IMDS dengan menggunakan IMDSv1 jika panggilan IMDSv2 awal gagal.