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-*" } ] }
catatan

Kebijakan sebelumnya mengizinkan ssm:GetParameters tetapi tidak memungkinkan tindakan pengambilan lainnya. Parameter Storemengotorisasi setiap operasi pengambilan terhadap tindakan IAMnya sendiri, sehingga mengizinkan atau menolak satu tindakan tidak memengaruhi yang lain. Sebelum Anda mengandalkan kebijakan untuk membatasi parameter mana yang dapat dibaca oleh kepala sekolah, lihat Bagaimana Penyimpanan Parameter mengotorisasi pengambilan parameter danMembatasi akses ke parameter dan jalur tertentu.

penting

Parameter Storemengotor GetParametersByPath isasi operasi terhadap jalur yang Anda tentukan dalam permintaan, bukan terhadap setiap parameter yang dikembalikan operasi. Seorang kepala sekolah yang diizinkan GetParametersByPath untuk memanggil jalur /a menerima setiap parameter di bawah jalur itu, termasuk/a/b. Ini benar bahkan jika kebijakan yang sama secara eksplisit menolak akses /a/b untuk tindakan lain.

Untuk mencegah parameter dikembalikan olehGetParametersByPath, tolak ssm:GetParametersByPath tindakan pada setiap jalur leluhur yang dapat menyertakan parameter dalam hasilnya. Misalnya, untuk /a/b mencegah dikembalikan, tolak ssm:GetParametersByPath untuk keduanya /a dan/.

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.

penting

Karena setiap operasi diotorisasi terhadap tindakan IAMnya sendiri, menolak tindakan tunggal tidak mencegah prinsipal mengambil parameter yang sama melalui operasi lain. Misalnya, menyangkal ssm:GetParameter saja tidak berpengaruh padassm:GetParameters,ssm:GetParameterHistory, ataussm:GetParametersByPath. Selalu menyangkal setiap tindakan yang dapat mengembalikan nilai. Untuk deskripsi lengkap tentang perilaku ini, lihatBagaimana Penyimpanan Parameter mengotorisasi pengambilan parameter.

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. Mem kms:Decrypt batasi kunci yang dikelola pelanggan mencegah dekripsi SecureString nilai melalui operasi pengambilan apa pun. Untuk informasi selengkapnya, lihat Membatasi dekripsi nilai SecureString parameter.

Keempat nama tindakan pengambilan dimulai denganGetParameter, jadi entri tunggal ssm:GetParameter* mencakupssm:GetParameter,, ssm:GetParametersssm:GetParameterHistory, danssm:GetParametersByPath. Contoh berikut menggunakan pola ini untuk menolak keempat tindakan untuk semua parameter dimulai denganprod-*.

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

Dalam contoh sebelumnya, penolakan aktif hanya ssm:GetParametersByPath berlaku untuk panggilan yang meminta pencocokan jalurprod-*. Itu tidak mencegah prod-* parameter dikembalikan oleh panggilan yang meminta jalur leluhur. Untuk menutup celah itu, tol ssm:GetParametersByPath ak juga di jalur leluhur. Untuk informasi selengkapnya, lihat Membatasi akses ke parameter dan jalur tertentu.

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 GetParametersByPath namun diberikan izin untuk GetParameterHistory, mereka dapat melihat parameter saat ini, termasuk parameter SecureString, menggunakan GetParameterHistory.

Perilaku yang sama berlaku untuk penghapusan. ssm:DeleteParametersdiotorisasi secara independen darissm:DeleteParameter, jadi menyangkal saja ssm:DeleteParameter tidak mencegah prinsipal menghapus parameter dengan DeleteParameters operasi. Tolak kedua tindakan, atau gunakan polanyassm:DeleteParameter*.

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 Anda, 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 System 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" ] } ] }