

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

# Keamanan di Amazon Kinesis Video Streams
<a name="security"></a>

Keamanan cloud di AWS adalah prioritas tertinggi. Sebagai AWS pelanggan, Anda akan mendapat manfaat dari pusat data dan arsitektur jaringan yang dibangun untuk memenuhi persyaratan organisasi yang paling sensitif terhadap keamanan.

Keamanan adalah tanggung jawab bersama antara Anda AWS dan Anda. [Model tanggung jawab bersama](https://aws.amazon.com/compliance/shared-responsibility-model/) menggambarkan hal ini sebagai keamanan *dari* cloud dan keamanan *di* cloud:
+ **Keamanan cloud** — AWS bertanggung jawab untuk melindungi infrastruktur yang menjalankan AWS layanan di AWS Cloud. AWS juga memberi Anda layanan yang dapat Anda gunakan dengan aman. Efektivitas keamanan kami diuji dan diverifikasi secara rutin oleh auditor pihak ketiga sebagai bagian dari [program kepatuhan AWS](https://aws.amazon.com/compliance/programs/). Untuk mempelajari tentang program kepatuhan yang berlaku untuk Kinesis Video Streams [AWS , lihat Layanan dalam Lingkup](https://aws.amazon.com/compliance/services-in-scope/) berdasarkan Program Kepatuhan.
+ **Keamanan di cloud** — Tanggung jawab Anda ditentukan oleh AWS layanan yang Anda gunakan. Anda juga bertanggung jawab atas faktor-faktor lain termasuk sensitivitas data, kebutuhan organisasi, serta undang-undang dan peraturan yang berlaku. 

Dokumentasi ini membantu Anda memahami cara menerapkan model tanggung jawab bersama saat menggunakan Kinesis Video Streams. Topik berikut menunjukkan cara mengonfigurasi Kinesis Video Streams untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga akan mempelajari cara menggunakan AWS layanan lain yang dapat membantu Anda memantau dan mengamankan sumber daya Kinesis Video Streams Anda. 

**Topics**
+ [Perlindungan data di Kinesis Video Streams](how-kms.md)
+ [Mengontrol akses ke sumber daya Kinesis Video Streams menggunakan IAM](how-iam.md)
+ [Mengontrol akses ke sumber daya Kinesis Video Streams menggunakan AWS IoT](how-iot.md)
+ [Validasi Kepatuhan untuk Amazon Kinesis Video Streams](akda-java-compliance.md)
+ [Ketahanan dalam Aliran Video Amazon Kinesis](disaster-recovery-resiliency.md)
+ [Keamanan infrastruktur di Kinesis Video Streams](infrastructure-security.md)
+ [Praktik keamanan terbaik untuk Kinesis Video Streams](security-best-practices.md)

# Perlindungan data di Kinesis Video Streams
<a name="how-kms"></a>

Anda dapat menggunakan enkripsi sisi server (SSE) menggunakan AWS Key Management Service kunci () untuk memenuhi persyaratan manajemen data yang ketat dengan mengenkripsi data Anda saat istirahat di Amazon Kinesis Video Streams.AWS KMS

**Topics**
+ [Apa itu enkripsi sisi server untuk Kinesis Video Streams?](#what-is-sse-akvs)
+ [Biaya, Wilayah, dan pertimbangan kinerja](#costs-performance-akvs)
+ [Bagaimana cara memulai dengan enkripsi sisi server?](#getting-started-with-sse-akvs)
+ [Membuat dan menggunakan kunci yang dikelola pelanggan](#creating-using-sse-master-keys-akvs)
+ [Izin untuk menggunakan kunci yang dikelola pelanggan](#permissions-user-key-KMS-akvs)

## Apa itu enkripsi sisi server untuk Kinesis Video Streams?
<a name="what-is-sse-akvs"></a>

Enkripsi sisi server adalah fitur di Kinesis Video Streams yang secara otomatis mengenkripsi data sebelum disimpan saat istirahat menggunakan kunci yang Anda tentukan. AWS KMS Data dienkripsi sebelum ditulis ke lapisan penyimpanan aliran Kinesis Video Streams, dan didekripsi setelah diambil dari penyimpanan. Akibatnya, data Anda selalu dienkripsi saat diam dalam layanan Kinesis Video Streams.

Dengan enkripsi sisi server, produsen dan konsumen aliran video Kinesis Anda tidak perlu mengelola kunci KMS atau operasi kriptografi. Jika retensi data diaktifkan, data Anda secara otomatis dienkripsi saat masuk dan keluar dari Kinesis Video Streams, sehingga data Anda saat istirahat dienkripsi. AWS KMS menyediakan semua kunci yang digunakan oleh fitur enkripsi sisi server. AWS KMS merampingkan penggunaan kunci KMS untuk Kinesis Video Streams yang dikelola AWS oleh, kunci yang ditentukan pengguna yang diimpor ke AWS KMS layanan. AWS KMS 

## Biaya, Wilayah, dan pertimbangan kinerja
<a name="costs-performance-akvs"></a>

Saat Anda menerapkan enkripsi sisi server, Anda tunduk pada penggunaan AWS KMS API dan biaya utama. Tidak seperti AWS KMS kunci khusus, kunci `aws/kinesisvideo` KMS default ditawarkan tanpa biaya. Namun, Anda tetap harus membayar biaya penggunaan API yang dikeluarkan Kinesis Video Streams atas nama Anda.

Biaya penggunaan API berlaku untuk setiap kunci KMS, termasuk yang khusus. Skala AWS KMS biaya dengan jumlah kredensyal pengguna yang Anda gunakan pada produsen data dan konsumen Anda karena setiap kredensi pengguna memerlukan panggilan API yang unik. AWS KMS

Berikut ini menjelaskan biaya berdasarkan sumber daya:

**Kunci**
+ Kunci KMS untuk Kinesis Video Streams yang dikelola AWS oleh (alias `aws/kinesisvideo` =) tidak dikenakan biaya.
+ Kunci KMS buatan pengguna dikenakan biaya. AWS KMS key Untuk informasi selengkapnya, silakan lihat [Harga AWS Key Management Service](https://aws.amazon.com/kms/pricing/#Keys).

### AWS KMS Penggunaan API
<a name="api-usage"></a>

Permintaan API untuk menghasilkan kunci enkripsi data baru atau untuk mengambil kunci enkripsi yang ada meningkat seiring dengan peningkatan lalu lintas, dan dikenakan biaya AWS KMS penggunaan. Untuk informasi selengkapnya, lihat [AWS Key Management Service Harga: Penggunaan](https://aws.amazon.com/kms/pricing/#Usage).

Kinesis Video Streams menghasilkan permintaan kunci bahkan ketika retensi disetel ke 0 (tidak ada retensi).

### Ketersediaan enkripsi sisi server menurut Wilayah
<a name="sse-regions-akvs"></a>

Enkripsi sisi server dari aliran video Kinesis tersedia di semua tempat Kinesis Video Wilayah AWS Streams tersedia.

## Bagaimana cara memulai dengan enkripsi sisi server?
<a name="getting-started-with-sse-akvs"></a>

Enkripsi sisi server selalu diaktifkan di Kinesis Video Streams. Jika kunci yang disediakan pengguna tidak ditentukan saat aliran dibuat, Kunci yang dikelola AWS (disediakan oleh Kinesis Video Streams) akan digunakan.

Kunci KMS yang disediakan pengguna harus ditetapkan ke aliran video Kinesis saat dibuat. Anda tidak dapat menetapkan kunci yang berbeda ke aliran menggunakan [UpdateStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_UpdateStream.html)API nanti.

Anda dapat menetapkan kunci KMS yang disediakan pengguna ke aliran video Kinesis dengan dua cara:
+ Saat membuat aliran video Kinesis di Konsol Manajemen AWS, tentukan kunci KMS di tab **Enkripsi** pada halaman **Buat aliran video baru**.
+ Saat membuat aliran video Kinesis menggunakan [CreateStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_CreateStream.html)API, tentukan ID kunci dalam parameter. `KmsKeyId`

## Membuat dan menggunakan kunci yang dikelola pelanggan
<a name="creating-using-sse-master-keys-akvs"></a>

Bagian ini menjelaskan cara membuat dan menggunakan kunci KMS Anda sendiri alih-alih menggunakan kunci yang dikelola oleh Amazon Kinesis Video Streams.

### Membuat kunci yang dikelola pelanggan
<a name="creating-sse-master-keys-akvs"></a>

Untuk informasi tentang cara membuat kunci Anda sendiri, lihat [Membuat Kunci](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html) di *Panduan AWS Key Management Service Pengembang*. Setelah Anda membuat kunci untuk akun Anda, layanan Kinesis Video Streams mengembalikan kunci ini **dalam daftar kunci terkelola Pelanggan**.

### Menggunakan kunci yang dikelola pelanggan
<a name="using-sse-master-keys-akvs"></a>

Setelah izin yang benar diterapkan ke konsumen, produsen, dan administrator Anda, Anda dapat menggunakan kunci KMS khusus di milik Anda sendiri Akun AWS atau yang lain. Akun AWS Semua kunci KMS di akun Anda muncul di daftar **kunci terkelola Pelanggan** di konsol.

Untuk menggunakan kunci KMS khusus yang terletak di akun lain, Anda harus memiliki izin untuk menggunakan kunci tersebut. Anda juga harus membuat aliran menggunakan `CreateStream` API. Anda tidak dapat menggunakan kunci KMS dari akun yang berbeda dalam aliran yang dibuat di konsol.

**catatan**  
Kunci KMS tidak diakses sampai `GetMedia` operasi `PutMedia` atau dilakukan. Ini memiliki hasil sebagai berikut:  
Jika kunci yang Anda tentukan tidak ada, `CreateStream` operasi berhasil, tetapi `PutMedia` `GetMedia` operasi pada aliran gagal.
Jika Anda menggunakan kunci yang disediakan (`aws/kinesisvideo`), kunci tidak ada di akun Anda sampai yang pertama `PutMedia` atau `GetMedia` operasi dilakukan.

## Izin untuk menggunakan kunci yang dikelola pelanggan
<a name="permissions-user-key-KMS-akvs"></a>

Sebelum Anda dapat menggunakan enkripsi sisi server dengan kunci yang dikelola pelanggan, Anda harus mengonfigurasi kebijakan kunci KMS untuk mengizinkan enkripsi aliran dan enkripsi serta dekripsi catatan aliran. Untuk contoh dan informasi selengkapnya tentang AWS KMS izin, lihat Izin [AWS KMS API: Tindakan dan Referensi Sumber Daya](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html). 

**catatan**  
Penggunaan kunci layanan default untuk enkripsi tidak memerlukan penerapan izin IAM khusus.

Sebelum Anda menggunakan kunci yang dikelola pelanggan, verifikasi bahwa produsen dan konsumen aliran video Kinesis Anda (prinsip IAM) adalah pengguna dalam kebijakan kunci default. AWS KMS Jika tidak, menulis dan membaca dari aliran akan gagal, yang pada akhirnya dapat mengakibatkan kehilangan data, pemrosesan tertunda, atau aplikasi yang macet. Anda dapat mengelola izin untuk kunci KMS menggunakan kebijakan IAM. Untuk informasi selengkapnya, lihat [Menggunakan Kebijakan IAM dengan AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html).

### Contoh izin produsen
<a name="example-producer-permissions-akvs"></a>

Produser streaming video Kinesis Anda harus memiliki izin: `kms:GenerateDataKey`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:GenerateDataKey"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesisvideo:PutMedia"
        ],
        "Resource": "arn:aws:kinesisvideo:*:123456789012:stream/MyStream/*"
    }
  ]
}
```

------

### Contoh Izin konsumen
<a name="example-consumer-permissions-akvs"></a>

Konsumen streaming video Kinesis Anda harus memiliki izin: `kms:Decrypt`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesisvideo:GetMedia"
        ],
        "Resource": "arn:aws:kinesisvideo:*:123456789012:stream/MyStream/*"
    }
  ]
}
```

------

# Mengontrol akses ke sumber daya Kinesis Video Streams menggunakan IAM
<a name="how-iam"></a>

Anda dapat menggunakan AWS Identity and Access Management (IAM) dengan Amazon Kinesis Video Streams, untuk mengontrol apakah pengguna di organisasi Anda dapat melakukan tugas menggunakan operasi API Kinesis Video Streams tertentu dan apakah mereka dapat menggunakan sumber daya tertentu. AWS 

Untuk informasi selengkapnya tentang IAM, lihat berikut ini:
+ [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/)
+ [Memulai dengan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)
+ [Panduan Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/)

**Topics**
+ [Sintaksis kebijakan](#policy-syntax)
+ [Tindakan untuk Kinesis Video Streams](#kinesis-using-iam-actions)
+ [Nama Sumber Daya Amazon (ARNs) untuk Kinesis Video Streams](#kinesis-using-iam-arn-format)
+ [Memberikan akses akun IAM lainnya ke aliran video Kinesis](#how-iam-crossaccount)
+ [Contoh kebijakan untuk Kinesis Video Streams](#how-iam-policies)

## Sintaksis kebijakan
<a name="policy-syntax"></a>

 kebijakan IAM adalah dokumen JSON yang terdiri dari satu atau beberapa pernyataan. Setiap pernyataan memiliki struktur sebagai berikut:

```
{
  "Statement":[{
    "Effect":"effect",
    "Action":"action",
    "Resource":"arn",
    "Condition":{
      "condition":{
        "key":"value"
        }
      }
    }
  ]
}
```

Ada berbagai elemen yang membentuk pernyataan:
+ **Efek** — *Efeknya* bisa `Allow` atau`Deny`. Secara default, pengguna tidak memiliki izin untuk menggunakan sumber daya dan tindakan API, sehingga semua permintaan akan ditolak. izin eksplisit akan menggantikan izin default. penolakan eksplisit akan menggantikan izin apa pun.
+ **Tindakan** — *Tindakan adalah tindakan* API spesifik yang Anda berikan atau tolak izinnya.
+ **Sumber daya** — Sumber daya yang dipengaruhi oleh tindakan. Untuk menentukan sumber daya dalam pernyataan, Anda harus menggunakan Nama Sumber Daya Amazon (ARN).
+ **Kondisi** - Kondisi bersifat opsional. Syarat-syarat ini dapat digunakan untuk mengendalikan kapan kebijakan Anda berlaku.

Saat Anda membuat dan mengelola kebijakan IAM, kami menyarankan Anda menggunakan [IAM Policy Generator dan IAM Policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-generator) [Simulator](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html).

## Tindakan untuk Kinesis Video Streams
<a name="kinesis-using-iam-actions"></a>

Dalam pernyataan kebijakan IAM, Anda dapat menentukan tindakan API apa pun dari layanan apa pun yang mendukung IAM. Untuk Kinesis Video Streams, gunakan awalan berikut dengan nama aksi API:. `kinesisvideo:` Misalnya:`kinesisvideo:CreateStream`,`kinesisvideo:ListStreams`, dan`kinesisvideo:DescribeStream`.

Untuk menetapkan beberapa tindakan dalam satu pernyataan, pisahkan tindakan-tindakan tersebut menggunakan koma seperti berikut:

```
"Action": ["kinesisvideo:action1", "kinesisvideo:action2"]
```

Anda juga dapat menentukan beberapa tindakan menggunakan wildcard. Misalnya, Anda dapat menentukan semua tindakan yang namanya dimulai dengan kata “Dapatkan” sebagai berikut:

```
"Action": "kinesisvideo:Get*"
```

Untuk menentukan semua operasi Kinesis Video Streams, gunakan wildcard asterisk (\$1) sebagai berikut:

```
"Action": "kinesisvideo:*"
```

Untuk daftar lengkap tindakan API Kinesis Video Streams, [https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Reference.html](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Reference.html).

## Nama Sumber Daya Amazon (ARNs) untuk Kinesis Video Streams
<a name="kinesis-using-iam-arn-format"></a>

Setiap pernyataan kebijakan IAM berlaku untuk sumber daya yang Anda tentukan dengan menggunakan ARNs.

Gunakan format sumber daya ARN berikut untuk Kinesis Video Streams:

```
arn:aws:kinesisvideo:region:account-id:stream/stream-name/code
```

Contoh:

```
"Resource": arn:aws:kinesisvideo:*:111122223333:stream/my-stream/0123456789012
```

Anda bisa mendapatkan ARN dari aliran menggunakan. [DescribeStream](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html)

## Memberikan akses akun IAM lainnya ke aliran video Kinesis
<a name="how-iam-crossaccount"></a>

Anda mungkin perlu memberikan izin ke akun IAM lain untuk melakukan operasi pada aliran di Kinesis Video Streams. Ikhtisar berikut menjelaskan langkah-langkah umum untuk memberikan akses ke aliran video di seluruh akun:

1. Dapatkan ID akun 12 digit dari akun yang ingin Anda berikan izin untuk melakukan operasi pada sumber daya aliran yang dibuat di akun Anda. 

   **Contoh:** Pada langkah-langkah berikut, kami akan menggunakan 111111111111 sebagai ID akun untuk akun yang ingin Anda berikan izin, dan 999999999999 sebagai ID untuk Kinesis Video Streams

1. Buat kebijakan terkelola IAM di akun yang memiliki aliran (99999999999999) yang memungkinkan tingkat akses yang ingin Anda berikan. 

   **Kebijakan sampel:**

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kinesisvideo:GetDataEndpoint",
                   "kinesisvideo:DescribeStream",
                   "kinesisvideo:PutMedia"
               ],
               "Resource": "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179"
           }
       ]
   }
   ```

------

   Untuk contoh kebijakan lain untuk sumber daya Kinesis Video Streams[Contoh kebijakan](#how-iam-policies), lihat di bagian berikutnya.

1. Buat peran di akun yang memiliki aliran (99999999999999), dan tentukan akun yang ingin Anda berikan izin (11111111111111). Ini akan menambahkan entitas tepercaya ke peran tersebut. 

   **Contoh kebijakan tepercaya:**

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111111111111:root"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   Lampirkan kebijakan yang Anda buat di langkah sebelumnya ke peran ini.

   Anda sekarang telah membuat peran di akun 999999999999 yang memiliki izin untuk operasi seperti`DescribeStream`,`GetDataEndpoint`, dan pada sumber daya aliran ARN `PutMedia` dalam kebijakan terkelola. Peran baru ini juga mempercayai akun lain, 111111111111, untuk mengambil peran ini. 
**penting**  
Catat peran ARN, Anda akan membutuhkannya di langkah berikutnya.

1. Buat kebijakan terkelola di akun lain, 111111111111, yang memungkinkan `AssumeRole` tindakan pada peran yang Anda buat di akun 99999999999999 pada langkah sebelumnya. Anda harus menyebutkan peran ARN dari langkah sebelumnya. 

   **Kebijakan sampel:**

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRole",
           "Resource": "arn:aws:iam::999999999999:role/CustomRoleName"
       }
   }
   ```

------

1. Lampirkan kebijakan yang dibuat pada langkah sebelumnya ke entitas IAM, seperti peran atau pengguna di akun 111111111111. Pengguna ini sekarang memiliki izin untuk mengambil peran `CustomRoleName` di akun 999999999999. 

   Crendentials pengguna ini memanggil AWS STS `AssumeRole` API untuk mendapatkan kredensyal sesi, yang selanjutnya digunakan untuk memanggil Kinesis Video APIs Streams pada aliran yang dibuat di akun 99999999999999.

   ```
   aws sts assume-role --role-arn "arn:aws:iam::999999999999:role/CustomRoleName" --role-session-name "kvs-cross-account-assume-role"
   {
       "Credentials": {
           "AccessKeyId": "",
           "SecretAccessKey": "",
           "SessionToken": "",
           "Expiration": ""
       },
       "AssumedRoleUser": {
           "AssumedRoleId": "",
           "Arn": ""
       }
   }
   ```

1. Tetapkan kunci akses, kunci rahasia, dan kredensyal sesi berdasarkan set sebelumnya di lingkungan.

   ```
   set AWS_ACCESS_KEY_ID=
   set AWS_SECRET_ACCESS_KEY=
   set AWS_SESSION_TOKEN=
   ```

1. Jalankan Kinesis APIs Video Streams untuk mendeskripsikan dan mendapatkan titik akhir data untuk aliran di akun 999999999999.

   ```
   aws kinesisvideo describe-stream --stream-arn "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179"
   {
       "StreamInfo": {
           "StreamName": "custom-stream-name",
           "StreamARN": "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179",
           "KmsKeyId": "arn:aws:kms:us-west-2:999999999999:alias/aws/kinesisvideo",
           "Version": "abcd",
           "Status": "ACTIVE",
           "CreationTime": "2018-02-19T10:56:58.179000+00:00",
           "DataRetentionInHours": 24
       }
   }
   
   aws kinesisvideo get-data-endpoint --stream-arn "arn:aws:kinesisvideo:us-west-2:999999999999:stream/custom-stream-name/1613732218179" --api-name "PUT_MEDIA"
   {
       "DataEndpoint": "https://s-b12345.kinesisvideo.us-west-2.amazonaws.com"
   }
   ```

Untuk step-by-step petunjuk umum tentang pemberian akses lintas akun, lihat [Mendelegasikan Akses di Seluruh Akun AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html) Menggunakan Peran IAM.

## Contoh kebijakan untuk Kinesis Video Streams
<a name="how-iam-policies"></a>

Contoh kebijakan berikut menunjukkan bagaimana Anda dapat mengontrol akses pengguna ke Kinesis Video Streams

**Example 1: Izinkan pengguna mendapatkan data dari aliran video Kinesis apa pun**  
Kebijakan ini memungkinkan pengguna atau grup untuk melakukan`DescribeStream`,,, `GetDataEndpoint` `GetMedia``ListStreams`, dan `ListTagsForStream` operasi pada aliran video Kinesis apa pun. Kebijakan ini sesuai untuk pengguna yang bisa mendapatkan data dari streaming video apa pun.     
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:Describe*",
                "kinesisvideo:Get*",
                "kinesisvideo:List*"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example 2: Izinkan pengguna membuat aliran video Kinesis dan menulis data ke dalamnya**  
Kebijakan ini memungkinkan pengguna atau grup untuk melakukan `CreateStream` dan `PutMedia` operasi. Kebijakan ini sesuai untuk kamera keamanan yang dapat membuat aliran video dan mengirim data ke sana.  

```
{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:CreateStream",
                "kinesisvideo:PutMedia"            
            ],
            "Resource": "*"
        }
    ]
}
```

**Example 3: Izinkan pengguna akses penuh ke semua sumber daya Kinesis Video Streams**  
Kebijakan ini memungkinkan pengguna atau grup untuk melakukan operasi Kinesis Video Streams pada sumber daya apa pun. Kebijakan ini sesuai untuk administrator.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kinesisvideo:*",
            "Resource": "*"
        }
    ]
}
```

**Example 4: Izinkan pengguna untuk menulis data ke aliran video Kinesis tertentu**  
Kebijakan ini memungkinkan pengguna atau grup untuk menulis data ke aliran video tertentu. Kebijakan ini sesuai untuk perangkat yang dapat mengirim data ke satu aliran.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "kinesisvideo:PutMedia",
            "Resource": "arn:aws:kinesisvideo:us-west-2:123456789012:stream/your_stream/0123456789012"
        }
    ]
}
```

# Mengontrol akses ke sumber daya Kinesis Video Streams menggunakan AWS IoT
<a name="how-iot"></a>

Bagian ini menjelaskan cara mengaktifkan perangkat (misalnya, kamera) untuk mengirim data audio dan video ke satu aliran video Kinesis tertentu saja. Anda dapat melakukan ini dengan menggunakan penyedia AWS IoT kredensial dan peran AWS Identity and Access Management (IAM).

Perangkat dapat menggunakan sertifikat X.509 untuk terhubung AWS IoT menggunakan protokol otentikasi timbal balik TLS. Lainnya Layanan AWS (misalnya, Kinesis Video Streams) tidak mendukung otentikasi berbasis sertifikat, tetapi dapat AWS dipanggil menggunakan kredensyal dalam format Signature Version 4. AWS Algoritma Signature Version 4 biasanya mengharuskan penelepon untuk memiliki ID kunci akses dan kunci akses rahasia. AWS IoT memiliki penyedia kredensyal yang memungkinkan Anda menggunakan sertifikat X.509 bawaan sebagai identitas perangkat unik untuk mengautentikasi AWS permintaan (misalnya, permintaan ke Kinesis Video Streams). Ini menghilangkan kebutuhan untuk menyimpan ID kunci akses dan kunci akses rahasia di perangkat Anda. 

Penyedia kredensyal mengautentikasi klien (dalam hal ini, SDK Kinesis Video Streams yang berjalan di kamera yang ingin Anda kirim data ke aliran video) menggunakan sertifikat X.509 dan mengeluarkan token keamanan hak istimewa terbatas sementara. Anda dapat menggunakan token untuk menandatangani dan mengautentikasi AWS permintaan apa pun (dalam hal ini, panggilan ke Kinesis Video Streams). Untuk informasi selengkapnya, lihat [Mengotorisasi Panggilan Langsung ke AWS Layanan](https://docs.aws.amazon.com//iot/latest/developerguide/authorizing-direct-aws.html).

Cara mengautentikasi permintaan kamera Anda ke Kinesis Video Streams ini mengharuskan Anda membuat dan mengonfigurasi peran IAM dan melampirkan kebijakan IAM yang sesuai ke peran tersebut sehingga penyedia kredensyal dapat mengambil peran AWS IoT tersebut atas nama Anda. 

Untuk informasi selengkapnya AWS IoT, lihat [AWS IoT Core Dokumentasi](https://docs.aws.amazon.com/iot/?id=docs_gateway). Untuk informasi selengkapnya tentang tag IAM, lihat [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/).

**Topics**
+ [AWS IoT ThingName sebagai nama aliran](#how-iot-thingnamestreamname)
+ [AWS IoT CertificateId sebagai nama aliran](#how-iot-iotcertstreamname)
+ [Gunakan AWS IoT kredensi untuk melakukan streaming ke nama aliran hard-code](#how-iot-hard-coded-stream)

## AWS IoT ThingName sebagai nama aliran
<a name="how-iot-thingnamestreamname"></a>

**Topics**
+ [Langkah 1: Buat tipe AWS IoT benda dan AWS IoT benda](#how-iot-create-thing-type)
+ [Langkah 2: Buat peran IAM untuk diasumsikan oleh AWS IoT](#how-iot-add-iot-policy)
+ [Langkah 3: Buat dan konfigurasikan sertifikat X.509](#how-iot-create-cert-keys)
+ [Langkah 4: Uji AWS IoT kredensialnya dengan aliran video Kinesis Anda](#how-iot-test-it)
+ [Langkah 5: Menyebarkan AWS IoT sertifikat dan kredensyal pada sistem file kamera Anda dan streaming data ke aliran video Anda](#how-iot-deploy)

### Langkah 1: Buat tipe AWS IoT benda dan AWS IoT benda
<a name="how-iot-create-thing-type"></a>

Dalam AWS IoT, sesuatu adalah representasi dari perangkat tertentu atau entitas logis. Dalam hal ini, AWS IoT sesuatu mewakili aliran video Kinesis Anda yang ingin Anda konfigurasikan kontrol akses tingkat sumber daya. Untuk membuat sesuatu, pertama, Anda harus membuat tipe AWS IoT benda. Anda dapat menggunakan tipe AWS IoT benda untuk menyimpan deskripsi dan informasi konfigurasi yang umum untuk semua hal yang terkait dengan jenis hal yang sama.

1. Contoh perintah berikut menciptakan tipe benda`kvs_example_camera`:

   ```
   aws --profile default iot create-thing-type --thing-type-name kvs_example_camera > iot-thing-type.json
   ```

1. Perintah contoh ini menciptakan `kvs_example_camera_stream` hal dari tipe `kvs_example_camera` benda:

   ```
   aws --profile default  iot create-thing --thing-name kvs_example_camera_stream --thing-type-name kvs_example_camera > iot-thing.json
   ```

### Langkah 2: Buat peran IAM untuk diasumsikan oleh AWS IoT
<a name="how-iot-add-iot-policy"></a>

Peran IAM mirip dengan pengguna, di mana peran adalah AWS identitas dengan kebijakan izin yang menentukan apa yang dapat dan tidak dapat dilakukan identitas. AWS Peran dapat diasumsikan oleh siapa saja yang membutuhkannya. Saat Anda mengambil peran, itu memberi Anda kredensyal keamanan sementara untuk sesi peran Anda.

Peran yang Anda buat dalam langkah ini dapat diasumsikan oleh AWS IoT untuk mendapatkan kredensyal sementara dari layanan token keamanan (STS) saat melakukan permintaan otorisasi kredensyal dari klien. Dalam hal ini, klien adalah Kinesis Video Streams SDK yang berjalan di kamera Anda. 

Lakukan langkah-langkah berikut untuk membuat dan mengonfigurasi peran IAM ini:

1. Buat peran IAM.

   Contoh perintah berikut menciptakan peran IAM yang disebut`KVSCameraCertificateBasedIAMRole`:

   ```
   aws --profile default iam create-role --role-name KVSCameraCertificateBasedIAMRole --assume-role-policy-document 'file://iam-policy-document.json' > iam-role.json
   ```

   Anda dapat menggunakan kebijakan kepercayaan JSON berikut untuk: `iam-policy-document.json`

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "credentials.iot.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. Selanjutnya, lampirkan kebijakan izin ke peran IAM yang sebelumnya Anda buat. Kebijakan izin ini memungkinkan kontrol akses selektif (subset operasi yang didukung) untuk sumber daya. AWS Dalam hal ini, AWS sumber daya adalah aliran video yang Anda ingin kamera Anda kirim data. Dengan kata lain, setelah semua langkah konfigurasi selesai, kamera ini akan dapat mengirim data hanya ke aliran video ini.

   ```
   aws --profile default iam put-role-policy --role-name KVSCameraCertificateBasedIAMRole --policy-name KVSCameraIAMPolicy --policy-document 'file://iam-permission-document.json' 
   ```

   Anda dapat menggunakan kebijakan IAM berikut JSON untuk: `iam-permission-document.json`

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kinesisvideo:DescribeStream",
                   "kinesisvideo:PutMedia",
                   "kinesisvideo:TagStream",
                   "kinesisvideo:GetDataEndpoint"
               ],
               "Resource": "arn:aws:kinesisvideo:*:*:stream/${credentials-iot:ThingName}/*"
           }
       ]
   }
   ```

------

   Perhatikan bahwa kebijakan ini mengotorisasi tindakan yang ditentukan hanya pada aliran video (AWS sumber daya) yang ditentukan oleh `(${credentials-iot:ThingName})` placeholder. Placeholder ini mengambil nilai atribut AWS IoT thing `ThingName` saat penyedia AWS IoT kredensyal mengirimkan nama aliran video dalam permintaan. 

1. Selanjutnya, buat Alias Peran untuk peran IAM Anda. Alias peran adalah model data alternatif yang menunjuk ke peran IAM. Permintaan penyedia AWS IoT kredensyal harus menyertakan alias peran untuk menunjukkan peran IAM mana yang harus diambil untuk mendapatkan kredensyal sementara dari STS.

   Perintah contoh berikut menciptakan alias peran yang disebut`KvsCameraIoTRoleAlias`,

   ```
   aws --profile default iot create-role-alias --role-alias KvsCameraIoTRoleAlias --role-arn $(jq --raw-output '.Role.Arn' iam-role.json) --credential-duration-seconds 3600 > iot-role-alias.json
   ```

1. Sekarang Anda dapat membuat kebijakan yang akan memungkinkan AWS IoT untuk mengambil peran dengan sertifikat (setelah dilampirkan) menggunakan alias peran. 

   Perintah contoh berikut membuat kebijakan untuk AWS IoT dipanggil`KvsCameraIoTPolicy`.

   ```
   aws --profile default iot create-policy --policy-name KvsCameraIoTPolicy --policy-document 'file://iot-policy-document.json'
   ```

   Anda dapat menggunakan perintah berikut untuk membuat `iot-policy-document.json` dokumen JSON:

   ```
   cat > iot-policy-document.json <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:AssumeRoleWithCertificate"
               ],
               "Resource": "$(jq --raw-output '.roleAliasArn' iot-role-alias.json)"
           }
       ]
   }
   EOF
   ```

### Langkah 3: Buat dan konfigurasikan sertifikat X.509
<a name="how-iot-create-cert-keys"></a>

Komunikasi antara perangkat (aliran video Anda) dan AWS IoT dilindungi melalui penggunaan sertifikat X.509. 

1. Buat sertifikat yang harus Anda lampirkan kebijakan untuk AWS IoT yang sebelumnya Anda buat.

   ```
   aws --profile default iot create-keys-and-certificate --set-as-active --certificate-pem-outfile certificate.pem --public-key-outfile public.pem.key --private-key-outfile private.pem.key > certificate
   ```

1. Lampirkan kebijakan untuk AWS IoT (`KvsCameraIoTPolicy`dibuat sebelumnya) ke sertifikat ini.

   ```
   aws --profile default iot attach-policy --policy-name KvsCameraIoTPolicy --target $(jq --raw-output '.certificateArn' certificate)
   ```

1. Lampirkan AWS IoT thing (`kvs_example_camera_stream`) Anda ke sertifikat yang baru saja Anda buat: 

   ```
   aws --profile default iot attach-thing-principal --thing-name kvs_example_camera_stream --principal $(jq --raw-output '.certificateArn' certificate)
   ```

1. Untuk mengotorisasi permintaan melalui penyedia AWS IoT kredensyal, Anda memerlukan titik akhir AWS IoT kredensyal, yang unik untuk ID Anda. Akun AWS Anda dapat menggunakan perintah berikut untuk mendapatkan titik akhir AWS IoT kredensialnya.

   ```
   aws --profile default iot describe-endpoint --endpoint-type iot:CredentialProvider --output text > iot-credential-provider.txt
   ```

1. Selain sertifikat X.509 yang dibuat sebelumnya, Anda juga harus memiliki sertifikat CA untuk membangun kepercayaan dengan layanan backend melalui TLS. Anda bisa mendapatkan sertifikat CA menggunakan perintah berikut:

   ```
   curl --silent 'https://www.amazontrust.com/repository/SFSRootCAG2.pem' --output cacert.pem
   ```

### Langkah 4: Uji AWS IoT kredensialnya dengan aliran video Kinesis Anda
<a name="how-iot-test-it"></a>

Sekarang Anda dapat menguji AWS IoT kredensi yang telah Anda atur sejauh ini. 

1. Pertama, buat aliran video Kinesis yang ingin Anda uji konfigurasi ini.
**penting**  
Buat streaming video dengan nama yang identik dengan nama AWS IoT benda yang Anda buat di langkah sebelumnya (`kvs_example_camera_stream`).

   ```
   aws kinesisvideo create-stream --data-retention-in-hours 24 --stream-name kvs_example_camera_stream
   ```

1. Selanjutnya, hubungi penyedia AWS IoT kredensi untuk mendapatkan kredensi sementara:

   ```
   curl --silent -H "x-amzn-iot-thingname:kvs_example_camera_stream" --cert certificate.pem --key private.pem.key https://IOT_GET_CREDENTIAL_ENDPOINT/role-aliases/KvsCameraIoTRoleAlias/credentials --cacert ./cacert.pem > token.json
   ```
**catatan**  
Anda dapat menggunakan perintah berikut untuk mendapatkan`IOT_GET_CREDENTIAL_ENDPOINT`:  

   ```
   IOT_GET_CREDENTIAL_ENDPOINT=`cat iot-credential-provider.txt`
   ```

   Output JSON berisi`accessKey`,`secretKey`, dan`sessionToken`, yang dapat Anda gunakan untuk mengakses Kinesis Video Streams.

1. Untuk pengujian, Anda dapat menggunakan kredensyal ini untuk menjalankan API Kinesis Video `DescribeStream` Streams untuk aliran video sampel. `kvs_example_camera_stream`

   ```
   AWS_ACCESS_KEY_ID=$(jq --raw-output '.credentials.accessKeyId' token.json) AWS_SECRET_ACCESS_KEY=$(jq --raw-output '.credentials.secretAccessKey' token.json) AWS_SESSION_TOKEN=$(jq --raw-output '.credentials.sessionToken' token.json) aws kinesisvideo describe-stream --stream-name kvs_example_camera_stream
   ```

### Langkah 5: Menyebarkan AWS IoT sertifikat dan kredensyal pada sistem file kamera Anda dan streaming data ke aliran video Anda
<a name="how-iot-deploy"></a>

**catatan**  
Langkah-langkah di bagian ini menjelaskan pengiriman media ke aliran video Kinesis dari kamera yang menggunakan. [Gunakan pustaka produser C \$1\$1](producer-sdk-cpp.md)

1. Salin sertifikat X.509, kunci pribadi, dan sertifikat CA yang dihasilkan pada langkah sebelumnya ke sistem file kamera Anda. Tentukan jalur tempat file ini disimpan, nama alias peran, dan titik akhir AWS IoT kredensyal untuk menjalankan `gst-launch-1.0` perintah atau aplikasi sampel Anda. 

1. Contoh perintah berikut menggunakan otorisasi AWS IoT sertifikat untuk mengirim video ke Kinesis Video Streams: 

   ```
   gst-launch-1.0 rtspsrc location=rtsp://YourCameraRtspUrl short-header=TRUE ! rtph264depay ! video/x-h264,format=avc,alignment=au ! h264parse ! kvssink stream-name="kvs_example_camera_stream" aws-region="YourAWSRegion" iot-certificate="iot-certificate,endpoint=credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com,cert-path=/path/to/certificate.pem,key-path=/path/to/private.pem.key,ca-path=/path/to/cacert.pem,role-aliases=KvsCameraIoTRoleAlias"
   ```

## AWS IoT CertificateId sebagai nama aliran
<a name="how-iot-iotcertstreamname"></a>

Untuk mewakili perangkat Anda (misalnya, kamera Anda) melalui AWS IoT sesuatu, tetapi mengotorisasi nama streaming yang berbeda, maka Anda dapat menggunakan AWS IoT `certificateId` atribut sebagai nama streaming dan memberikan izin Kinesis Video Streams pada streaming menggunakan. AWS IoT Langkah-langkah untuk mencapai ini mirip dengan yang diuraikan sebelumnya, dengan beberapa perubahan.
+ Ubah kebijakan izin ke peran IAM Anda (`iam-permission-document.json`) sebagai berikut:

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "kinesisvideo:DescribeStream",
                  "kinesisvideo:PutMedia",
                  "kinesisvideo:TagStream",
                  "kinesisvideo:GetDataEndpoint"
              ],
              "Resource": "arn:aws:kinesisvideo:*:*:stream/${credentials-iot:AwsCertificateId}/*" 
          }
      ]
  }
  ```

------
**catatan**  
Sumber daya ARN menggunakan ID sertifikat sebagai pengganti untuk nama aliran. Izin IAM akan berfungsi saat Anda menggunakan ID sertifikat sebagai nama aliran. Dapatkan ID sertifikat dari sertifikat sehingga Anda dapat menggunakannya sebagai nama aliran dalam mendeskripsikan panggilan API aliran berikut.  

  ```
  export CERTIFICATE_ID=`cat certificate | jq --raw-output '.certificateId'`
  ```
+ Verifikasi perubahan ini menggunakan perintah CLI Describe-stream Kinesis Video Streams:

  ```
  AWS_ACCESS_KEY_ID=$(jq --raw-output '.credentials.accessKeyId' token.json) AWS_SECRET_ACCESS_KEY=$(jq --raw-output '.credentials.secretAccessKey' token.json) AWS_SESSION_TOKEN=$(jq --raw-output '.credentials.sessionToken' token.json) aws kinesisvideo describe-stream --stream-name ${CERTIFICATE_ID}
  ```
+ Meneruskan CertificateId ke AWS IoT penyedia kredensyal dalam [contoh aplikasi di Kinesis Video Streams](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/samples/kvs_gstreamer_sample.cpp) C\$1\$1 SDK: 

  ```
  credential_provider = make_unique<IotCertCredentialProvider>(iot_get_credential_endpoint,
          cert_path,
          private_key_path,
          role_alias,
          ca_cert_path,
          certificateId);
  ```
**catatan**  
Perhatikan bahwa Anda meneruskan `thingname` ke penyedia AWS IoT kredensi. Anda dapat menggunakan `getenv` untuk meneruskan thingname ke aplikasi demo yang mirip dengan meneruskan atribut lainnya AWS IoT . Gunakan ID sertifikat sebagai nama aliran dalam parameter baris perintah saat Anda menjalankan aplikasi sampel.

## Gunakan AWS IoT kredensi untuk melakukan streaming ke nama aliran hard-code
<a name="how-iot-hard-coded-stream"></a>

Untuk merepresentasikan perangkat Anda (misalnya, kamera Anda) melalui AWS IoT sesuatu, tetapi mengotorisasi streaming ke aliran video Amazon Kinesis tertentu, berikan izin Amazon Kinesis Video Streams pada streaming menggunakan. AWS IoT Prosesnya mirip dengan bagian sebelumnya, dengan beberapa perubahan.

Ubah kebijakan izin ke peran IAM Anda (`iam-permission-document.json`) sebagai berikut:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kinesisvideo:DescribeStream",
                "kinesisvideo:PutMedia",
                "kinesisvideo:TagStream",
                "kinesisvideo:GetDataEndpoint"
            ],
            "Resource": "arn:aws:kinesisvideo:*:*:stream/YourStreamName/*" 
        }
    ]
}
```

------

Salin sertifikat X.509, kunci pribadi, dan sertifikat CA yang dihasilkan pada langkah sebelumnya ke sistem file kamera Anda. 

Tentukan jalur tempat file ini disimpan, nama alias peran, nama AWS IoT benda, dan titik akhir AWS IoT kredensyal untuk menjalankan `gst-launch-1.0` perintah atau aplikasi sampel Anda.

Perintah contoh berikut menggunakan otorisasi AWS IoT sertifikat untuk mengirim video ke Amazon Kinesis Video Streams:

```
gst-launch-1.0 rtspsrc location=rtsp://YourCameraRtspUrl short-header=TRUE ! rtph264depay ! video/x-h264,format=avc,alignment=au ! h264parse ! kvssink stream-name="YourStreamName" aws-region="YourAWSRegion" iot-certificate="iot-certificate,endpoint=credential-account-specific-prefix.credentials.iot.aws-region.amazonaws.com,cert-path=/path/to/certificate.pem,key-path=/path/to/private.pem.key,ca-path=/path/to/cacert.pem,role-aliases=KvsCameraIoTRoleAlias,iot-thing-name=YourThingName"
```

# Validasi Kepatuhan untuk Amazon Kinesis Video Streams
<a name="akda-java-compliance"></a>

Untuk mempelajari apakah an Layanan AWS berada dalam lingkup program kepatuhan tertentu, lihat [Layanan AWS di Lingkup oleh Program Kepatuhan Layanan AWS](https://aws.amazon.com/compliance/services-in-scope/) dan pilih program kepatuhan yang Anda minati. Untuk informasi umum, lihat [Program AWS Kepatuhan Program AWS](https://aws.amazon.com/compliance/programs/) .

Anda dapat mengunduh laporan audit pihak ketiga menggunakan AWS Artifact. Untuk informasi selengkapnya, lihat [Mengunduh Laporan di AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html) .

Tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS ditentukan oleh sensitivitas data Anda, tujuan kepatuhan perusahaan Anda, dan hukum dan peraturan yang berlaku. Untuk informasi selengkapnya tentang tanggung jawab kepatuhan Anda saat menggunakan Layanan AWS, lihat [Dokumentasi AWS Keamanan](https://docs.aws.amazon.com/security/).

# Ketahanan dalam Aliran Video Amazon Kinesis
<a name="disaster-recovery-resiliency"></a>

Infrastruktur AWS global dibangun di sekitar AWS Wilayah dan Zona Ketersediaan. AWS Wilayah menyediakan beberapa Availability Zone yang terpisah secara fisik dan terisolasi, yang terhubung dengan latensi rendah, throughput tinggi, dan jaringan yang sangat redundan. Dengan Zona Ketersediaan, Anda dapat merancang dan mengoperasikan aplikasi dan basis data yang secara otomatis melakukan failover di antara Zona Ketersediaan tanpa gangguan. Zona Ketersediaan memiliki ketersediaan dan toleransi kesalahan yang lebih baik, dan dapat diskalakan dibandingkan infrastruktur biasa yang terdiri dari satu atau beberapa pusat data. 

Untuk informasi selengkapnya tentang AWS Wilayah dan Availability Zone, lihat [Infrastruktur AWS Global](https://aws.amazon.com/about-aws/global-infrastructure/).

# Keamanan infrastruktur di Kinesis Video Streams
<a name="infrastructure-security"></a>

Sebagai layanan terkelola, Amazon Kinesis Video Streams dilindungi AWS oleh prosedur keamanan jaringan global yang dijelaskan [dalam whitepaper Amazon Web Services: Tinjauan Proses](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf) Keamanan.

Anda menggunakan panggilan API yang AWS dipublikasikan untuk mengakses Kinesis Video Streams melalui jaringan. Klien harus mendukung Keamanan Lapisan Pengangkutan (TLS) 1.2 atau versi yang lebih baru. Klien juga harus support suite cipher dengan Perfect Forward Secrecy (PFS) seperti Ephemeral Diffie-Hellman (DHE) atau Elliptic Curve Ephemeral Diffie-Hellman (ECDHE). Sebagian besar sistem modern, misalnya Java 7 dan versi yang lebih baru, mendukung mode ini. 

Selain itu, permintaan harus ditandatangani menggunakan access key ID dan secret access key yang terkait dengan utama IAM. Selain itu, Anda dapat menggunakan [AWS Security Token Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) untuk membuat kredensial keamanan sementara untuk menandatangani permintaan.

# Praktik keamanan terbaik untuk Kinesis Video Streams
<a name="security-best-practices"></a>

Amazon Kinesis Video Streams menyediakan sejumlah fitur keamanan yang perlu dipertimbangkan saat Anda mengembangkan dan menerapkan kebijakan keamanan Anda sendiri. Praktik terbaik berikut adalah pedoman umum dan tidak mewakili solusi keamanan yang lengkap. Karena praktik terbaik ini mungkin tidak sesuai atau tidak memadai untuk lingkungan Anda, perlakukan itu sebagai pertimbangan yang bermanfaat, bukan sebagai resep. 

Untuk praktik terbaik keamanan untuk perangkat jarak jauh, lihat [Praktik Terbaik Keamanan untuk Agen Perangkat](https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-DetectMetricsMessagesBestPract.html).

## Terapkan akses hak akses paling rendah
<a name="security-best-practices-privileges"></a>

Saat memberikan izin, Anda memutuskan siapa yang mendapatkan izin apa untuk sumber daya Kinesis Video Streams mana. Anda memungkinkan tindakan tertentu yang ingin Anda lakukan di sumber daya tersebut. Oleh karena itu, Anda harus memberikan hanya izin yang diperlukan untuk melaksanakan tugas. Menerapkan akses hak istimewa yang terkecil adalah hal mendasar dalam mengurangi risiko keamanan dan dampak yang dapat diakibatkan oleh kesalahan atau niat jahat. 

Misalnya, produser yang mengirimkan data ke Kinesis Video Streams `GetStreamingEndpoint` hanya `PutMedia` membutuhkan,, dan. `DescribeStream` Jangan berikan izin aplikasi produsen untuk semua tindakan (`*`), atau untuk tindakan lain seperti`GetMedia`.

Untuk informasi lebih lanjut, lihat [Apa itu Keistimewaan Paling Sedikit & Mengapa Anda Membutuhkannya](https://www.beyondtrust.com/blog/entry/what-is-least-privilege)?

## Gunakan IAM role
<a name="security-best-practices-roles"></a>

Aplikasi produser dan klien harus memiliki kredensyal yang valid untuk mengakses Kinesis Video Streams. Anda tidak boleh menyimpan kredensial AWS secara langsung di aplikasi klien atau bucket Amazon S3. Ini adalah kredensyal jangka panjang yang tidak diputar secara otomatis dan dapat memiliki dampak bisnis yang signifikan jika dikompromikan. 

Sebagai gantinya, Anda harus menggunakan peran IAM untuk mengelola kredensyal sementara untuk aplikasi produser dan klien Anda untuk mengakses Kinesis Video Streams. Saat Anda menggunakan peran, Anda tidak perlu menggunakan kredensyal jangka panjang (seperti nama pengguna dan kata sandi atau kunci akses) untuk mengakses sumber daya lain.

Untuk informasi selengkapnya, lihat topik berikut di *Panduan Pengguna IAM*:
+ [Peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)
+ [Skenario Umum untuk Peran: Pengguna, Aplikasi, dan Layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios.html)

## Gunakan CloudTrail untuk memantau panggilan API
<a name="security-best-practices-cloudtrail"></a>

Kinesis Video Streams AWS CloudTrail berfungsi dengan, layanan yang menyediakan rekaman tindakan yang diambil oleh pengguna, peran, Layanan AWS atau dalam Kinesis Video Streams.

Anda dapat menggunakan informasi yang dikumpulkan oleh CloudTrail untuk menentukan permintaan yang dibuat untuk Kinesis Video Streams, alamat IP dari mana permintaan dibuat, siapa yang membuat permintaan, kapan dibuat, dan rincian tambahan.

Lihat informasi yang lebih lengkap di [Log panggilan API Amazon Kinesis Video Streams dengan AWS CloudTrail](monitoring-cloudtrail.md).