

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

# Buat kebijakan dan pengguna IAM
<a name="tutorial-stock-data-kplkcl2-iam"></a>

Praktik terbaik keamanan untuk AWS mendikte penggunaan izin halus untuk mengontrol akses ke sumber daya yang berbeda. AWS Identity and Access Management (IAM) memungkinkan Anda untuk mengelola pengguna dan izin pengguna di. AWS[Kebijakan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html) secara eksplisit mencantumkan tindakan yang diizinkan dan sumber daya tempat tindakan tersebut berlaku.

Berikut ini adalah izin minimum yang umumnya diperlukan untuk produsen dan konsumen Kinesis Data Streams.


**Produser**  

| Tindakan | Sumber daya | Tujuan | 
| --- | --- | --- | 
| DescribeStream, DescribeStreamSummary, DescribeStreamConsumer | Aliran data Kinesis | Sebelum mencoba membaca catatan, konsumen memeriksa apakah aliran data ada, apakah aktif, dan apakah pecahan terkandung dalam aliran data. | 
| SubscribeToShard, RegisterStreamConsumer | Aliran data Kinesis | Berlangganan dan mendaftarkan konsumen ke pecahan. | 
| PutRecord, PutRecords | Aliran data Kinesis | Menulis catatan ke Kinesis Data Streams. | 


**Konsumen**  

| **Tindakan** | **Sumber Daya** | **Tujuan** | 
| --- | --- | --- | 
| DescribeStream | Aliran data Kinesis | Sebelum mencoba membaca catatan, konsumen memeriksa apakah aliran data ada, apakah aktif, dan apakah pecahan terkandung dalam aliran data. | 
| GetRecords, GetShardIterator  | Aliran data Kinesis | Membaca catatan dari pecahan. | 
| CreateTable, DescribeTable, GetItem, PutItem, Scan, UpdateItem | Tabel Amazon DynamoDB | Jika konsumen dikembangkan menggunakan Kinesis Client Library (KCL) (baik versi 1.x atau 2.x), ia memerlukan izin ke tabel DynamoDB untuk melacak status pemrosesan aplikasi. | 
| DeleteItem | Tabel Amazon DynamoDB | Untuk saat konsumen melakukan split/merge operasi pada pecahan Data Streams Kinesis. | 
| PutMetricData |  CloudWatch Log Amazon | KCL juga mengunggah metrik ke CloudWatch, yang berguna untuk memantau aplikasi. | 

Untuk tutorial ini, Anda akan membuat kebijakan IAM tunggal yang memberikan semua izin sebelumnya. Dalam produksi, Anda mungkin ingin membuat dua kebijakan, satu untuk produsen dan satu untuk konsumen.

**Untuk membuat kebijakan IAM**

1. Temukan Nama Sumber Daya Amazon (ARN) untuk aliran data baru yang Anda buat di langkah sebelumnya. **Anda dapat menemukan ARN ini terdaftar sebagai Stream **ARN** di bagian atas tab Detail.** Format ARN adalah sebagai berikut:

   ```
   arn:aws:kinesis:{{region}}:{{account}}:stream/{{name}}
   ```  
*region*  
Kode AWS Wilayah; misalnya,`us-west-2`. Untuk informasi selengkapnya, lihat [Konsep Wilayah dan Zona Ketersediaan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-regions-availability-zones).  
*akun*  
ID AWS akun, seperti yang ditunjukkan pada [Pengaturan Akun](https://console.aws.amazon.com/billing/home?#/account).  
*name*  
Nama aliran data yang Anda buat pada langkah sebelumnya, yaitu. `StockTradeStream`

1. Tentukan ARN untuk tabel DynamoDB yang akan digunakan oleh konsumen (dan akan dibuat oleh contoh konsumen pertama). Itu harus dalam format berikut:

   ```
   arn:aws:dynamodb:{{region}}:{{account}}:table/{{name}}
   ```

   Region dan ID akun identik dengan nilai dalam ARN aliran data yang Anda gunakan untuk tutorial ini, tetapi *namanya adalah nama* tabel DynamoDB yang dibuat dan digunakan oleh aplikasi konsumen. KCL menggunakan nama aplikasi sebagai nama tabel. Pada langkah ini, gunakan `StockTradesProcessor` untuk nama tabel DynamoDB, karena itu adalah nama aplikasi yang digunakan dalam langkah-langkah selanjutnya dalam tutorial ini.

1. Di konsol IAM, di **Kebijakan** ([https://console.aws.amazon.com/iam/home \#policies](https://console.aws.amazon.com/iam/home#policies)), pilih **Buat kebijakan**. Jika ini adalah pertama kalinya Anda bekerja dengan kebijakan IAM, pilih **Mulai**, **Buat Kebijakan**.

1. Pilih **Pilih** di samping **Policy Generator**.

1. Pilih **Amazon Kinesis sebagai layanannya**. AWS 

1. Pilih`DescribeStream`,`GetShardIterator`,`GetRecords`,`PutRecord`, dan `PutRecords` sebagai tindakan yang diizinkan.

1. Masukkan ARN dari aliran data yang Anda gunakan dalam tutorial ini.

1. Gunakan **Tambah Pernyataan** untuk masing-masing hal berikut:    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/streams/latest/dev/tutorial-stock-data-kplkcl2-iam.html)

   Tanda bintang (`*`) yang digunakan saat menentukan ARN tidak diperlukan. Dalam hal ini, itu karena tidak ada sumber daya khusus CloudWatch di mana `PutMetricData` tindakan dipanggil.

1. Pilih **Langkah Selanjutnya.**

1. Ubah **Nama Kebijakan** menjadi`StockTradeStreamPolicy`, tinjau kode, dan pilih **Buat Kebijakan**.

Dokumen kebijakan yang dihasilkan akan terlihat seperti ini:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Stmt123",
            "Effect": "Allow",
            "Action": [
                "kinesis:DescribeStream",
                "kinesis:PutRecord",
                "kinesis:PutRecords",
                "kinesis:GetShardIterator",
                "kinesis:GetRecords",
                "kinesis:ListShards",
                "kinesis:DescribeStreamSummary",
                "kinesis:RegisterStreamConsumer"
            ],
            "Resource": [
                "arn:aws:kinesis:us-west-2:{{111122223333}}:stream/StockTradeStream"
            ]
        },
        {
            "Sid": "Stmt234",
            "Effect": "Allow",
            "Action": [
                "kinesis:SubscribeToShard",
                "kinesis:DescribeStreamConsumer"
            ],
            "Resource": [
                "arn:aws:kinesis:us-west-2:{{111122223333}}:stream/StockTradeStream/*"
            ]
        },
        {
            "Sid": "Stmt456",
            "Effect": "Allow",
            "Action": [
                "dynamodb:*"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-2:{{111122223333}}:table/StockTradesProcessor"
            ]
        },
        {
            "Sid": "Stmt789",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:PutMetricData"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

**Untuk membuat pengguna IAM**

1. Buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Pada halaman **Pengguna**, pilih **Tambah pengguna**.

1. Untuk **Nama pengguna**, ketik `StockTradeStreamUser`.

1. Untuk **jenis Access**, pilih **Akses terprogram**, lalu pilih **Berikutnya: Izin**.

1. Pilih **Lampirkan kebijakan yang sudah ada secara langsung**.

1. Cari berdasarkan nama untuk kebijakan yang Anda buat dalam prosedur sebelumnya (. `StockTradeStreamPolicy` Pilih kotak di sebelah kiri nama kebijakan, lalu pilih **Berikutnya: Tinjau**.

1. Tinjau detail dan ringkasan, lalu pilih **Buat pengguna**.

1. Salin **ID kunci Akses**, dan simpan secara pribadi. Di bawah **Kunci akses rahasia**, pilih **Tampilkan**, dan simpan kunci itu secara pribadi juga.

1. Rekatkan akses dan kunci rahasia ke file lokal di tempat aman yang hanya dapat Anda akses. Untuk aplikasi ini, buat file bernama ` ~/.aws/credentials` (dengan izin ketat). File harus dalam format berikut:

   ```
   [default]
   aws_access_key_id={{access key}}
   aws_secret_access_key={{secret access key}}
   ```

**Untuk melampirkan kebijakan IAM ke pengguna**

1. Di konsol IAM, buka [Kebijakan](https://console.aws.amazon.com/iam/home?#policies) dan pilih **Tindakan Kebijakan**. 

1. Pilih `StockTradeStreamPolicy` dan **Lampirkan**.

1. Pilih `StockTradeStreamUser` dan **Lampirkan Kebijakan**.

## Langkah selanjutnya
<a name="tutorial-stock-data-kplkcl2-iam-next"></a>

[Unduh dan buat kodenya](tutorial-stock-data-kplkcl2-download.md)