View a markdown version of this page

Pengaturan Penyimpanan Parameter - AWS Systems Manager

• AWS Systems Manager CloudWatch Dasbor tidak akan lagi tersedia setelah 30 April 2026. Pelanggan dapat terus menggunakan CloudWatch konsol Amazon untuk melihat, membuat, dan mengelola dasbor Amazon CloudWatch mereka, seperti yang mereka lakukan hari ini. Untuk informasi selengkapnya, lihat dokumentasi CloudWatch Dasbor Amazon.

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

Pengaturan Penyimpanan Parameter

Sebelum menyiapkan parameter diParameter Store, konfigurasikan kebijakan AWS Identity and Access Management (IAM) yang memberikan izin kepada prinsipal di akun Anda untuk melakukan tindakan yang Anda tentukan.

Di bagian ini, Anda mempelajari cara mengonfigurasi kebijakan ini secara manual menggunakan konsol IAM, dan cara menetapkannya ke pengguna dan grup pengguna. Anda juga dapat membuat dan menetapkan kebijakan untuk mengontrol tindakan parameter mana yang dapat dijalankan pada node terkelola.

Bagian ini juga menjelaskan cara membuat EventBridge aturan Amazon yang memungkinkan Anda menerima pemberitahuan tentang perubahan parameter Manajer Sistem. Anda dapat menggunakan EventBridge aturan untuk memanggil tindakan lain AWS berdasarkan perubahan diParameter Store.

Mengelola akses ke Penyimpanan Parameter parameter menggunakan kebijakan IAM

Prinsip IAM yang mengakses AWS Systems Manager parameter harus memiliki izin untuk melakukan tindakan SSM yang diperlukan. Prinsipal dapat berupa pengguna IAM, peran IAM, profil instans Amazon EC2, peran eksekusi Lambda, peran tugas Amazon ECS, peran CodeBuild layanan, atau peran layanan lainnya. AWS

Tabel berikut menjelaskan izin IAM yang diperlukan untuk Parameter Store tindakan yang berbeda.

Tindakan Hak istimewa IAM yang diperlukan Informasi referensi
Membuat atau memperbarui parameter ssm:PutParameter PutParameter
Ambil satu parameter ssm:GetParameter GetParameter
Ambil beberapa parameter bernama ssm:GetParameters GetParameters
Ambil parameter di bawah jalur ssm:GetParametersByPath GetParametersByPath
Melihat metadata parameter ssm:DescribeParameters DescribeParameters
Lihat riwayat versi parameter ssm:GetParameterHistory GetParameterHistory
Hapus satu parameter ssm:DeleteParameter DeleteParameter
Hapus beberapa parameter ssm:DeleteParameters DeleteParameters

Saat menggunakan kebijakan IAM untuk memberikan akses ke parameter Manajer Sistem, sebaiknya buat dan menggunakan kebijakan IAM yang membatasi. Misalnya, kebijakan berikut memungkinkan prinsipal untuk memanggil operasi DescribeParameters dan GetParameters API untuk kumpulan sumber daya terbatas. Kepala sekolah dapat memperoleh informasi tentang dan menggunakan semua parameter yang dimulai denganprod-*.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:DescribeParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*" } ] }
penting

Jika pengguna memiliki akses ke sebuah jalur, maka pengguna dapat mengakses semua tingkat pada jalur tersebut. Misalnya, jika pengguna memiliki izin untuk mengakses jalur /a, maka pengguna juga bisa mengakses /a/b. Bahkan jika prinsipal secara eksplisit ditolak aksesnya di IAM untuk parameter/a/b, mereka masih dapat memanggil operasi GetParametersByPath API secara rekursif untuk /a dan melihat. /a/b

Untuk administrator tepercaya, Anda dapat memberikan akses ke semua operasi API parameter Systems Manager dengan menggunakan kebijakan yang mirip dengan contoh berikut. Kebijakan ini memberikan pengguna akses penuh ke semua parameter produksi yang diawali dengan dbserver-prod-*.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:DeleteParameter", "ssm:GetParameterHistory", "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter", "ssm:DeleteParameters" ], "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/dbserver-prod-*" }, { "Effect": "Allow", "Action": "ssm:DescribeParameters", "Resource": "*" } ] }

Menolak izin

Setiap API bersifat unik dan memiliki operasi dan izin yang berbeda yang dapat Anda izinkan atau tolak secara individual. Penolakan eksplisit dalam kebijakan apa pun akan menimpa izin yang diberikan.

catatan

Kunci default AWS Key Management Service (AWS KMS) memiliki Decrypt izin untuk semua prinsipal IAM di dalam. Akun AWS Jika Anda ingin tingkat akses yang berbeda ke SecureString parameter di akun Anda, kami tidak menyarankan Anda menggunakan kunci default.

Jika Anda ingin semua operasi API yang mengambil nilai parameter untuk memiliki perilaku yang sama, maka Anda dapat menggunakan pola seperti GetParameter* dalam sebuah kebijakan. Contoh berikut menunjukkan cara menolak GetParameter, GetParameters, GetParameterHistory, dan GetParametersByPath untuk semua parameter yang diawali dengan prod-*.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ssm:GetParameter*" ], "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*" } ] }

Contoh berikut menunjukkan cara menolak beberapa perintah sambil mengizinkan pengguna untuk melakukan perintah lain pada semua parameter yang diawali dengan prod-*.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ssm:PutParameter", "ssm:DeleteParameter", "ssm:DeleteParameters", "ssm:DescribeParameters" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter", "ssm:GetParameterHistory" ], "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*" } ] }
catatan

Riwayat parameter mencakup semua versi parameter, termasuk yang saat ini digunakan. Oleh karena itu, jika pengguna ditolak izin untuk GetParameter, GetParameters, dan GetParameterByPath namun diberikan izin untuk GetParameterHistory, mereka dapat melihat parameter saat ini, termasuk parameter SecureString, menggunakan GetParameterHistory.

Mengenkripsi dan mendekripsi parameter menggunakan AWS KMS keys

Parameter StoreSecureStringparameter menggunakan AWS KMS kunci untuk enkripsi. AWS KMS mengenkripsi nilai dengan menggunakan kunci Kunci yang dikelola AWS atau kunci yang dikelola pelanggan. Untuk informasi selengkapnya tentang AWS KMS dan AWS KMS key, lihat Panduan Peng AWS Key Management Service embang .

Semua pengguna dalam akun pelanggan memiliki akses ke kunci terkel AWS ola default. Anda dapat menemukan Nama Sumber Daya Amazon (ARN) dari kunci default di AWS KMS konsol pada halaman kunci AWS terkelola. Kunci default diidentifikasi dengan aws/ssm di kolom Alias. Anda mungkin ingin menggunakan kunci default untuk mengenkripsi SecureString parameter sambil mencegah pengguna bekerja dengan SecureString parameter. Dalam hal ini, kebijakan IAM harus secara eksplisit menolak akses ke kunci default, seperti yang ditunjukkan dalam contoh kebijakan berikut.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/abcd1234-ab12-cd34-ef56-abcdeEXAMPLE" ] } ] }

Saat menggunakan kunci yang dikelola pelanggan, kebijakan IAM yang memberikan akses utama ke parameter atau jalur parameter harus memberikan kms:Encrypt izin eksplisit untuk kunci tersebut. Misalnya, kebijakan berikut memungkinkan prinsipal untuk membuat, memperbarui, dan melihat SecureString parameter yang dimulai dengan prod- Wilayah AWS dan yang ditentukan Akun AWS.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter", "ssm:GetParameter", "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-12345EXAMPLE" ] } ] }
catatan

Iz kms:GenerateDataKey in diperlukan untuk membuat parameter lanjutan terenkripsi menggunakan kunci yang dikelola pelanggan yang ditentukan.

Jika Anda memerlukan kontrol akses yang halus atas SecureString parameter di akun Anda, gunakan kunci yang dikelola pelanggan untuk melindungi dan membatasi akses ke parameter ini. Kami juga merekomendasikan penggunaan AWS CloudTrail untuk memantau aktivitas SecureString parameter.

Untuk informasi selengkapnya, lihat topik berikut:

Mengizinkan node terkelola untuk mengakses parameter tertentu

Untuk mengontrol Parameter Store parameter mana yang dapat diambil oleh node terkelola, Anda dapat melampirkan kebijakan IAM ke peran instance. Jika Anda memilih jenis SecureString parameter saat Anda membuat parameter, Manajer Sistem menggunakan AWS KMS untuk mengenkripsi nilai parameter. Anda dapat melihatnya Kunci yang dikelola AWS dengan menjalankan perintah berikut dari AWS CLI.

aws kms describe-key --key-id alias/aws/ssm

Contoh berikut memungkinkan node untuk mendapatkan nilai parameter hanya untuk parameter yang dimulai denganprod-. Jika parameter adalah SecureString parameter, maka node mendekripsi string menggunakan AWS KMS.

catatan

Kebijakan instans, seperti dalam contoh berikut, ditugaskan untuk peran instans tersebut dalam IAM. Untuk informasi lebih lanjut tentang mengkonfigurasi akses ke fitur Systems Manager, termasuk cara menetapkan kebijakan untuk pengguna dan instans, lihat Mengelola instans EC2 dengan Systems Manager.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters" ], "Resource": [ "arn:aws:ssm:us-east-1:111122223333:parameter/prod-*" ] }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/4914ec06-e888-4ea5-a371-5b88eEXAMPLE" ] } ] }