View a markdown version of this page

Menggunakan ABAC dengan DynamoDB Streams - Amazon DynamoDB

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

Menggunakan ABAC dengan DynamoDB Streams

Langkah-langkah berikut menunjukkan cara mengatur izin menggunakan ABAC untuk Streams DynamoDB. Dalam skenario contoh ini, Anda menambahkan tag ke aliran DynamoDB dan membuat peran IAM dengan kebijakan yang menyertakan kondisi berbasis tag. Kemudian, Anda menguji izin yang diizinkan pada aliran DynamoDB dengan mencocokkan kondisi tag.

Langkah 1: Tambahkan tag ke aliran DynamoDB

Anda dapat menambahkan tag ke DynamoDB Streams menggunakan AWS CLI atau SDK. Perintah tag-resource CLI berikut menambahkan tag ke aliran.

aws dynamodb tag-resource \ --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/MusicTable/stream/2024-01-01T00:00:00.000 \ --tags Key=environment,Value=staging
catatan

Untuk menemukan ARN streaming Anda, gunakan describe-table perintah dan cari LatestStreamArn bidang dalam respons.

Langkah 2: Buat peran IAM dengan kebijakan termasuk kondisi berbasis tag

Buat kebijakan IAM menggunakan kunci aws:ResourceTag/{{tag-key}} kondisi untuk membandingkan pasangan kunci-nilai tag yang ditentukan dalam kebijakan IAM dengan pasangan nilai-kunci yang dilampirkan ke aliran. Kebijakan contoh berikut memungkinkan pengguna untuk mendapatkan catatan dan mendeskripsikan aliran jika aliran berisi pasangan nilai kunci tag:. "environment": "staging" Jika aliran tidak memiliki pasangan kunci-nilai tag yang ditentukan, tindakan ini ditolak.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:GetShardIterator" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "staging" } } } ] }

Langkah 3: Uji izin yang diizinkan

  1. Lampirkan kebijakan IAM ke pengguna pengujian atau peran di Anda Akun AWS. Pastikan bahwa prinsipal IAM yang Anda gunakan belum memiliki akses ke aliran DynamoDB melalui kebijakan yang berbeda.

  2. Pastikan aliran DynamoDB Anda berisi kunci "environment" tag dengan nilai. "staging"

  3. Lakukan dynamodb:GetRecords tindakan dynamodb:DescribeStream dan pada aliran yang ditandai. Tindakan ini berhasil jika pasangan "environment": "staging" kunci-nilai tag hadir.

    Jika Anda melakukan tindakan ini pada aliran yang tidak memiliki pasangan nilai kunci "environment": "staging" tag, permintaan Anda gagal dengan. AccessDeniedException