Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan AWS Secrets Manager rahasia dalam AWS Lambda fungsi
Anda dapat menggunakan AWS Parameter dan Rahasia Lambda Ekstensi untuk mengambil dan menyimpan rahasia AWS Secrets Manager dalam fungsi Lambda tanpa menggunakan file. SDK Mengambil rahasia yang di-cache lebih cepat daripada mengambilnya dari Secrets Manager. Karena ada biaya untuk memanggil Secrets ManagerAPIs, menggunakan cache dapat mengurangi biaya Anda. Ekstensi dapat mengambil rahasia Secrets Manager dan parameter Parameter Store. Untuk informasi tentang Parameter Store, lihat Integrasi Parameter Store dengan ekstensi Lambda di AWS Systems Manager Panduan Pengguna.
Ekstensi Lambda adalah proses pendamping yang menambah kemampuan fungsi Lambda. Untuk informasi selengkapnya, lihat Ekstensi Lambda di Panduan Pengembang Lambda. Untuk informasi tentang penggunaan ekstensi dalam gambar kontainer, lihat Bekerja dengan lapisan Lambda dan ekstensi dalam gambar kontainerPARAMETERS_SECRETS_EXTENSION_LOG_LEVEL
kedebug
.
Untuk menyediakan cache dalam memori untuk parameter dan rahasia, ekstensi mengekspos HTTP titik akhir lokal, port localhost 2773, ke lingkungan Lambda. Anda dapat mengkonfigurasi port dengan mengatur variabel lingkunganPARAMETERS_SECRETS_EXTENSION_HTTP_PORT
.
Lambda membuat instance terpisah yang sesuai dengan tingkat konkurensi yang dibutuhkan fungsi Anda. Setiap instance diisolasi dan memelihara cache lokal sendiri dari data konfigurasi Anda. Untuk informasi selengkapnya tentang instans dan konkurensi Lambda, lihat Mengelola konkurensi untuk fungsi Lambda di Panduan Pengembang Lambda.
Untuk menambahkan ekstensiARM, Anda harus menggunakan arm64
arsitektur untuk fungsi Lambda Anda. Untuk informasi selengkapnya, lihat Arsitektur set instruksi Lambda di Panduan Pengembang Lambda. Ekstensi mendukung ARM di Wilayah berikut: Asia Pasifik (Mumbai), AS Timur (Ohio), Eropa (Irlandia), Eropa (Frankfurt), Eropa (Zurich), AS Timur (Virginia N.), Eropa (London), Eropa (Spanyol), Asia Pasifik (Tokyo), AS Barat (Oregon), Asia Pasifik (Singapura), Asia Pasifik (Hyderabad), dan Asia Pasifik (Sydney).
Ekstensi menggunakan AWS klien. Untuk informasi tentang mengonfigurasi AWS klien, lihat Referensi pengaturan di Panduan Referensi Alat AWS SDK dan Alat. Jika fungsi Lambda Anda berjalan di aVPC, Anda perlu membuat VPC endpoint sehingga ekstensi dapat melakukan panggilan ke Secrets Manager. Untuk informasi selengkapnya, lihat Menggunakan titik AWS Secrets Manager VPC akhir.
Izin yang diperlukan:
Peran eksekusi Lambda harus memiliki
secretsmanager:GetSecretValue
izin untuk rahasia.Jika rahasia dienkripsi dengan kunci yang dikelola pelanggan alih-alih Kunci yang dikelola AWS
aws/secretsmanager
, peran eksekusi juga memerlukankms:Decrypt
izin untuk kunci tersebutKMS.
Untuk menggunakan AWS Parameter dan Rahasia Ekstensi Lambda
-
Tambahkan AWS layer bernama AWS Parameter dan Rahasia Lambda Extension ke fungsi Anda. Untuk petunjuk, lihat Menambahkan lapisan ke fungsi di Panduan Pengembang Lambda. Jika Anda menggunakan AWS CLI untuk menambahkan lapisan, Anda memerlukan ekstensi. ARN Untuk daftarARNs, lihat AWS Parameter dan Rahasia Ekstensi Lambda ARNs di AWS Systems Manager Panduan Pengguna.
-
Berikan izin ke peran eksekusi Lambda untuk dapat mengakses rahasia:
-
secretsmanager:GetSecretValue
Izin untuk Rahasia Lihat Contoh: Izin untuk mengambil nilai rahasia individu. -
(Opsional) Jika rahasia dienkripsi dengan kunci yang dikelola pelanggan alih-alih Kunci yang dikelola AWS
aws/secretsmanager
, peran eksekusi juga memerlukankms:Decrypt
izin untuk kunci tersebutKMS. -
Anda dapat menggunakan Attribute Based Access Control (ABAC) dengan peran Lambda untuk memungkinkan akses yang lebih terperinci ke rahasia di akun. Untuk informasi selengkapnya, lihat Kontrol akses ke rahasia menggunakan kontrol akses berbasis atribut () ABAC .
-
-
Konfigurasikan cache dengan variabel lingkungan Lambda.
-
Untuk mengambil rahasia dari cache ekstensi, Anda harus terlebih dahulu menambahkan
X-AWS-Parameters-Secrets-Token
ke header permintaan. Setel token keAWS_SESSION_TOKEN
, yang disediakan oleh Lambda untuk semua fungsi yang berjalan. Menggunakan header ini menunjukkan bahwa penelepon berada dalam lingkungan Lambda.Contoh Python berikut menunjukkan bagaimana menambahkan header.
import os headers = {"X-Aws-Parameters-Secrets-Token": os.environ.get('AWS_SESSION_TOKEN')}
-
Untuk mengambil rahasia dalam fungsi Lambda, gunakan salah satu permintaan berikut HTTPGET:
-
Untuk mengambil rahasia, untuk
secretId
, menggunakan ARN atau nama rahasia.GET: /secretsmanager/get?secretId=
secretId
-
Untuk mengambil nilai rahasia sebelumnya atau versi tertentu dengan label pementasan, untuk
secretId
, gunakan ARN atau nama rahasia, dan untukversionStage
, gunakan label pementasan.GET: /secretsmanager/get?secretId=
secretId
&versionStage=AWSPREVIOUS
Untuk mengambil versi rahasia tertentu berdasarkan ID, untuk
secretId
, gunakan ARN atau nama rahasia, dan untukversionId
, gunakan ID versi.GET: /secretsmanager/get?secretId=
secretId
&versionId=versionId
contoh Mengambil rahasia (Python)
Contoh Python berikut menunjukkan bagaimana untuk mengambil rahasia dan mengurai hasil menggunakan.
json.loads
secrets_extension_endpoint = "http://localhost:" + \ secrets_extension_http_port + \ "/secretsmanager/get?secretId=" + \
<secret_name>
r = requests.get(secrets_extension_endpoint, headers=headers) secret = json.loads(r.text)["SecretString"] # load the Secrets Manager response into a Python dictionary, access the secret -
AWS Parameter dan Rahasia variabel lingkungan Ekstensi Lambda
Anda dapat mengkonfigurasi ekstensi dengan variabel lingkungan berikut.
Untuk informasi tentang cara menggunakan variabel lingkungan, lihat Menggunakan variabel lingkungan Lambda di Panduan Pengembang Lambda.
PARAMETERS_SECRETS_EXTENSION_CACHE_ENABLED
-
Setel ke true ke parameter cache dan rahasia. Setel ke false untuk tidak ada caching. Default adalah benar.
PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE
Jumlah maksimum rahasia dan parameter untuk cache. Harus berupa nilai dari 0 hingga 1000. Nilai 0 berarti tidak ada caching. Variabel ini diabaikan jika
SECRETS_MANAGER_TTL
keduanyaSSM_PARAMETER_STORE_TTL
dan 0. Defaultnya adalah 1000.PARAMETERS_SECRETS_EXTENSION_HTTP_PORT
Port untuk HTTP server lokal. Defaultnya adalah 2773.
PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL
-
Tingkat pencatatan ekstensi menyediakan:
debug
,,info
warn
,error
, ataunone
. Seteldebug
untuk melihat konfigurasi cache. Default-nya adalahinfo
. PARAMETERS_SECRETS_EXTENSION_MAX_CONNECTIONS
-
Jumlah maksimum koneksi untuk HTTP klien yang digunakan ekstensi untuk membuat permintaan ke Parameter Store atau Secrets Manager. Ini adalah konfigurasi per klien. Defaultnya adalah 3.
SECRETS_MANAGER_TIMEOUT_MILLIS
-
Batas waktu untuk permintaan ke Secrets Manager dalam milidetik. Nilai 0 berarti tidak ada batas waktu. Default-nya adalah 0.
SECRETS_MANAGER_TTL
-
TTLrahasia dalam cache dalam hitungan detik. Nilai 0 berarti tidak ada caching. Maksimumnya adalah 300 detik. Variabel ini diabaikan
PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE
jika 0. Defaultnya adalah 300 detik. SSM_PARAMETER_STORE_TIMEOUT_MILLIS
Batas waktu untuk permintaan ke Parameter Store dalam milidetik. Nilai 0 berarti tidak ada batas waktu. Default-nya adalah 0.
SSM_PARAMETER_STORE_TTL
TTLdari parameter dalam cache dalam hitungan detik. Nilai 0 berarti tidak ada caching. Maksimumnya adalah 300 detik. Variabel ini diabaikan
PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE
jika 0. Defaultnya adalah 300 detik.