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 SDK. Mengambil rahasia yang di-cache lebih cepat daripada mengambilnya dari Secrets Manager. Karena ada biaya untuk memanggil Secrets Manager API, 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 titik akhir HTTP 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 ekstensi untuk ARM, Anda harus menggunakan arm64
arsitektur untuk fungsi Lambda Anda. Untuk informasi selengkapnya, lihat Arsitektur set instruksi Lambda di Panduan Pengembang Lambda. Ekstensi ini 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 AWS SDK dan Panduan Referensi Alat. Jika fungsi Lambda Anda berjalan di VPC, Anda perlu membuat titik akhir VPC sehingga ekstensi dapat melakukan panggilan ke Secrets Manager. Untuk informasi selengkapnya, lihat Menggunakan titik akhir AWS Secrets Manager VPC.
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 KMS.
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 layer, Anda memerlukan ARN ekstensi. Untuk daftar ARN, lihat AWS Parameter dan Rahasia Lambda Extension ARN 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 KMS. -
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 Contoh: Kontrol akses ke rahasia menggunakan tag dan Contoh: Batasi akses ke identitas dengan tag yang cocok dengan tag rahasia.
-
-
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 HTTP GET berikut:
-
Untuk mengambil rahasia, untuk
secretId
, gunakan 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, danversionId
untuk, 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 tanpa 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 server HTTP 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 klien HTTP 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
-
TTL rahasia dalam cache dalam hitungan detik. Nilai 0 berarti tidak ada caching. Maksimumnya adalah 300 detik. Variabel ini diabaikan
PARAMETERS_SECRETS_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
TTL parameter dalam cache dalam hitungan detik. Nilai 0 berarti tidak ada caching. Maksimumnya adalah 300 detik. Variabel ini diabaikan
PARAMETERS_SECRETS_CACHE_SIZE
jika 0. Defaultnya adalah 300 detik.