DynamoDB tabel global keamanan - Amazon DynamoDB

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

DynamoDB tabel global keamanan

Replika tabel global adalah tabel DynamoDB, sehingga Anda menggunakan metode yang sama untuk mengontrol akses ke replika yang Anda lakukan untuk tabel wilayah tunggal, AWS termasuk kebijakan identitas Identity and Access Management (IAM) and Access Management (IAM) dan kebijakan berbasis sumber daya.

Bagaimana tabel global menggunakan AWS IAM

Peran terkait layanan replikasi

Saat Anda membuat tabel global untuk pertama kalinya, Amazon DynamoDB secara otomatis membuat AWS peran terkait layanan (SLR) Identity and Access Management (IAM) and Access Management (IAM). SLR diberi nama AWSServiceRoleForDynamoDBReplication, dan memungkinkan DynamoDB untuk mengelola replikasi lintas wilayah untuk tabel global atas nama Anda.

Saat menerapkan kebijakan berbasis sumber daya ke replika, pastikan Anda tidak menolak izin apa pun yang ditentukan dalam AWSServiceRoleForDynamoDBReplication kebijakan kepada prinsipal SLR, karena ini akan mengganggu replikasi. Jika Anda menolak izin SLR yang diperlukan, replikasi ke dan dari replika yang terpengaruh akan berhenti, dan status tabel replika akan berubah menjadi. REPLICATION_NOT_AUTHORIZED

  • Jika replika dalam tabel global yang dikonfigurasi untuk konsistensi akhir Multi-wilayah (MREC) tetap dalam REPLICATION_NOT_AUTHORIZED status selama lebih dari 20 jam, replika akan dikonversi secara ireversibel ke tabel DynamoDB wilayah tunggal.

  • Replika tabel global yang dikonfigurasi untuk Multi-region strong consistency (MRSC) mengembalikan sebuah AccessDeniedException for write dan operasi baca yang sangat konsisten. Jika replika dalam tabel global MRSC tetap dalam REPLICATION_NOT_AUTHORIZED status selama lebih dari tujuh hari, replika menjadi tidak dapat diakses secara permanen, dan operasi tulis dan baca yang sangat konsisten akan terus gagal dengan kesalahan. Beberapa operasi manajemen seperti penghapusan replika akan berhasil.

Peran terkait layanan penskalaan otomatis

Saat mengonfigurasi tabel global untuk mode kapasitas yang disediakan, Anda juga harus mengonfigurasi penskalaan otomatis untuk tabel global. DynamoDB auto scaling menggunakan Application AWS Auto Scaling Service untuk secara dinamis menyesuaikan kapasitas throughput yang disediakan pada replika tabel global Anda. Layanan Application Auto Scaling membuat peran terkait layanan (SLR) bernama AWSServiceRoleForApplicationAutoScaling_DynamoDBTable untuk mengelola kapasitas tabel yang disediakan dan membuat alarm. CloudWatch Saat menerapkan kebijakan berbasis sumber daya ke replika, pastikan Anda tidak menolak izin apa pun yang ditentukan dalam kebijakan kepada prinsipal AWSServiceRoleForApplicationAutoScaling_DynamoDBTable Application Auto Scaling Service SLR, karena ini akan mengganggu fungsionalitas penskalaan otomatis.

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

Izin yang diperlukan untuk tabel global

Untuk membuat replika, Anda harus memiliki izin berikut di atas meja atau replika yang Anda tambahkan replika baru:

  • dynamodb:UpdateTable

Untuk membuat replika, Anda harus memiliki izin berikut di setiap Wilayah tempat replika baru akan dibuat:

  • dynamodb:CreateTable

  • dynamodb:CreateTableReplica

Untuk membuat saksi, Anda harus memiliki izin berikut di Wilayah tempat saksi baru akan dibuat:

  • dynamodb:CreateGlobalTableWitness

Untuk menghapus replika, Anda harus memiliki izin berikut pada replika:

  • dynamodb:DeleteTable

  • dynamodb:DeleteTableReplica

Untuk menghapus saksi, Anda harus memiliki izin berikut pada saksi:

  • dynamodb:DeleteGlobalTableWitness

Untuk memperbarui kebijakan penskalaan otomatis replika dengan UpdateTableReplicaAutoScaling API, Anda harus memiliki izin berikut di semua Wilayah yang berisi replika:

  • application-autoscaling:DeleteScalingPolicy

  • application-autoscaling:DeleteScheduledAction

  • application-autoscaling:DeregisterScalableTarget

  • application-autoscaling:DescribeScalableTargets

  • application-autoscaling:DescribeScalingActivities

  • application-autoscaling:DescribeScalingPolicies

  • application-autoscaling:DescribeScheduledActions

  • application-autoscaling:PutScalingPolicy

  • application-autoscaling:PutScheduledAction

  • application-autoscaling:RegisterScalableTarget

Untuk memperbarui pengaturan Time to Live dengan UpdateTimeToLive API, Anda harus memiliki izin berikut pada semua replika:

  • dynamodb:UpdateTimeToLive

Contoh kebijakan IAM

Contoh: Mengelola tabel global

Kebijakan IAM berikut memberikan izin untuk membuat dan menghapus replika tabel global dan saksi untuk tabel “pengguna” di tiga Wilayah:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowManagingUsersGlobalTable", "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:CreateTableReplica", "dynamodb:CreateGlobalTableWitness", "dynamodb:DeleteTable", "dynamodb:DeleteTableReplica", "dynamodb:DeleteGlobalTableWitness", "dynamodb:UpdateTable", "dynamodb:UpdateTimeToLive" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/users", "arn:aws:dynamodb:us-east-2:123456789012:table/users", "arn:aws:dynamodb:us-west-2:123456789012:table/users" ] } ] }

Contoh: Kecualikan izin SLR yang diperlukan dari kebijakan penolakan wildcard

Kebijakan IAM dengan kondisi berikut tidak memengaruhi izin yang diperlukan ke SLR replikasi DynamoDB dan SLR Auto Scaling. AWS Kondisi ini dapat ditambahkan ke kebijakan yang membatasi secara luas untuk menghindari gangguan replikasi atau penskalaan otomatis secara tidak sengaja:

"Condition": { "StringNotEquals": { "aws:PrincipalArn": [ "arn:aws:iam::YOUR_ACCOUNT_ID:role/aws-service-role/replication.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBReplication", "arn:aws:iam::YOUR_ACCOUNT_ID:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable" ] } }

Bagaimana tabel global menggunakan AWS KMS

Seperti semua tabel DynamoDB, replika tabel global selalu mengenkripsi data saat istirahat menggunakan kunci enkripsi yang disimpan AWS di Key Management Service ().AWS KMS

Semua replika dalam tabel global harus dikonfigurasi dengan jenis kunci KMS yang sama (kunci AWS milik, kunci AWS terkelola, atau kunci yang dikelola Pelanggan).

penting

DynamoDB memerlukan akses ke kunci enkripsi replika untuk menghapus replika. Jika Anda ingin menonaktifkan atau menghapus kunci terkelola pelanggan yang digunakan untuk mengenkripsi replika karena Anda menghapus replika, Anda harus terlebih dahulu menghapus replika, menunggu status tabel pada salah satu replika yang tersisa untuk berubahACTIVE, lalu menonaktifkan atau menghapus kunci.

Untuk tabel global yang dikonfigurasi untuk konsistensi akhir Multi-wilayah (MREC), jika Anda menonaktifkan atau mencabut akses DynamoDB ke kunci terkelola pelanggan yang digunakan untuk mengenkripsi replika, replikasi ke dan dari replika akan berhenti dan status replika akan berubah menjadi. INACCESSIBLE_ENCRYPTION_CREDENTIALS Jika replika dalam tabel global MREC tetap dalam INACCESSIBLE_ENCRYPTION_CREDENTIALS status selama lebih dari 20 jam, replika dikonversi secara ireversibel ke tabel DynamoDB wilayah tunggal.

Untuk tabel global yang dikonfigurasi untuk konsistensi kuat Multi-wilayah (MRSC), jika Anda menonaktifkan atau mencabut akses DynamoDB ke kunci terkelola pelanggan yang digunakan untuk mengenkripsi replika, replikasi ke dan dari replika akan berhenti, upaya untuk melakukan penulisan atau pembacaan yang sangat konsisten ke replika akan mengembalikan kesalahan, dan status replika akan berubah menjadi. INACCESSIBLE_ENCRYPTION_CREDENTIALS Jika replika dalam tabel global MRSC tetap dalam INACCESSIBLE_ENCRYPTION_CREDENTIALS status selama lebih dari tujuh hari, tergantung pada izin tertentu yang dicabut, replika akan diarsipkan atau menjadi tidak dapat diakses secara permanen.