

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

# Pengaturan Penyimpanan Parameter
<a name="parameter-store-setting-up"></a>

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.

**Topics**
+ [Mengelola akses ke Penyimpanan Parameter parameter menggunakan kebijakan IAM](#sysman-paramstore-access)
+ [Memilih tingkatan parameter di Penyimpanan Parameter](parameter-store-advanced-parameters.md)
+ [Mengelola Penyimpanan Parameter throughput](parameter-store-throughput.md)
+ [Menyiapkan notifikasi atau memicu tindakan berdasarkan Penyimpanan Parameter peristiwa](sysman-paramstore-cwe.md)

## Mengelola akses ke Penyimpanan Parameter parameter menggunakan kebijakan IAM
<a name="sysman-paramstore-access"></a>

 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](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html) | 
| Ambil satu parameter | ssm:GetParameter | [GetParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html) | 
| Ambil beberapa parameter bernama | ssm:GetParameters | [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html) | 
| Ambil parameter di bawah jalur | ssm:GetParametersByPath | [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html) | 
| Melihat metadata parameter | ssm:DescribeParameters | [DescribeParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeParameters.html) | 
| Lihat riwayat versi parameter | ssm:GetParameterHistory | [GetParameterHistory](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameterHistory.html) | 
| Hapus satu parameter | ssm:DeleteParameter | [DeleteParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DeleteParameter.html) | 
| Hapus beberapa parameter | ssm:DeleteParameters | [DeleteParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DeleteParameters.html) | 

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 dengan`prod-*`.

------
#### [ 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](ps-retrieval-authorization.md) dan[Membatasi akses ke parameter dan jalur tertentu](ps-restrict-parameter-access.md).

**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 oleh`GetParametersByPath`, 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
<a name="sysman-paramstore-deny-permissions"></a>

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 pada`ssm:GetParameters`,`ssm:GetParameterHistory`, atau`ssm:GetParametersByPath`. Selalu menyangkal setiap tindakan yang dapat mengembalikan nilai. Untuk deskripsi lengkap tentang perilaku ini, lihat[Bagaimana Penyimpanan Parameter mengotorisasi pengambilan parameter](ps-retrieval-authorization.md).

**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](ps-restrict-decryption.md).

Keempat nama tindakan pengambilan dimulai dengan`GetParameter`, jadi entri tunggal `ssm:GetParameter*` mencakup`ssm:GetParameter`,, `ssm:GetParameters``ssm:GetParameterHistory`, dan`ssm:GetParametersByPath`. Contoh berikut menggunakan pola ini untuk menolak keempat tindakan untuk semua parameter dimulai dengan`prod-*`.

------
#### [ 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 jalur`prod-*`. 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](ps-restrict-parameter-access.md).

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:DeleteParameters`diotorisasi secara independen dari`ssm:DeleteParameter`, jadi menyangkal saja `ssm:DeleteParameter` tidak mencegah prinsipal menghapus parameter dengan `DeleteParameters` operasi. Tolak kedua tindakan, atau gunakan polanya`ssm:DeleteParameter*`.

### Mengenkripsi dan mendekripsi parameter menggunakan AWS KMS keys
<a name="ps-kms-permissions"></a>

Parameter Store`SecureString`parameter 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 ](https://docs.aws.amazon.com/kms/latest/developerguide/)*.

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 ](https://console.aws.amazon.com/kms/home#/kms/defaultKeys)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:
+ [Logika evaluasi kebijakan ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) dalam Panduan * Pengguna IAM *
+ [Menggunakan kebijakan kunci dalam AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html) dalam *Panduan Developer AWS Key Management Service *
+ [Melihat CloudTrail acara dengan riwayat acara ](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html) di Panduan *AWS CloudTrail Pengguna *

### Mengizinkan node terkelola untuk mengakses parameter tertentu
<a name="sysman-paramstore-access-inst"></a>

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 dengan`prod-`. 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](systems-manager-setting-up-ec2.md).

------
#### [ 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"
            ]
        }
    ]
}
```

------