Mengontrol akses ke sumber daya Amazon Kinesis Data Streams menggunakan IAM - Amazon Kinesis Data 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 Amazon Kinesis Data Streams menggunakan IAM

AWS Identity and Access Management (IAM) memungkinkan Anda untuk melakukan hal berikut:

  • Buat pengguna dan grup di bawah AWS akun Anda

  • Tetapkan kredensi keamanan unik untuk setiap pengguna di bawah akun Anda AWS

  • Kontrol izin setiap pengguna untuk melakukan tugas menggunakan sumber daya AWS

  • Izinkan pengguna di AWS akun lain untuk membagikan AWS sumber daya Anda

  • Buat peran untuk AWS akun Anda dan tentukan pengguna atau layanan yang dapat mengasumsikannya

  • Gunakan identitas yang ada untuk perusahaan Anda untuk memberikan izin untuk melakukan tugas menggunakan sumber daya AWS

IAMDengan menggunakan Kinesis Data Streams, Anda dapat mengontrol apakah pengguna di organisasi dapat melakukan tugas menggunakan tindakan API Kinesis Data Streams tertentu dan apakah mereka dapat menggunakan sumber daya tertentu. AWS

Jika Anda mengembangkan aplikasi menggunakan Kinesis Client Library (KCL), kebijakan Anda harus menyertakan izin untuk Amazon DynamoDB dan Amazon; CloudWatch menggunakan KCL DynamoDB untuk melacak informasi status aplikasi, dan mengirim metrik atas nama Anda. CloudWatch KCL CloudWatch Untuk informasi lebih lanjut tentangKCL, lihatMengembangkan KCL 1.x konsumen.

Untuk informasi selengkapnyaIAM, lihat berikut ini:

Untuk informasi selengkapnya tentang IAM Amazon DynamoDB, lihat IAM Menggunakan untuk Mengontrol Akses ke Sumber Daya Amazon DynamoDB di Panduan Pengembang Amazon DynamoDB.

Untuk informasi selengkapnya tentang IAM dan Amazon CloudWatch, lihat Mengontrol Akses Pengguna ke AWS Akun Anda di Panduan CloudWatch Pengguna Amazon.

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:

  • Efek: Efek bisa berupa Allow atau Deny. Secara default, IAM 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.

  • Tindakan: Tindakan 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 perlu menggunakan Amazon Resource Name (ARN).

  • Syarat: Syarat-syarat bersifat opsional. Ketentuan ini dapat digunakan untuk mengontrol kapan kebijakan Anda akan berlaku.

Saat Anda membuat dan mengelola IAM kebijakan, Anda mungkin ingin menggunakan IAMPolicy Generator dan IAMPolicy Simulator.

Tindakan untuk Kinesis Data Streams

Dalam pernyataan IAM kebijakan, Anda dapat menentukan API tindakan apa pun dari layanan apa pun yang mendukungIAM. Untuk Kinesis Data Streams, gunakan awalan berikut dengan nama API tindakan:. kinesis: Misalnya:kinesis:CreateStream,kinesis:ListStreams, dankinesis:DescribeStreamSummary.

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

"Action": ["kinesis:action1", "kinesis:action2"]

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

"Action": "kinesis:Get*"

Untuk menentukan semua operasi Kinesis Data Streams, gunakan wildcard * sebagai berikut:

"Action": "kinesis:*"

Untuk daftar lengkap tindakan Kinesis API Data Streams, lihat Referensi Amazon API Kinesis.

Nama Sumber Daya Amazon (ARNs) untuk Kinesis Data Streams

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

Gunakan format ARN sumber daya berikut untuk aliran data Kinesis:

arn:aws:kinesis:region:account-id:stream/stream-name

Sebagai contoh:

"Resource": arn:aws:kinesis:*:111122223333:stream/my-stream

Contoh kebijakan untuk Kinesis Data Streams

Contoh kebijakan berikut menunjukkan bagaimana Anda dapat mengontrol akses pengguna ke aliran data Kinesis Anda.

Example 1: Allow users to get data from a stream

Kebijakan ini memungkinkan pengguna atau grup untuk melakukanDescribeStreamSummary,GetShardIterator, dan GetRecords operasi pada aliran tertentu dan ListStreams pada aliran apa pun. Kebijakan ini dapat diterapkan pada pengguna yang seharusnya bisa mendapatkan data dari aliran tertentu.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:Get*", "kinesis:DescribeStreamSummary" ], "Resource": [ "arn:aws:kinesis:us-east-1:111122223333:stream/stream1" ] }, { "Effect": "Allow", "Action": [ "kinesis:ListStreams" ], "Resource": [ "*" ] } ] }
Example 2: Allow users to add data to any stream in the account

Kebijakan ini memungkinkan pengguna atau grup untuk menggunakan PutRecord operasi dengan salah satu aliran akun. Kebijakan ini dapat diterapkan pada pengguna yang harus dapat menambahkan catatan data ke semua aliran di akun.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecord" ], "Resource": [ "arn:aws:kinesis:us-east-1:111122223333:stream/*" ] } ] }
Example 3: Allow any Kinesis Data Streams action on a specific stream

Kebijakan ini memungkinkan pengguna atau grup untuk menggunakan operasi Kinesis Data Streams apa pun pada aliran yang ditentukan. Kebijakan ini dapat diterapkan pada pengguna yang harus memiliki kontrol administratif atas aliran tertentu.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesis:*", "Resource": [ "arn:aws:kinesis:us-east-1:111122223333:stream/stream1" ] } ] }
Example 4: Allow any Kinesis Data Streams action on any stream

Kebijakan ini memungkinkan pengguna atau grup untuk menggunakan operasi Kinesis Data Streams apa pun pada aliran apa pun di akun. Karena kebijakan ini memberikan akses penuh ke semua aliran Anda, Anda harus membatasinya hanya untuk administrator.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kinesis:*", "Resource": [ "arn:aws:kinesis:*:111122223333:stream/*" ] } ] }

Bagikan aliran data Anda dengan akun lain

catatan

Kinesis Producer Library saat ini tidak mendukung penentuan aliran ARN saat menulis ke aliran data. Gunakan AWS SDK jika Anda ingin menulis ke aliran data lintas akun.

Lampirkan kebijakan berbasis sumber daya ke aliran data Anda untuk memberikan akses ke akun, IAM pengguna, atau peran lain. IAM Kebijakan berbasis sumber daya adalah dokumen JSON kebijakan yang Anda lampirkan ke sumber daya seperti aliran data. Kebijakan ini memberikan izin pokok yang ditentukan untuk melakukan tindakan spesifik pada sumber daya tersebut dan menentukan dalam kondisi apa hal ini berlaku. Sebuah kebijakan dapat memiliki beberapa pernyataan. Anda harus menentukan prinsipal dalam kebijakan berbasis sumber daya. Prinsipal dapat mencakup akun, pengguna, peran, pengguna federasi, atau layanan. AWS Anda dapat mengonfigurasi kebijakan di konsol Kinesis Data StreamsAPI, atau. SDK

Perhatikan bahwa berbagi akses ke konsumen terdaftar seperti Enhanced Fan Out memerlukan kebijakan tentang aliran data ARN dan konsumenARN.

Aktifkan akses lintas akun

Untuk mengaktifkan akses lintas akun, Anda dapat menentukan seluruh akun atau IAM entitas di akun lain sebagai prinsipal dalam kebijakan berbasis sumber daya. Menambahkan prinsipal akun silang ke kebijakan berbasis sumber daya hanya setengah dari membangun hubungan kepercayaan. Ketika prinsipal dan sumber daya berada di AWS akun terpisah, Anda juga harus menggunakan kebijakan berbasis identitas untuk memberikan akses utama ke sumber daya. Namun, jika kebijakan berbasis sumber daya memberikan akses ke prinsipal dalam akun yang sama, tidak diperlukan kebijakan berbasis identitas tambahan.

Untuk informasi selengkapnya tentang penggunaan kebijakan berbasis sumber daya untuk akses lintas akun, lihat Akses sumber daya lintas akun. IAM

Administrator aliran data dapat menggunakan AWS Identity and Access Management kebijakan untuk menentukan siapa yang memiliki akses ke apa. Yaitu, principal dapat melakukan tindakan pada suatu sumber daya, dan dalam suatu syarat. ActionElemen JSON kebijakan menjelaskan tindakan yang dapat Anda gunakan untuk mengizinkan atau menolak akses dalam kebijakan. Tindakan kebijakan biasanya memiliki nama yang sama dengan AWS API operasi terkait.

Tindakan Kinesis Data Streams yang dapat dibagikan:

Tindakan Tingkat akses
DescribeStreamConsumer Konsumen
DescribeStreamSummary Aliran data
GetRecords Aliran data
GetShardIterator Aliran data
ListShards Aliran data
PutRecord Aliran data
PutRecords Aliran data
SubscribeToShard Konsumen

Berikut ini adalah contoh penggunaan kebijakan berbasis sumber daya untuk memberikan akses lintas akun ke aliran data Anda atau konsumen terdaftar.

Untuk melakukan tindakan lintas akun, Anda harus menentukan aliran ARN untuk akses aliran data dan konsumen ARN untuk akses konsumen terdaftar.

Contoh kebijakan berbasis sumber daya untuk aliran data Kinesis

Berbagi konsumen terdaftar melibatkan kebijakan aliran data dan kebijakan konsumen karena tindakan yang diperlukan.

catatan

Berikut ini adalah contoh nilai yang valid untukPrincipal:

  • {"AWS": "123456789012"}

  • IAMPengguna - {"AWS": "arn:aws:iam::123456789012:user/user-name"}

  • IAMPeran - {"AWS":["arn:aws:iam::123456789012:role/role-name"]}

  • Beberapa Prinsipal (dapat berupa kombinasi akun, pengguna, peran) - {"AWS":["123456789012", "123456789013", "arn:aws:iam::123456789012:user/user-name"]}

Example 1: Write access to the data stream
{ "Version": "2012-10-17", "Id": "__default_write_policy_ID", "Statement": [ { "Sid": "writestatement", "Effect": "Allow", "Principal": { "AWS": "Account12345" }, "Action": [ "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "arn:aws:kinesis:us-east-2:123456789012:stream/datastreamABC" } ] }
Example 2: Read access to the data stream
{ "Version": "2012-10-17", "Id": "__default_sharedthroughput_read_policy_ID", "Statement": [ { "Sid": "sharedthroughputreadstatement", "Effect": "Allow", "Principal": { "AWS": "Account12345" }, "Action": [ "kinesis:DescribeStreamSummary", "kinesis:ListShards", "kinesis:GetRecords", "kinesis:GetShardIterator" ], "Resource": "arn:aws:kinesis:us-east-2:123456789012:stream/datastreamABC" } ] }
Example 3: Share enhanced fan-out read access to a registered consumer

Pernyataan kebijakan aliran data:

{ "Version": "2012-10-17", "Id": "__default_sharedthroughput_read_policy_ID", "Statement": [ { "Sid": "consumerreadstatement", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account12345:role/role-name" }, "Action": [ "kinesis:DescribeStreamSummary", "kinesis:ListShards" ], "Resource": "arn:aws:kinesis:us-east-2:123456789012:stream/datastreamABC" } ] }

Pernyataan kebijakan konsumen:

{ "Version": "2012-10-17", "Id": "__default_efo_read_policy_ID", "Statement": [ { "Sid": "eforeadstatement", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account12345:role/role-name" }, "Action": [ "kinesis:DescribeStreamConsumer", "kinesis:SubscribeToShard" ], "Resource": "arn:aws:kinesis:us-east-2:123456789012:stream/datastreamABC/consumer/consumerDEF:1674696300" } ] }

Wildcard (*) tidak didukung untuk tindakan atau bidang utama untuk mempertahankan prinsip hak istimewa paling sedikit..

Mengelola kebijakan untuk aliran data Anda secara terprogram

Di luar AWS Management Console, Kinesis Data Streams APIS memiliki tiga untuk mengelola kebijakan aliran data Anda:

Gunakan PutResourePolicy untuk melampirkan atau menimpa kebijakan untuk aliran data atau konsumen. Gunakan GetResourcePolicy untuk memeriksa dan melihat kebijakan untuk aliran data atau konsumen yang ditentukan. Gunakan DeleteResourcePolicy untuk menghapus kebijakan untuk aliran data atau konsumen yang ditentukan.

Batas kebijakan

Kebijakan sumber daya Kinesis Data Streams memiliki batasan sebagai berikut:

  • Wildcard (*) tidak didukung untuk membantu mencegah akses luas diberikan melalui kebijakan sumber daya yang secara langsung dilampirkan ke aliran data atau konsumen terdaftar. Selain itu, periksa dengan cermat kebijakan berikut untuk mengonfirmasi bahwa kebijakan tersebut tidak memberikan akses luas:

    • Kebijakan berbasis identitas yang dilampirkan pada AWS prinsipal terkait (misalnya, peran) IAM

    • Kebijakan berbasis sumber daya yang dilampirkan pada AWS sumber daya terkait (misalnya, kunci) AWS Key Management Service KMS

  • AWS Kepala Pelayanan tidak didukung oleh kepala sekolah untuk mencegah calon deputi yang bingung.

  • Prinsipal federasi tidak didukung.

  • Pengguna kanonik tidak IDs didukung.

  • Ukuran polis tidak boleh melebihi 20KB.

Bagikan akses ke data terenkripsi

Jika Anda telah mengaktifkan enkripsi sisi server untuk aliran data dengan KMS kunci AWS terkelola dan ingin berbagi akses melalui kebijakan sumber daya, Anda harus beralih menggunakan kunci yang dikelola pelanggan (). CMK Untuk informasi selengkapnya, lihat Apa itu enkripsi sisi server untuk Kinesis Data Streams?. Selain itu, Anda harus mengizinkan entitas utama berbagi Anda untuk memiliki akses ke AndaCMK, menggunakan kemampuan berbagi KMS lintas akun. Pastikan juga untuk membuat perubahan dalam IAM kebijakan untuk entitas utama berbagi. Untuk informasi selengkapnya, lihat Mengizinkan pengguna di akun lain menggunakan KMS kunci.

Konfigurasikan AWS Lambda fungsi untuk membaca dari Kinesis Data Streams di akun lain

Untuk contoh cara mengonfigurasi fungsi Lambda untuk membaca dari Kinesis Data Streams di akun lain, lihat. Bagikan akses dengan fungsi lintas akun AWS Lambda