Menggunakan IAM dengan tabel global - Amazon DynamoDB

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

Menggunakan IAM dengan tabel global

penting

Dokumentasi ini ditujukan untuk versi 2017.11.29 (Lama) tabel global, yang tidak boleh digunakan untuk tabel global baru. Pelanggan harus menggunakan Tabel Global versi 2019.11.21 (Saat Ini) jika memungkinkan, karena memberikan fleksibilitas yang lebih besar, efisiensi yang lebih tinggi, dan mengkonsumsi kapasitas tulis yang lebih sedikit daripada 2017.11.29 (Legacy).

Untuk menentukan versi mana yang sedang Anda gunakan, lihat Menentukan versi tabel global yang Anda gunakan. Untuk memperbarui tabel global yang ada dari versi 2017.11.29 (Lama) ke versi 2019.11.21 (Terbaru), lihat Meningkatkan tabel global.

Ketika Anda membuat tabel global untuk pertama kalinya, Amazon DynamoDB otomatis membuat peran tertaut layanan AWS Identity and Access Management (IAM) untuk Anda. Peran ini bernama AWSServiceRoleForDynamoDBReplication, dan memungkinkan DynamoDB untuk mengelola replikasi lintas-Wilayah untuk tabel global atas nama Anda. Jangan hapus peran tertaut layanan ini. Jika Anda melakukannya, semua tabel global Anda tidak akan berfungsi lagi.

Untuk informasi selengkapnya tentang peran tertaut layanan, lihat Menggunakan peran tertaut layanan di Panduan Pengguna IAM.

Untuk membuat dan memelihara tabel global di DynamoDB, Anda harus memiliki izin dynamodb:CreateGlobalTable untuk mengakses berikut ini:

  • Tabel replika yang ingin Anda tambahkan.

  • Setiap replika yang ada yang sudah menjadi bagian dari tabel global.

  • Tabel global itu sendiri.

Untuk memperbarui pengaturan (UpdateGlobalTableSettings) tabel global di DynamoDB, Anda harus memiliki izin dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicy, dan application-autoscaling:DeregisterScalableTarget.

Izin application-autoscaling:DeleteScalingPolicy dan application-autoscaling:DeregisterScalableTarget diperlukan saat memperbarui kebijakan penskalaan yang ada. Hal ini agar layanan tabel global dapat menghapus kebijakan penskalaan lama sebelum melampirkan kebijakan baru ke tabel atau indeks sekunder.

Jika menggunakan kebijakan IAM untuk mengelola akses ke satu tabel replika, Anda harus menerapkan kebijakan yang identik pada semua replika lain dalam tabel global. Praktik ini membantu Anda mempertahankan model izin yang konsisten di semua tabel replika.

Dengan menggunakan kebijakan IAM yang identik pada semua replika dalam tabel global, Anda juga dapat menghindari pemberian akses baca dan tulis yang tidak diinginkan ke data tabel global Anda. Misalnya, pertimbangkan pengguna yang hanya memiliki akses ke satu replika dalam tabel global. Jika pengguna tersebut dapat menulis ke replika ini, DynamoDB menyebarkan aktivitas tulis ini ke semua tabel replika lainnya. Akibatnya, pengguna tersebut (secara tidak langsung) dapat menulis ke semua replika lain dalam tabel global. Skenario ini dapat dihindari dengan menggunakan kebijakan IAM yang konsisten pada semua tabel replika.

Contoh: Izinkan CreateGlobalTable tindakan

Sebelum dapat menambahkan replika ke tabel global, Anda harus memiliki izin dynamodb:CreateGlobalTable untuk tabel global dan untuk masing-masing tabel replikanya.

Kebijakan IAM berikut memberikan izin untuk memungkinkan tindakan CreateGlobalTable pada semua tabel.

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

Contoh: Izinkan UpdateGlobalTable,, application-autoscaling: DescribeLimits, dan application-autoscaling: actions DeleteScalingPolicy DeregisterScalableTarget

Untuk memperbarui pengaturan (UpdateGlobalTableSettings) tabel global di DynamoDB, Anda harus memiliki izin dynamodb:UpdateGlobalTable, dynamodb:DescribeLimits, application-autoscaling:DeleteScalingPolicy, dan application-autoscaling:DeregisterScalableTarget.

Kebijakan IAM berikut memberikan izin untuk memungkinkan tindakan UpdateGlobalTableSettings pada semua tabel.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:UpdateGlobalTable", "dynamodb:DescribeLimits", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget" ], "Resource": "*" } ] }

Contoh: Izinkan CreateGlobalTable tindakan untuk nama tabel global tertentu dengan replika yang diizinkan di wilayah tertentu saja

Kebijakan IAM berikut memberikan izin untuk memungkinkan tindakan CreateGlobalTable membuat tabel global bernama Customers dengan replika di dua Wilayah.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dynamodb:CreateGlobalTable", "Resource": [ "arn:aws:dynamodb::123456789012:global-table/Customers", "arn:aws:dynamodb:us-east-1:123456789012:table/Customers", "arn:aws:dynamodb:us-west-1:123456789012:table/Customers" ] } ] }