Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan AWS Penyedia Kredensia Beban Kerja
Bagaimana AWS Penyedia KredenSIAL Beban Kerja berfungsi
Penyedia AWS Kredensi Beban Kerja (sebelumnya AWS Secrets Manager Agen) menyediakan layanan HTTP sisi klien yang membantu Anda menstandarkan cara Anda menggunakan rahasia dari Secrets Manager di seluruh lingkungan komputasi Anda. Anda dapat menggunakannya dengan layanan berikut:
-
AWS Lambda
-
Amazon Elastic Container Service
-
Layanan Amazon Elastic Kubernetes
-
Amazon Elastic Compute Cloud
Penye AWS dia KredenSIAL Beban Kerja mengambil dan menyimpan rahasia dalam memori, memungkinkan aplikasi Anda mendapatkan rahasia dari localhost alih-alih melakukan panggilan langsung ke Manajer Rahasia. Penyedia AWS Kredensi Beban Kerja hanya dapat membaca rahasia—tidak dapat memodifikasinya.
Penyedia AWS Kredensi Beban Kerja adalah sumber terbuka. Kode sumber, petunjuk instalasi, dan informasi rilis terbaru tersedia di GitHub
penting
Penyedia AWS KredenSIAL Beban Kerja menggunakan AWS kredenSIAL dari lingkungan Anda untuk memanggil Manajer Rahasia. Ini termasuk perlindungan terhadap Pemalsuan Permintaan Sisi Server (SSRF) untuk membantu meningkatkan keamanan rahasia. Penyedia AWS Kredensi Beban Kerja menggunakan pertukaran ML-KEM kunci pasca-kuantum sebagai pertukaran kunci prioritas tertinggi secara default.
Memahami AWS Caching Penyedia KredenSIAL Beban Kerja
Penyedia AWS Kredensi Beban Kerja menggunakan cache dalam memori yang disetel ulang saat Penyedia Kredensi Beban AWS Kerja dimulai ulang. Ini secara berkala menyegarkan nilai-nilai rahasia yang di-cache berdasarkan hal berikut:
-
Frekuensi refresh default (TTL) adalah 300 detik
-
Anda dapat memodifikasi TTL menggunakan file konfigurasi
-
Refresh terjadi saat Anda meminta rahasia setelah TTL kedaluwarsa
catatan
Penyedia AWS Kredensi Beban Kerja tidak menyertakan pembatalan cache. Jika rahasia berputar sebelum entri cache berakhir, Penyedia Kre AWS densi Beban Kerja mungkin mengembalikan nilai rahasia basi.
Penye AWS dia KredenSIAL Beban Kerja mengembalikan nilai rahasia dalam format yang sama dengan responsGetSecretValue. Nilai rahasia tidak dienkripsi dalam cache.
Topik
Unduh AWS Penyedia Kredensia Beban Kerja
Untuk mengunduh biner bawaan dari Penyedia Kreden AWS sifikasi Beban Kerja, gunakan tautan berikut. Rilis untuk Windows ditandatangani.
| Platform | Arsitektur | Unduh URL | Checksum () SHA-256 |
|---|---|---|---|
|
Linux |
x86-64 |
471c1978f8bf63a0aeefb425e974ac3c816c7e04feb302236512eea375160de4 |
|
|
Linux |
AArch64 |
8b09dc4e58b84379f580a9ae179940bcb3de0338421f638a43376bf73380ffb6 |
|
|
Windows |
x86-64 |
5fbdac4017e630556b94b90e5ed9ed11be69ac7a47e67655e20181ce990dbe12 |
Bangun AWS Penyedia KredenSIAL Beban Kerja dari sumber
Atau, Anda dapat membangun Penyedia Kreden AWS SIAL Beban Kerja dari sumber. Sebelum Anda mulai, pastikan Anda memiliki alat dan Rust alat pengembangan standar yang diinstal untuk platform Anda.
catatan
Membangun penyedia dengan fips fitur yang diaktifkan di macOS saat ini memerlukan solusi berikut:
-
Buat variabel lingkungan
SDKROOTyang disebut yang disetel ke hasil berjalanxcrun --show-sdk-path
Instal AWS Penyedia Kredensia Beban Kerja
Pilih lingkungan komputasi Anda dari opsi instalasi berikut.
Mengambil rahasia dengan AWS Penyedia Kredensia Beban Kerja
Untuk mengambil rahasia, panggil titik akhir Penyedia Kre AWS dentifikasi Beban Kerja lokal dengan nama rahasia atau ARN sebagai parameter kueri. Secara default, Penyedia AWS KredenSIAL Beban Kerja AWSCURRENT mengambil versi rahasia. Untuk mengambil versi yang berbeda, gunakan parameter versionStage atau versionId.
penting
Untuk membantu melindungi Penyedia AWS Kredensi Beban Kerja, Anda harus menyertakan header token SSRF sebagai bagian dari setiap permintaan:X-Aws-Parameters-Secrets-Token. Penye AWS dia Kredensi Beban Kerja menolak permintaan yang tidak memiliki header ini atau yang memiliki token SSRF yang tidak valid. Anda dapat menyesuaikan nama header SSRF diKonfigurasikan AWS Penyedia Kredensia Beban Kerja.
Izin yang diperlukan
Penyedia AWS Kredensi Beban AWS Kerja menggunakan SDK untuk Rust, yang menggunakan rantai penyedia AWS kredensia. Identitas kredentif IAM ini menentukan izin yang dimiliki Penyedia Kreden AWS SIAL Beban Kerja untuk mengambil rahasia.
-
secretsmanager:DescribeSecret -
secretsmanager:GetSecretValue
Untuk informasi selengkapnya tentang izin, lihat Referensi izin untuk AWS Secrets Manager.
penting
Setelah nilai rahasia ditarik ke Penyedia KredenSIAL AWS Beban Kerja, setiap pengguna dengan akses ke lingkungan komputasi dan token SSRF dapat mengakses rahasia dari cache Penyedia KredenSIAL B AWS eban Kerja. Untuk informasi selengkapnya, lihat Pertimbangan keamanan.
Contoh permintaan
Memahami parameter RefreshNow
Penyedia AWS Kredensi Beban Kerja menggunakan cache dalam memori untuk menyimpan nilai rahasia, yang disegarkan secara berkala. Secara default, penyegaran ini terjadi ketika Anda meminta rahasia setelah Time to Live (TTL) berakhir, biasanya setiap 300 detik. Namun, pendekatan ini terkadang dapat mengakibatkan nilai rahasia basi, terutama jika rahasia berputar sebelum entri cache berakhir.
Untuk mengatasi batasan ini, Penyedia Kre AWS densi Beban Kerja mendukung parameter yang di refreshNow panggil di URL. Anda dapat menggunakan parameter ini untuk memaksa penyegaran langsung nilai rahasia, melewati cache dan memastikan Anda memiliki informasi terbaru.
- Perilaku default (tanpa
refreshNow) -
-
Menggunakan nilai yang di-cache hingga TTL kedaluwarsa
-
Menyegarkan rahasia hanya setelah TTL (default 300 detik)
-
Dapat mengembalikan nilai basi jika rahasia berputar sebelum cache berakhir
-
- Perilaku dengan
refreshNow=true -
-
Melewati cache sepenuhnya
-
Mengambil nilai rahasia terbaru langsung dari Secrets Manager
-
Memperbarui cache dengan nilai baru dan mengatur ulang TTL
-
Memastikan Anda selalu mendapatkan nilai rahasia terbaru
-
Force-refresh nilai rahasia
penting
Nilai default refreshNow adalah false. Ketika disetel ketrue, itu mengganti TTL yang ditentukan dalam file konfigurasi Penyedia Kre AWS denSIAL Beban Kerja dan membuat panggilan API ke Manajer Rahasia.
Mengambil rahasia di seluruh akun dengan rantai peran
Rantaian peran memungkinkan Penyedia Kre AWS densi Beban Kerja untuk mengambil rahasia dari AWS akun lain dengan mengasumsikan peran IAM menggunakan. AWS STS AssumeRole Penyedia AWS Kredensi Beban Kerja membuat dan menyimpan klien caching terpisah untuk setiap peran unik ARN. Setiap klien peran mempertahankan cache independennya sendiri, sehingga rahasia yang sama diambil dengan peran yang berbeda memiliki entri cache terpisah.
Izin yang diperlukan
Untuk menggunakan rantai peran, Anda memerlukan yang berikut:
-
Kreden AWS tif lingkungan Penyedia Kredensia Beban Kerja harus memiliki
sts:AssumeRoleizin pada peran target ARN. -
Peran target harus memiliki
secretsmanager:GetSecretValuedansecretsmanager:DescribeSecretizin untuk rahasia yang ingin Anda akses. -
Kebijakan kepercayaan peran target harus mengizinkan identitas Penyedia Kre AWS dentif Beban Kerja untuk mengasumsinya.
Mengambil rahasia lintas akun
Sertakan parameter roleArn kueri dalam permintaan Anda ke Penyedia Kre AWS densi Beban Kerja untuk menentukan peran mana yang akan diambil untuk pengambilan rahasia.
Konfigurasi dan batasan rantai peran
Konfigurasikan rantai peran dengan max_roles opsi di file konfigurasi TOML Anda. Ini menetapkan jumlah maksimum peran yang diasumsikan secara simultan, dalam kisaran 1 hingga 20. Defaultnya adalah 20.
penting
Peran yang diasumsikan tidak diusir dari cache peran Penyedia AWS Kredensi Beban Kerja. Setelah jumlah maksimum peran tercapai, permintaan dengan ARN peran baru ditolak dengan 400 kesalahan hingga Penyedia KredenSIAL Beb AWS an Kerja dimulai ulang.
Tanggapan kesalahan untuk rantai peran
400-
roleArnFormat tidak valid atau jumlah maksimum peran yang diasumsikan telah tercapai. 403-
Pang AWS STS
AssumeRolegilan gagal. Verifikasi bahwa kebijakan kepercayaan peran target memungkinkan identitas Penyedia Kreden AWS tif Beban Kerja untuk mengasumsikannya.
Pre-fetch rahasia saat startup
Secara default, Penyedia Kre AWS densi Beban Kerja mengambil rahasia sesuai permintaan saat aplikasi Anda memintanya. Dengan pra-pengambilan, Penyedia AWS KredenSIAL Beban Kerja memuat rahasia yang ditentukan ke dalam cache saat dijalankan, sehingga aplikasi Anda dapat langsung mengaksesnya tanpa menunggu panggilan API pertama. Pre-fetching berjalan sebagai tugas latar belakang—Penyedia Kre AWS denSIAL Beban Kerja mulai menerima permintaan segera dan tidak memblokir penyelesaian pra-pengambilan.
Anda dapat menentukan rahasia untuk pra-pengambilan dengan dua cara:
-
Rahasia eksplisit — Daftar ID rahasia tertentu atau ARN.
-
Tag-based penemuan — Temukan rahasia dengan kunci tag. Penyedia AWS KredenSIAL Beban Kerja mengambil semua rahasia yang memiliki tag yang ditentukan.
Izin yang diperlukan
Selain izin standar untuk mengambil rahasia, pra-pengambilan memerlukan hal berikut:
-
secretsmanager:BatchGetSecretValue— Diperlukan untuk semua operasi pra-fetch. -
secretsmanager:ListSecrets— Diperlukan hanya saat menggunakan penemuan berbasis tag.
Konfigurasikan pra-pengambilan
Tambahkan [capabilities.secrets_manager.prefetch] bagian ke file konfigurasi TOML Anda. Pilihan berikut tersedia:
cache_buffer_ratio-
Fraksi maksimum cache untuk diisi per klien selama pra-fetch, dalam kisaran 0,1 hingga 1,0. Defaultnya adalah 0,8. Ketika batas buffer tercapai, Penyedia Kredensi B AWS eban Kerja menghentikan pra-pengambilan rahasia yang tersisa — tidak menghapus entri cache yang ada. Rahasia yang tidak dimuat selama pra-pengambilan masih tersedia sesuai permintaan.
max_jitter_seconds-
Penundaan acak dalam detik sebelum pra-pengambilan dimulai, dalam kisaran 0 hingga 10. Default-nya adalah 0. Gunakan ini untuk mencegah panggilan API seluruh armada yang disinkronkan saat beberapa penyedia memulai secara bersamaan.
contoh Pre-fetch konfigurasi dengan rahasia eksplisit
[capabilities.secrets_manager.prefetch] cache_buffer_ratio = 0.6 max_jitter_seconds = 5 secrets = [ { secret_id = "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-AbCdEf" }, { secret_id = "MyOtherSecret" }, ]
contoh Pre-fetch konfigurasi dengan penemuan berbasis tag
[capabilities.secrets_manager.prefetch] cache_buffer_ratio = 0.8 filter_tags = [ { key = "Environment" }, { key = "Team" }, ]
Anda juga dapat menggabungkan rahasia eksplisit dan penemuan berbasis tag dalam konfigurasi yang sama. Untuk pra-pengambilan lintas akun, tambahkan bidang. role_arn Untuk informasi selengkapnya, lihat Mengambil rahasia di seluruh akun dengan rantai peran.
contoh Pre-fetch konfigurasi dengan akses lintas akun
[capabilities.secrets_manager.prefetch] cache_buffer_ratio = 0.6 max_jitter_seconds = 5 secrets = [ { secret_id = "arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret-AbCdEf" }, { secret_id = "cross-account-secret", role_arn = "arn:aws:iam::987654321098:role/SecretAccessRole" }, ] filter_tags = [ { key = "Environment" }, { key = "Team", role_arn = "arn:aws:iam::987654321098:role/SecretAccessRole" }, ]
Konfigurasikan AWS Penyedia Kredensia Beban Kerja
Untuk mengubah konfigurasi Penyedia Kreden AWS SIAL Beban Kerja, buat file konfigurasi ./aws-workload-credentials-provider sm
start --config config.toml.
File konfigurasi mendukung format bersarang. Opsi Manajer Rahasia ditempatkan di bawah[capabilities.secrets_manager], dengan sub-bagian untuk cache dan pengaturan keamanan. Opsi pencatatan ditempatkan di bawah[logging].
contoh Contoh file konfigurasi bersarang
[logging] log_level = "INFO" log_to_file = true [capabilities.secrets_manager] enabled = true http_port = 2773 region = "us-east-1" path_prefix = "/v1/" max_conn = 800 max_roles = 20 [capabilities.secrets_manager.cache] ttl_seconds = 300 cache_size = 1000 [capabilities.secrets_manager.security] ssrf_headers = ["X-Aws-Parameters-Secrets-Token", "X-Vault-Token"] ssrf_env_variables = ["AWS_TOKEN", "AWS_SESSION_TOKEN", "AWS_CONTAINER_AUTHORIZATION_TOKEN"]
catatan
Tombol datar di tingkat root (misalnya,http_port = 2773) masih didukung untuk kompatibilitas mundur dengan file konfigurasi yang ada.
Opsi konfigurasi Manajer Rahasia
enabled-
Apakah kemampuan Manajer Rahasia aktif:
trueataufalse. Nilai default-nyatrue. http_port-
Port untuk server HTTP lokal, dalam kisaran 1024 hingga 65535. Defaultnya adalah 2773.
region-
Wil AWS ayah yang akan digunakan untuk permintaan. Jika tidak ada Wilayah yang ditentukan, Penyedia AWS Kredensi Beban Kerja menentukan Wilayah dari SDK. Untuk informasi selengkapnya, lihat Menentukan kredensi dan Wilayah default Anda di AWS SDK untuk Panduan Pengembang Rust.
path_prefix-
Awalan URI digunakan untuk menentukan apakah permintaan adalah permintaan berbasis jalur. Defaultnya adalah “/v1/”.
max_conn-
Jumlah maksimum koneksi dari klien HTTP yang diizinkan oleh Penyedia Kre AWS densi Beban Kerja, dalam kisaran 1 hingga 1000. Defaultnya adalah 800.
max_roles-
Jumlah maksimum peran IAM simultan untuk akses lintas akun, dalam kisaran 1 hingga 20. Defaultnya adalah 20. Untuk informasi selengkapnya, lihat Mengambil rahasia di seluruh akun dengan rantai peran.
Opsi cache ([capabilities.secrets_manager.cache])
ttl_seconds-
TTL dalam hitungan detik untuk item yang di-cache, dalam kisaran 0 hingga 3600. Defaultnya adalah 300. 0 menunjukkan bahwa tidak ada caching.
cache_size-
Jumlah maksimum rahasia yang dapat disimpan dalam cache, dalam kisaran 1 hingga 1000. Defaultnya adalah 1000.
Opsi keamanan ([capabilities.secrets_manager.security])
ssrf_headers-
Daftar nama header yang diperiksa oleh Penyedia AWS KredenSIAL Beban Kerja untuk token SSRF. Defaultnya adalah "X-Aws-Parameters-Secrets-Token, X-Vault-Token”.
ssrf_env_variables-
Daftar nama variabel lingkungan yang diperiksa Penyedia AWS KredenSIAL Beban Kerja dalam urutan berurutan untuk token SSRF. Variabel lingkungan dapat berisi token atau referensi ke file token seperti di:
AWS_TOKEN=file:///var/run/awssmatoken. Defaultnya adalah "AWS_TOKEN, AWS_SESSION_TOKEN, AWS_CONTAINER_AUTHORIZATION_TOKEN”.
Opsi pencatatan ([logging])
log_level-
Tingkat detail yang dilaporkan dalam log untuk Penyedia KredenSIAL B AWS eban Kerja: DEBUG, INFO, WARN, ERROR, atau NONE. Defaultnya adalah INFO.
log_to_file-
Apakah akan masuk ke file atau stdout/stderr:
trueataufalse. Nilai default-nyatrue.
Fitur opsional
Penyedia AWS Kredensi Beban Kerja dapat dibangun dengan fitur opsional dengan meneruskan --features bendera kecargo build. Fitur yang tersedia adalah:
Membangun fitur
prefer-post-quantum-
Membuat
X25519MLKEM768algoritma pertukaran kunci prioritas tertinggi. Jika tidak, tersedia tetapi bukan prioritas tertinggi.X25519MLKEM768adalah algoritma pertukaran kunci pasca-kuantum hibrida yang aman. fips-
Membatasi suite sandi yang digunakan oleh penyedia hanya FIPS-approved untuk cipher.
Pencatatan log
- Pencatatan lokal
-
Penye AWS dia KredenSIAL Beban Kerja mencatat kesalahan secara lokal ke file
logs/secrets_manager_provider.logatau stdout/stderr tergantung pada variabellog_to_filekonfigurasi. Saat aplikasi Anda memanggil Penye AWS dia Kredensi Beban Kerja untuk mendapatkan rahasia, panggilan tersebut muncul di log lokal. Mereka tidak muncul di CloudTrail log. - Rotasi log
-
Penye AWS dia Kredensi Beban Kerja membuat file log baru ketika file mencapai 10 MB, dan menyimpan hingga lima file log total.
- AWS pencatatan layanan
-
Log tidak masuk ke Manajer Rahasia, CloudTrail, atau CloudWatch. Permintaan untuk mendapatkan rahasia dari Penyedia AWS Kredensi Beban Kerja tidak muncul di log tersebut. Ketika Penye AWS dia Kredensia Beban Kerja membuat panggilan ke Manajer Rahasia untuk mendapatkan rahasia, panggilan itu direkam CloudTrail dengan string agen pengguna yang berisi
aws-workload-credentials-provider.
Anda dapat mengonfigurasi opsi logging diKonfigurasikan AWS Penyedia Kredensia Beban Kerja.
Pertimbangan keamanan
- Domain kepercayaan
-
Untuk arsitektur penyedia lokal, domain kepercayaan adalah tempat titik akhir penyedia dan token SSRF dapat diakses, yang biasanya merupakan seluruh host. Domain kepercayaan untuk Penyedia Kre AWS denSIAL Beban Kerja harus sesuai dengan domain tempat kredenSIAL Manajer Rahasia tersedia untuk mempertahankan postur keamanan yang sama. Misalnya, di Amazon EC2 domain kepercayaan untuk Penyedia Kreden AWS SIAL Beban Kerja akan sama dengan domain kredenSIAL saat menggunakan peran untuk Amazon EC2.
penting
Aplikasi sadar keamanan yang belum menggunakan solusi berbasis penyedia dengan kredenSIAL Manajer Rahasia yang terkunci ke aplikasi harus mempertimbangkan untuk menggunakan AWS SDK khusus bahasa atau solusi caching. Untuk informasi selengkapnya, lihat M endapatkan rahasia.