グローバルテーブルで IAM を使用します - Amazon DynamoDB

グローバルテーブルで IAM を使用します

グローバルテーブルを初めて作成する場合は、Amazon DynamoDB によって、AWS Identity and Access Management (IAM) サービスにリンクされたロールが自動的に作成されます。このロールの名前は AWSServiceRoleForDynamoDBReplication です。このロールを使用して、お客様に代わって DynamoDB でグローバルテーブルのクロスリージョンレプリケーションを管理できます。このサービスにリンクされたロールは削除しないでください。削除すると、グローバルテーブルはすべて使用できなくなります。

サービスリンクロールの詳細については、「IAM ユーザーガイド」の「サービスリンクロールの使用」を参照してください。

DynamoDB でレプリカテーブルを作成するには、送信元リージョンで、次の許可が必要です。

  • dynamodb:UpdateTable

DynamoDB でレプリカテーブルを作成するには、送信先リージョンで、次の許可が必要です。

  • dynamodb:CreateTable

  • dynamodb:CreateTableReplica

  • dynamodb:Scan

  • dynamodb:Query

  • dynamodb:UpdateItem

  • dynamodb:PutItem

  • dynamodb:GetItem

  • dynamodb:DeleteItem

  • dynamodb:BatchWriteItem

DynamoDB でレプリカテーブルを削除するには、送信先リージョンで、次の許可が必要です。

  • dynamodb:DeleteTable

  • dynamodb:DeleteTableReplica

UpdateTableReplicaAutoScaling で自動スケーリングポリシーを更新するには、テーブルレプリカが存在するすべてのリージョンで、次のアクセス許可が必要です。

  • 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

UpdateTimeToLive を使用するには、テーブルレプリカが存在するすべてのリージョンで、dynamodb:UpdateTimeToLive のアクセス許可が必要です。

例: レプリカの追加

次の IAM ポリシーは、グローバルテーブルにレプリカを追加するアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable", "dynamodb:CreateTableReplica", "iam:CreateServiceLinkedRole" ], "Resource": "*" } ] }

例: Auto Scaling ポリシーの更新

次の IAM ポリシーは、レプリカの自動スケーリングポリシーを更新するアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "application-autoscaling:RegisterScalableTarget", "application-autoscaling:DeleteScheduledAction", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:DescribeScheduledActions", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:PutScheduledAction", "application-autoscaling:DeregisterScalableTarget" ], "Resource": "*" } ] }

例: 特定のテーブル名およびリージョンのレプリカ作成を許可します

次の IAM ポリシーは、3 つのリージョンで、レプリカを使用して、Customers テーブルのテーブルおよびレプリカの作成を許可するアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dynamodb:CreateTable", "dynamodb:DescribeTable", "dynamodb:UpdateTable" ], "Resource": [ "arn:aws:dynamodb:us-east-1:123456789012:table/Customers", "arn:aws:dynamodb:us-west-1:123456789012:table/Customers", "arn:aws:dynamodb:eu-east-2:123456789012:table/Customers" ] } ] }