Mengontrol akses ke sumber daya Kinesis Video Streams menggunakan IAM - Amazon Kinesis Video Streams

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

Mengontrol akses ke sumber daya Kinesis Video Streams menggunakan IAM

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 selengkapnyaIAM, lihat berikut ini:

Sintaksis kebijakan

IAMKebijakan adalah JSON dokumen yang terdiri dari satu atau lebih pernyataan. Setiap pernyataan memiliki struktur sebagai berikut:

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

Ada berbagai elemen yang membentuk pernyataan:

  • EfekEfeknya bisa Allow atauDeny. Secara default, pengguna tidak memiliki izin untuk menggunakan sumber daya dan API tindakan, sehingga semua permintaan ditolak. izin eksplisit akan menggantikan izin default. penolakan eksplisit akan menggantikan izin apa pun.

  • TindakanTindakan adalah API tindakan spesifik yang Anda berikan atau tolak izin.

  • 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 IAM kebijakan, kami sarankan Anda menggunakan IAMPolicy Generator dan IAMPolicy Simulator.

Tindakan untuk Kinesis Video Streams

Dalam pernyataan IAM kebijakan, Anda dapat menentukan API tindakan apa pun dari layanan apa pun yang mendukungIAM. Untuk Kinesis Video Streams, gunakan awalan berikut dengan nama API tindakan:. kinesisvideo: Misalnya:kinesisvideo:CreateStream,kinesisvideo:ListStreams, dankinesisvideo: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 (*) sebagai berikut:

"Action": "kinesisvideo:*"

Untuk daftar lengkap tindakan Kinesis API Video Streams, lihat referensi Kinesis Video API Streams.

Nama Sumber Daya Amazon (ARNs) untuk Kinesis Video Streams

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

Gunakan format ARN sumber daya berikut untuk Kinesis Video Streams:

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

Sebagai contoh:

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

Anda bisa mendapatkan aliran menggunakan DescribeStream. ARN

Memberikan akses IAM akun lain ke aliran video Kinesis

Anda mungkin perlu memberikan izin ke IAM akun lain untuk melakukan operasi pada streaming 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

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

    Kebijakan sampel:

    { "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 StreamsContoh kebijakan, lihat di bagian berikutnya.

  3. 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:

    { "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 sepertiDescribeStream,GetDataEndpoint, dan PutMedia pada sumber daya ARN aliran dalam kebijakan terkelola. Peran baru ini juga mempercayai akun lain, 111111111111, untuk mengambil peran ini.

    penting

    Catat perannyaARN, Anda akan membutuhkannya di langkah berikutnya.

  4. 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:

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::999999999999:role/CustomRoleName" } }
  5. Lampirkan kebijakan yang dibuat pada langkah sebelumnya ke IAM entitas, seperti peran atau pengguna di akun 111111111111. Pengguna ini sekarang memiliki izin untuk mengambil peran CustomRoleName di akun 999999999999.

    Panggilan crendentials pengguna ini AWS STS AssumeRole API untuk mendapatkan kredensil sesi, yang kemudian 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": "" } }
  6. Tetapkan kunci akses, kunci rahasia, dan kredenal sesi berdasarkan set sebelumnya di lingkungan.

    set AWS_ACCESS_KEY_ID= set AWS_SECRET_ACCESS_KEY= set AWS_SESSION_TOKEN=
  7. 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 Menggunakan Peran. Akun AWS IAM

Contoh kebijakan untuk Kinesis Video Streams

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

contoh 1: Izinkan pengguna mendapatkan data dari aliran video Kinesis apa pun

Kebijakan ini memungkinkan pengguna atau grup untuk melakukanDescribeStream,,, GetDataEndpoint GetMediaListStreams, 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": "*" } ] }
contoh 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": "*" } ] }
contoh 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": "*" } ] }
contoh 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" } ] }