Baca kredensi IAM peran di Amazon EC2 - AWS SDK for Java 2.x

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

Baca kredensi IAM peran di Amazon EC2

Anda dapat menggunakan IAM peran untuk mengelola kredensional sementara untuk aplikasi yang berjalan pada EC2 instance dan membuat AWS CLI atau AWS API permintaan. Ini lebih baik untuk menyimpan kunci akses dalam EC2 instance. Untuk menetapkan AWS peran ke EC2 instance dan membuatnya tersedia untuk semua aplikasinya, Anda membuat profil instans yang dilampirkan ke instance. Profil instance berisi peran dan memungkinkan program yang berjalan pada EC2 instance untuk mendapatkan kredensi sementara. Untuk informasi selengkapnya, lihat Menggunakan IAM peran untuk memberikan izin ke aplikasi yang berjalan di EC2 instans Amazon di IAMPanduan Pengguna.

Topik ini memberikan informasi tentang cara mengatur aplikasi Java Anda agar berjalan pada sebuah EC2 instance dan memungkinkan Java SDK untuk memperoleh kredensi IAM peran.

Memperoleh kredensi IAM peran dari lingkungan

Jika aplikasi Anda membuat klien AWS layanan dengan menggunakan create metode (atau builder().build() metode), SDK for Java menggunakan rantai penyedia kredensi default. Rantai penyedia kredensial default mencari lingkungan eksekusi untuk elemen konfigurasi yang SDK dapat diperdagangkan dengan 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 IAM peran yang ditentukan dalam profil EC2 instance. SDKKemudian memperoleh kredensi sementara untuk peran itu. IAM

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 IAM peran secara terprogram

Sebagai alternatif dari rantai penyedia kredensi default yang pada akhirnya menggunakan InstanceProfileCredentialsProvider onEC2, 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 kredenal IAM peran dengan aman

Secara default, EC2 instance berjalan IMDS(Layanan Metadata Instance) yang memungkinkan SDK's InstanceProfileCredentialsProvider mengakses informasi seperti IAM peran yang telah dikonfigurasi. EC2instance menjalankan dua versi secara IMDS default:

  • Layanan Metadata Instance Versi 1 (IMDSv1) — metode permintaan/respons

  • Instance Metadata Service Version 2 (IMDSv2) — metode yang berorientasi pada sesi

IMDSv2adalah pendekatan yang lebih aman daripadaIMDSv1.

Secara default, Java SDK pertama kali IMDSv2 mencoba untuk mendapatkan IAM peran, tetapi jika itu gagal, ia mencobaIMDSv1. Namun, IMDSv1 karena kurang aman, AWS merekomendasikan penggunaan IMDSv2 hanya dan untuk menonaktifkan SDK dari mencobaIMDSv1.

Untuk menggunakan pendekatan yang lebih aman, nonaktifkan SDK dari penggunaan IMDSv1 dengan memberikan salah satu pengaturan berikut dengan nilaitrue.

  • Variabel lingkungan: AWS_EC2_METADATA_V1_DISABLED

  • JVMproperti sistem: aws. disableEc2MetadataV1

  • Pengaturan file konfigurasi bersama: ec2_metadata_v1_disabled

Dengan salah satu pengaturan ini disetel ketrue, SDK tidak memuat kredenal IMDS peran dengan menggunakan IMDSv1 jika IMDSv2 panggilan awal gagal.